@seatlayer/core 0.71.4 → 0.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ar-JP4VPYJ2.js +1 -0
- package/dist/be-ROTFZNMH.js +1 -0
- package/dist/bg-YMQ3B5NS.js +1 -0
- package/dist/ca-L2OMCHWL.js +1 -0
- package/dist/{categoryInventory-r3OfIEQn.d.cts → categoryInventory-BU1j8Q70.d.cts} +1 -1
- package/dist/{categoryInventory-B8CDQtH4.d.ts → categoryInventory-Bt-0psga.d.ts} +1 -1
- package/dist/chunk-4F7VBQCF.js +1 -0
- package/dist/chunk-4V5WYN6O.js +1 -0
- package/dist/{chunk-LR7WIR5Z.js → chunk-ALE2T36W.js} +1 -1
- package/dist/chunk-BLPBTW6I.js +1 -0
- package/dist/{chunk-GXMGOWKB.js → chunk-FMZ6HLDH.js} +1 -1
- package/dist/chunk-HXYWP6NX.js +1 -0
- package/dist/chunk-JBOTRSMY.js +1 -0
- package/dist/{chunk-MR2O5WC7.js → chunk-O5UWBFUT.js} +1 -1
- package/dist/chunk-YW2WGLRM.js +1 -0
- package/dist/chunk-ZOXZWPTL.js +1 -0
- package/dist/core/chart-ops/index.cjs +1 -1
- package/dist/core/chart-ops/index.d.cts +38 -9
- package/dist/core/chart-ops/index.d.ts +38 -9
- package/dist/core/chart-ops/index.js +1 -1
- package/dist/core/color.cjs +1 -1
- package/dist/core/color.d.cts +4 -1
- package/dist/core/color.d.ts +4 -1
- package/dist/core/color.js +1 -1
- package/dist/core/inventory/index.cjs +1 -1
- package/dist/core/inventory/index.d.cts +15 -5
- package/dist/core/inventory/index.d.ts +15 -5
- package/dist/core/inventory/index.js +1 -1
- package/dist/core/layout/index.d.cts +6 -6
- package/dist/core/layout/index.d.ts +6 -6
- package/dist/core/quality/index.cjs +1 -1
- package/dist/core/quality/index.d.cts +3 -3
- package/dist/core/quality/index.d.ts +3 -3
- package/dist/core/quality/index.js +1 -1
- package/dist/core/render-assets/index.cjs +1 -1
- package/dist/core/render-assets/index.d.cts +1 -1
- package/dist/core/render-assets/index.d.ts +1 -1
- package/dist/core/render-assets/index.js +1 -1
- package/dist/core/seatConfidence.d.cts +1 -1
- package/dist/core/seatConfidence.d.ts +1 -1
- package/dist/core/sections/index.d.cts +7 -7
- package/dist/core/sections/index.d.ts +7 -7
- package/dist/cs-CHBOZAYY.js +1 -0
- package/dist/{cy-KJLPIGNL.js → cy-ZIVBYZBX.js} +1 -1
- package/dist/da-PUY5IIER.js +1 -0
- package/dist/de-ILFIEU77.js +1 -0
- package/dist/el-5EG3QS5T.js +1 -0
- package/dist/es-YXZQB5VZ.js +1 -0
- package/dist/et-FZIUC4FC.js +1 -0
- package/dist/{eventConfigurations-ByU_uPeS.d.cts → eventConfigurations-3uSorYVC.d.cts} +1 -1
- package/dist/{eventConfigurations-0OC43JJY.d.ts → eventConfigurations-DfVUGyCg.d.ts} +1 -1
- package/dist/fa-KKBNUDRE.js +1 -0
- package/dist/fi-B6JSP5Z5.js +1 -0
- package/dist/fr-T5LHFRKG.js +1 -0
- package/dist/he-JF4HU75D.js +1 -0
- package/dist/hr-S5OXZ3NI.js +1 -0
- package/dist/hu-ZZDYG6ZF.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +239 -36
- package/dist/index.d.ts +239 -36
- package/dist/index.js +1 -1
- package/dist/it-A5VCFTQP.js +1 -0
- package/dist/ja-PAJD5HFJ.js +1 -0
- package/dist/ku-KV2AIB6I.js +1 -0
- package/dist/{labeling-DAGq3u0z.d.cts → labeling-9RWWmJhZ.d.cts} +1 -1
- package/dist/{labeling-B05IJwd2.d.ts → labeling-BiWB-8aq.d.ts} +1 -1
- package/dist/{layout-e0Qe7jmM.d.cts → layout-B6iOoPOv.d.cts} +3 -3
- package/dist/{layout-DkDRcXvu.d.ts → layout-B7URbtDR.d.ts} +3 -3
- package/dist/localeLoaders-VULFUGJH.js +1 -0
- package/dist/lt-OSFNYQ2L.js +1 -0
- package/dist/lv-5INNWEN5.js +1 -0
- package/dist/nl-YOLY3DXM.js +1 -0
- package/dist/no-C5MG5NPH.js +1 -0
- package/dist/pl-ERGM2HA3.js +1 -0
- package/dist/pt-S6SBTHES.js +1 -0
- package/dist/{renderedQuality-BaejczsK.d.cts → renderedQuality-BZsq3wDe.d.cts} +1 -1
- package/dist/{renderedQuality-BwwrqYzX.d.ts → renderedQuality-C5dQiq97.d.ts} +1 -1
- package/dist/{renderer-BNicx5sw.d.ts → renderer-6sFRupj0.d.ts} +2 -2
- package/dist/{renderer-Duv1HhQg.d.cts → renderer-CBOo1OZk.d.cts} +2 -2
- package/dist/ro-NQ4LIATX.js +1 -0
- package/dist/ru-ICFP6U3S.js +1 -0
- package/dist/{sections-CrX4vq-m.d.ts → sections-Cn_sk1Sx.d.ts} +1 -1
- package/dist/{sections-BjGjR21N.d.cts → sections-DU6YDYoZ.d.cts} +1 -1
- package/dist/{segmentedRowModel-UO_YIQRB.d.cts → segmentedRowModel-CKmyHvKv.d.cts} +1 -1
- package/dist/{segmentedRowModel-BOO8w9Ng.d.ts → segmentedRowModel-DbP7pWUk.d.ts} +1 -1
- package/dist/sk-VYH6WIZ2.js +1 -0
- package/dist/sl-AA54VE5P.js +1 -0
- package/dist/sr-Z27ZL5ZE.js +1 -0
- package/dist/sv-BT4MNMB5.js +1 -0
- package/dist/{ticketRestrictions-dvlNTwem.d.ts → ticketRestrictions-CvS2oQ8v.d.ts} +2 -2
- package/dist/{ticketRestrictions-DUQrKTpS.d.cts → ticketRestrictions-DkenahW2.d.cts} +2 -2
- package/dist/tr-3TSE3BBR.js +1 -0
- package/dist/{types-0yruRsAj.d.cts → types-D6-wLa-m.d.cts} +200 -20
- package/dist/{types-0yruRsAj.d.ts → types-D6-wLa-m.d.ts} +200 -20
- package/dist/uk-YD2PBENU.js +1 -0
- package/dist/view3d/crossfade/panorama.d.cts +1 -1
- package/dist/view3d/crossfade/panorama.d.ts +1 -1
- package/dist/view3d/index.cjs +27 -27
- package/dist/view3d/index.d.cts +3 -3
- package/dist/view3d/index.d.ts +3 -3
- package/dist/view3d/index.js +1 -1
- package/dist/view3d/scene/scene.worker.cjs +1 -1
- package/dist/view3d/scene/scene.worker.js +1 -1
- package/dist/zh-Hans-VPQE6LWU.js +1 -0
- package/dist/zh-Hant-PUKPX45I.js +1 -0
- package/package.json +1 -1
- package/dist/ar-WXDW7P4F.js +0 -1
- package/dist/be-OZ73MTYV.js +0 -1
- package/dist/bg-NXBQVQ7X.js +0 -1
- package/dist/ca-4J7PKGEP.js +0 -1
- package/dist/chunk-7KS6TAYH.js +0 -1
- package/dist/chunk-CXF32VPG.js +0 -1
- package/dist/chunk-JBGLFOJO.js +0 -1
- package/dist/chunk-NXFDYBZY.js +0 -1
- package/dist/chunk-SKO3DCVB.js +0 -1
- package/dist/chunk-T2LWVOQ3.js +0 -1
- package/dist/chunk-YSVXAUOH.js +0 -1
- package/dist/cs-HOVL5PRG.js +0 -1
- package/dist/da-4YKKGJN6.js +0 -1
- package/dist/de-QYK4NJIH.js +0 -1
- package/dist/el-XLXQE4YH.js +0 -1
- package/dist/es-IXMCGRNZ.js +0 -1
- package/dist/et-HK6GEAPP.js +0 -1
- package/dist/fa-RZT7N54K.js +0 -1
- package/dist/fi-NQN2STMX.js +0 -1
- package/dist/fr-AK5TYGQK.js +0 -1
- package/dist/he-CMVTS5LG.js +0 -1
- package/dist/hr-LVOAM3F2.js +0 -1
- package/dist/hu-KT2PFOAI.js +0 -1
- package/dist/it-IWWDBW67.js +0 -1
- package/dist/ja-QUYO5TKQ.js +0 -1
- package/dist/ku-FVXFA2DX.js +0 -1
- package/dist/localeLoaders-SZP47JPK.js +0 -1
- package/dist/lt-O5OARGHR.js +0 -1
- package/dist/lv-D5PW436N.js +0 -1
- package/dist/nl-VDXV6VTH.js +0 -1
- package/dist/no-YS6QVD44.js +0 -1
- package/dist/pl-NP6YVWU6.js +0 -1
- package/dist/pt-YZLA6LO4.js +0 -1
- package/dist/ro-AOVPSQKL.js +0 -1
- package/dist/ru-4LGHGVZG.js +0 -1
- package/dist/sk-4FRMG7ZG.js +0 -1
- package/dist/sl-FYABQLPI.js +0 -1
- package/dist/sr-W4SGB5AT.js +0 -1
- package/dist/sv-4LK4WE4H.js +0 -1
- package/dist/tr-M5NWILAZ.js +0 -1
- package/dist/uk-REKJ4DVG.js +0 -1
- package/dist/zh-Hans-F32F3VGF.js +0 -1
- package/dist/zh-Hant-NA3TGNDP.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.accessFreeCount":"{count} lliures","picker.accessNoneLeft":"Cap de lliure","picker.holdLapsedStillFree.one":"La teva reserva ha caducat mentre eres fora. Aquesta pla\xE7a encara \xE9s lliure.","picker.holdLapsedStillFree.many":"La teva reserva ha caducat mentre eres fora. Aquestes places encara s\xF3n lliures.","picker.holdLapsedStillFree.other":"La teva reserva ha caducat mentre eres fora. Aquestes places encara s\xF3n lliures.","picker.holdLapsedSomeTaken.one":"La teva reserva ha caducat mentre eres fora i {count} d\u2019aquestes places ja est\xE0 ocupada. La resta encara s\xF3n lliures.","picker.holdLapsedSomeTaken.many":"La teva reserva ha caducat mentre eres fora i {count} d\u2019aquestes places ja estan ocupades. La resta encara s\xF3n lliures.","picker.holdLapsedSomeTaken.other":"La teva reserva ha caducat mentre eres fora i {count} d\u2019aquestes places ja estan ocupades. La resta encara s\xF3n lliures.","picker.holdLapsedAllTaken.one":"La teva reserva ha caducat mentre eres fora i aquesta pla\xE7a ja est\xE0 ocupada.","picker.holdLapsedAllTaken.many":"La teva reserva ha caducat mentre eres fora i aquestes places ja estan ocupades.","picker.holdLapsedAllTaken.other":"La teva reserva ha caducat mentre eres fora i aquestes places ja estan ocupades.","picker.holdLapsedSelectAgain.one":"Tornar-la a seleccionar","picker.holdLapsedSelectAgain.many":"Tornar-les a seleccionar","picker.holdLapsedSelectAgain.other":"Tornar-les a seleccionar","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{Ba as A,Ea as v,sa as _}from"./chunk-KCFEFP6H.js";function x(t){let n=Number(t.slice(t.lastIndexOf(":")+1));return Number.isFinite(n)?n:-1}function H(t,n,i){let e=new Map;for(let o of t){if(o.kind==="booth")continue;let a=e.get(o.rowId);a?a.push(o):e.set(o.rowId,[o])}let c=o=>i.has(o.id)||n(o.id)!=="free",l=[];for(let o of e.values())if(!(o.length<3)){o.sort((a,p)=>x(a.id)-x(p.id));for(let a=1;a<o.length-1;a++){let p=o[a];if(c(p))continue;let g=o[a-1],d=o[a+1];x(p.id)-x(g.id)!==1||x(d.id)-x(p.id)!==1||!c(g)||!c(d)||!i.has(g.id)&&!i.has(d.id)||l.push(p)}}return l}function q(t){return{code:"ticket_option_not_applicable",labels:t,message:"That ticket choice is not available for the selected seat."}}function C(t,n){let i=t.applicability;return i?!(i.seatLabels?.length&&!i.seatLabels.includes(n.label)||i.accessibility?.length&&!i.accessibility.some(e=>n.accessibility?.includes(e))):!0}function Y(t,n){return(t.categories.find(i=>i.key===n.categoryKey)?.tiers??[]).filter(i=>C(i,n))}function M(t,n,i){let e=t.categories.find(l=>l.key===n.categoryKey)?.tiers;if(!e?.length)return{kind:"none"};let c=i==null?e.find(l=>C(l,n)):e.find(l=>l.id===i&&C(l,n));return c?{kind:"resolved",tier:c}:{kind:"invalid"}}function D(t,n){return(t.logicalRowId??t.rowId)===(n.logicalRowId??n.rowId)}function N(t){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let n=t.id.slice(t.id.lastIndexOf(":")+1),i=Number(n);return Number.isInteger(i)?i:void 0}function z(t,n){if(!D(t,n))return!1;let i=N(t),e=N(n);return i!=null&&e!=null&&Math.abs(i-e)===1}function G(t,n){if(!n.length)return null;let i=new Map(v(t,{resolveEyeHeights:!1}).map(o=>[o.label,o])),e=n.flatMap(o=>{let a=i.get(o.label);return a?[{selection:o,seat:a}]:[]}),c=e.map(({seat:o})=>o).filter(o=>o.accessibility?.includes("wheelchair")),l=[];for(let{selection:o,seat:a}of e){let p=M(t,a,o.tierId),g=p.kind==="resolved"?p.tier:void 0;(a.accessibility?.includes("companion")||g?.restriction==="companion")&&!c.some(s=>s.id!==a.id&&z(a,s))&&l.push(a.label)}return l.length?{code:"companion_pair_required",labels:l,message:"Select the adjacent wheelchair place with each companion ticket."}:null}function J(t,n){if(!n.length)return null;let i=new Map(v(t,{resolveEyeHeights:!1}).map(o=>[o.label,o])),e=new Set(t.categories.filter(o=>o.notForSale).map(o=>o.key)),c=[],l=[];for(let o of n){let a=i.get(o.label);if(!a)continue;if(e.has(a.categoryKey)){c.push(a.label);continue}M(t,a,o.tierId).kind==="invalid"&&l.push(a.label)}return c.length?{code:"not_for_sale",labels:c,message:"These seats are not for sale."}:l.length?q(l):G(t,n)}function E(t,n){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let i=t.id.lastIndexOf(":");if(i<0)return n;let e=Number(t.id.slice(i+1));return Number.isFinite(e)?e:n}function T(t,n){let i=t.x-n.x,e=t.y-n.y;return i*i+e*e}function R(t){let n=0,i=0;for(let e of t)n+=e.x,i+=e.y;return{x:n/t.length,y:i/t.length}}function K(t,n){return t.find(i=>i.focalPoint)?.focalPoint??n}function P(t){return t.commercial?.premium===!0}function U(t,n,i){let e=Math.floor(i.qty);if(!Number.isFinite(e)||e<=0)return{labels:[],reason:"sold_out"};let{categoryKey:c,zoneId:l,focal:o,preferPremium:a}=i,p=new Map,g=[];if(t.forEach((r,b)=>{let m=n.has(r.label)&&(!c||r.categoryKey===c)&&(!l||r.zoneId===l),f=r.logicalRowId??r.rowId,u=p.get(f);u||(u=[],p.set(f,u)),u.push({seat:r,index:E(r,b),elig:m}),m&&g.push(r)}),g.length===0)return{labels:[],reason:"sold_out"};let d=null,s=r=>{if(!d)return!0;if(a&&r.nonPremium!==d.nonPremium)return r.nonPremium<d.nonPremium;if(r.orphan!==d.orphan)return r.orphan<d.orphan;if(r.d2!==d.d2)return r.d2<d.d2;let b=r.rowId.localeCompare(d.rowId);return b!==0?b<0:r.startIndex<d.startIndex};for(let[r,b]of p){let m=[...b].sort((u,k)=>u.index-k.index),f=0;for(;f<m.length;){if(!m[f].elig){f++;continue}let u=f;for(;u<m.length&&m[u].elig&&(u===f||m[u].index===m[u-1].index+1);)u++;let k=u-f;for(let y=0;y+e<=k;y++){let B=y,j=k-(y+e),F=B===1||j===1?1:0,h=m.slice(f+y,f+y+e).map(I=>I.seat),O={labels:h.map(I=>I.label),seats:h,rowId:r,startIndex:m[f+y].index,orphan:F,nonPremium:a?h.reduce((I,L)=>I+(P(L)?0:1),0):0,d2:T(R(h),K(h,o))};s(O)&&(d=O)}f=u}}return d?{labels:d.labels}:g.length<e?{labels:[],reason:"not_enough_together"}:{labels:g.map((r,b)=>({seat:r,i:b,d2:T(r,r.focalPoint??o)})).sort((r,b)=>{if(a){let f=P(r.seat)?0:1,u=P(b.seat)?0:1;if(f!==u)return f-u}if(r.d2!==b.d2)return r.d2-b.d2;let m=(r.seat.logicalRowId??r.seat.rowId).localeCompare(b.seat.logicalRowId??b.seat.rowId);return m!==0?m:E(r.seat,r.i)-E(b.seat,b.i)}).slice(0,e).map(r=>r.seat.label)}}function X(t,n,i,e){let c=Math.floor(e.qty),l=U(t,i,e),a=n.filter(s=>s.bookingMode==="whole"&&s.capacity===c&&i.has(s.label)&&(!e.categoryKey||s.categoryKey===e.categoryKey)&&(!e.zoneId||s.zoneId===e.zoneId)).map(s=>({table:s,d2:T(s.center,s.focalPoint??e.focal)})).sort((s,w)=>s.d2-w.d2||s.table.label.localeCompare(w.table.label))[0];if(!a)return l;if(!l.labels.length)return{labels:[a.table.label]};let p=new Map(t.map(s=>[s.label,s])),g=l.labels.map(s=>p.get(s)).filter(s=>!!s),d=g.length?T(R(g),K(g,e.focal)):Number.POSITIVE_INFINITY;return a.d2<d?{labels:[a.table.label]}:l}var S=class extends Error{constructor(i,e){super(e);this.objectId=i;this.name="GroupedTableProjectionError"}};function V(t){let n=t.minOccupancy,i=t.maxOccupancy;if(!Number.isInteger(n)||!Number.isInteger(i)||n<1||i<n||i>t.seatCount)throw new S(t.id,`Table "${t.label}" has invalid variable-occupancy bounds`);return{min:n,max:i}}function te(t,n){if(n!==2)return[];let i=[];for(let e of A(t)){if(e.type!=="table"||!e.bookAsWhole&&!e.variableOccupancy)continue;if(e.bookAsWhole&&e.variableOccupancy)throw new S(e.id,`Table "${e.label}" cannot be whole-table and variable-occupancy inventory`);if(!Number.isInteger(e.seatCount)||e.seatCount<1||!e.label.trim())throw new S(e.id,"Grouped tables require a label and at least one chair");let c=e.variableOccupancy?"variable":"whole",l=c==="variable"?V(e):{min:e.seatCount,max:e.seatCount};i.push({objectId:e.id,label:e.label,...e.displayLabel?{displayLabel:e.displayLabel}:{},...e.displayType?{displayType:e.displayType}:{},categoryKey:e.categoryKey,mode:c,capacity:e.seatCount,minOccupancy:l.min,maxOccupancy:l.max,chairs:_(e)})}return i}export{H as a,q as b,C as c,Y as d,M as e,G as f,J as g,U as h,X as i,S as j,te as k};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Pn,c as An,d as In}from"./chunk-KPSJDH3N.js";import{c as bn}from"./chunk-ALE2T36W.js";import{d as Rn}from"./chunk-BLPBTW6I.js";import{f as hn,p as xn,r as Xt,s as ft,u as It,x as Sn}from"./chunk-YW2WGLRM.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 Pt,va as qt}from"./chunk-KCFEFP6H.js";import{A as At,d as H,y as nt}from"./chunk-JBOTRSMY.js";import Re from"earcut";import Pe from"polygon-clipping";var g=ut,Ae=.002;function Ie(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){Ie(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 we(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 Te(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=Re(i,o.length?o:void 0,2);return{pts:e,tris:a}}function Jt(t){return ft(t)<0?[...t].reverse():t}var _e=3;function Be(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 Be(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=we(l,c,f);m[1]<0&&(m=[-m[0],-m[1],-m[2]]),t.tri(l,c,f,m,a)}var Fe=8;function wn(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),Fe)}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(wn(Nt(Jt(n),Ut),i,l),Ut),m=e?.map(P=>Nt(wn(Nt(Jt(P),Ut),i,l),Ut)).filter(P=>P.length>=3&&Math.abs(ft(P))>=1e-4),{pts:u,tris:h}=Te(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<_e;x++){let P=0;for(let A=0;A<h.length;A+=3){let E=wt(u[h[A]],u[h[A+1]],u[h[A+2]],i,x);E>P&&(P=E)}if(P<=l)break}for(let P=0;P<h.length;P+=3){let A=u[h[P]],E=u[h[P+1]],v=u[h[P+2]];Tt(t,A,E,v,i,b,x,c);let G=[A.x*g,o,A.y*g],X=[E.x*g,o,E.y*g],M=[v.x*g,o,v.y*g];t.tri(G,M,X,[0,-1,0],p)}let T=P=>{if(x<=0)return P;let A=1<<x,E=[];for(let v=0;v<P.length;v++){let G=P[v],X=P[(v+1)%P.length];for(let M=0;M<A;M++){let B=M/A;E.push({x:G.x+(X.x-G.x)*B,y:G.y+(X.y-G.y)*B})}}return E},S=pn(f),C=[{ring:T(f),flip:!1}];if(m)for(let P of m)P.length>=3&&C.push({ring:T(P),flip:!0});for(let{ring:P,flip:A}of C)for(let E=0;E<P.length;E++){let v=P[E],G=P[(E+1)%P.length],X=(G.x-v.x)*g,B=(G.y-v.y)*g,O=-X,F=Math.hypot(B,O)||1;B/=F,O/=F;let I=(v.x+G.x)/2-S.x,k=(v.y+G.y)/2-S.y,R=B*I+O*k;A&&(R=-R),R<0&&(B=-B,O=-O);let _=[B,0,O],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 Tn(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=Pe.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 _n={available:[.24,.82,.52],held:[.95,.66,.22],sold:[.34,.39,.45],selected:[.24,.74,1],dimmed:[.28,.32,.37]};function rr(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,Ce=.15,ve=.3,ke=.24;function Bn(t){return t===void 0||!Number.isFinite(t)||t<=0?ke:Math.min(ve,Math.max(Ce,t*Ee))}var sr=.21,Oe=.05,en=.45,Le=en+Oe,Ge=[{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]}],De=[{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]}],Xe=[{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 ar(){let t=[],n=[],e=[],i=[],o=(F,I,k)=>{let R=e.length,[_,w,D]=F,N=[w[0]-_[0],w[1]-_[1],w[2]-_[2]],U=[D[0]-_[0],D[1]-_[1],D[2]-_[2]],L=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(L,Y,j);$>1e-9?(L/=$,Y/=$,j/=$):[L,Y,j]=I,L*I[0]+Y*I[1]+j*I[2]<0&&(L=-L,Y=-Y,j=-j);for(let z of F)t.push(...z),n.push(L,Y,j),e.push(k);i.push(R,R+1,R+2,R,R+2,R+3)},a=F=>{for(let I of Xe){let k=I.c.map(R=>R.map((_,w)=>_?F.max[w]:F.min[w]));o(k,I.n,F.part)}};for(let F of Ge)a(F);for(let F of De)a(F);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 P=10,A=8,E=[0,1.205,-.23],v=[.42,.115,.38],G=e.length;for(let F=0;F<=A;F++){let I=Math.PI*F/A,k=Math.cos(I),R=Math.sin(I);for(let _=0;_<=P;_++){let w=Math.PI*2*_/P,D=R*Math.cos(w),N=R*Math.sin(w);t.push(E[0]+v[0]*D,E[1]+v[1]*k,E[2]+v[2]*N);let U=D/v[0],L=k/v[1],Y=N/v[2],j=Math.hypot(U,L,Y)||1;U/=j,L/=j,Y/=j,n.push(U,L,Y),e.push(V.head)}}for(let F=0;F<A;F++)for(let I=0;I<P;I++){let k=G+F*(P+1)+I,R=k+P+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),O=new Uint16Array(i);return{position:X,normal:M,part:B,index:O,vertexCount:e.length,indexCount:i.length}}function Fn(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 P=-S/C,A=T/C;P*p+A*y<0&&(P=-P,A=-A),p=P,y=A}}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 dr(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 Ne=.42;function Ue(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 P=u.get(S*f+C);if(P)for(let A of P){if(A===b)continue;let E=Math.hypot(t[A].x-p.x,t[A].y-p.y);E<x&&(x=E)}}if(Number.isFinite(x)&&x<=T*c)break}e[b]=x}return e}function Ye(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=Ue(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*Ne)):Vt,m[d]=Bn(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):Ye(x),s[d*3+2]=x.y*g,l[d]=Qt(n?n(x):"available");let P=H(o?.get(x.categoryKey)??"#6e7bff")??[.43,.48,1];if(c[d*3]=P[0],c[d*3+1]=P[1],c[d*3+2]=P[2],x.accessibility?.length){let A=H(hn(x.accessibility));A&&(b[d*3]=A[0],b[d*3+1]=A[1],b[d*3+2]=A[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 je=64;function yr(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+je){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 Mr(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 Sr(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 He=1.15,Ve=2.75,We=4.5,ze=.85,Ze=.5,Ke=.26;function Rr(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>=He&&r.add("zone"),o<=(a?Ve:We)&&(r.add("section"),r.add("ga")),o<=ze&&(r.add("annotation"),r.add("booth")),o<=Ze&&r.add("row"),o<=Ke&&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 Ar(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 Ir(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 $e=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+$e):e;return o<r&&a<i}function wr(t,n,e){return t.length*n*.58+(e?14:0)}var qe={row:8,seat:14};function Tr(t){return t<480?{row:5,seat:8}:t<768?{row:6,seat:10}:qe}function _r(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 Br(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 Je=.15,Qe=.9,to=1.76;function no(){return{background:{top:[...nn.top],bottom:[...nn.bottom]},structure:tn,seatStates:{..._n},seatScale:1,materials:{seat:null,shell:null,roughness:.78}}}function Cn(t){let n=no();if(!t)return n;let e=H(t.background);if(e){n.background={top:et(e,Qe),bottom:et(e,to)};let r={};for(let[s,l]of Object.entries(tn))r[s]=nt(l,e,Je);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=Sn(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 vn(t,n){let e=[];for(let i of n)e.push(...t.seatStates[i]);return e}import Gn from"polygon-clipping";import eo from"earcut";var oo=.58,kn=.01,ot=Vt*1.5*lt,ro=.5,io=.6;function so(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 ao(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 On=Math.PI/12;function co(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 Dn(t,n){if(!t.length||!(n>0))return[];let e=co(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/On)),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/On)),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 jn(r)}function uo(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=uo(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 Xn(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=ao(a,Math.max(l*io,ot));return{pts:c,nrm:so(c,i),front:Math.max(e[n].pitch*oo,ot),back:Math.max(e[n].pitch*ro,ot)}}var gt=1.5,Nn=.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 Un(t,n){if(t.length<4)return t;let e=rn([...t,t[0]],n);return e.pop(),e.length>=3?e:t}function Yn(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=>Xn(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=jn(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:Un(p,Nn),holes:[],topY:y});continue}for(let x of lo(c))a.push({outline:x,holes:[],topY:y})}return a}function lo(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=Gn.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(Un(a,Nn))}return i}catch{return[]}}function jn(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=Gn.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=eo(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 Hn(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],P=s[h].belowY??i;if(u(()=>{if(c&&f)Ln(t,c,f,C,b.y,o.tread);else{let A=C[0];for(let E=1;E+1<C.length;E++){let v=C[E],G=C[E+1];t.tri([A.x*g,b.y,A.y*g],[v.x*g,b.y,v.y*g],[G.x*g,b.y,G.y*g],l,o.tread)}}}),b.y>P+kn){let A=0,E=0;for(let v of C)A+=v.x,E+=v.y;A/=C.length,E/=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,O=Math.hypot(M,B);if(O<1e-6)continue;let F=B/O,I=-M/O;(G.x-A)*F+(G.y-E)*I<0&&(F=-F,I=-I);let k=[F,0,I],R=[G.x*g,b.y,G.y*g],_=[X.x*g,b.y,X.y*g],w=[G.x*g,P,G.y*g],D=[X.x*g,P,X.y*g];t.tri(R,_,D,k,o.riser),t.tri(R,D,w,k,o.riser)}})}continue}let p=Xn(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 P=y[C],A=y[C+1],E=d[C],v=d[C+1];if(Math.hypot(A.x-P.x,A.y-P.y)<1e-6||E[0]===0&&E[1]===0||v[0]===0&&v[1]===0)continue;let G=[(P.x-E[0]*x)*g,b.y,(P.y-E[1]*x)*g],X=[(A.x-v[0]*x)*g,b.y,(A.y-v[1]*x)*g],M=[(P.x+E[0]*T)*g,b.y,(P.y+E[1]*T)*g],B=[(A.x+v[0]*T)*g,b.y,(A.y+v[1]*T)*g];if(u(()=>{c&&f?Ln(t,c,f,[{x:P.x-E[0]*x,y:P.y-E[1]*x},{x:A.x-v[0]*x,y:A.y-v[1]*x},{x:A.x+v[0]*T,y:A.y+v[1]*T},{x:P.x+E[0]*T,y:P.y+E[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+kn){let O=[G[0],S,G[2]],F=[X[0],S,X[2]],I=[-E[0],0,-E[1]];m(()=>{t.tri(G,X,F,I,o.riser),t.tri(G,F,O,I,o.riser)})}}}}import Wn from"polygon-clipping";function mo(t,n){let e=t.eventConfigurationIds;return!e?.length||!!n&&e.includes(n)}function Vn(t,n){return t.filter(e=>e.type!=="shape"||mo(e,n))}function zn(t,n){let e=t.focalPoint??{x:0,y:0};return t.floors?.length?t.floors.map((i,o)=>({objects:Vn(i.objects,n),focal:{x:(i.focalPoint??e).x,y:(i.focalPoint??e).y},baseHeightM:i.baseHeightM??0,index:o})):[{objects:Vn(t.objects,n),focal:e,baseHeightM:0,index:0}]}var fo={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};function Mt(t){return xn(t)??fo}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=Wn.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 Kn(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=Wn.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 ho=.05,$n=.05,bo=.15,an=25;function qn(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}`,P=x.rows.get(C);P?P.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},P=S.rows.length<2?Pn([...h.rows.values()].map(R=>({points:R})),h.unit.focal):null,A=1/0;if(P){if(h.hasSeats)for(let R of h.rows.values())for(let _ of R){let w=P.depthAt(_.x,_.y);w<A&&(A=w)}if(!h.hasSeats||!Number.isFinite(A)){A=1/0;for(let R of h.section.outline){let _=P.depthAt(R.x,R.y);_<A&&(A=_)}}}let E=p+ho,v=Math.max(E,b.height),G=R=>{let _=Math.max(0,R-A)*ut,w=Math.min(_*y,an);return Math.max(E,b.height+w)},X=R=>{let _=Math.max(0,R)*ut,w=Math.min(_*y,an);return Math.max(E,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:Dn(R.pts,ot)}:{}})),B=M.length?M[0].y:v,O=M.map(R=>{let _=R.patch&&R.patch.length>=3?R.patch:R.pts,w=0,D=0;for(let L of _)w+=L.x,D+=L.y;let N=_.length||1;w/=N,D/=N;let U=0;for(let L of _){let Y=Math.hypot(L.x-w,L.y-D);Y>U&&(U=Y)}return{cx:w,cy:D,rad:U}}),F=T?()=>v:M.length>=2?(R,_)=>{let w=1/0,D=B;for(let N=0;N<M.length;N++){let U=O[N];if(Math.hypot(R-U.cx,_-U.cy)-U.rad>=w)continue;let L=M[N].patch,Y=L&&L.length>=3?It(L,R,_)?0:Dt(L,R,_):Dt(M[N].pts,R,_);Y<w&&(w=Y,D=M[N].y)}return D}:(R,_)=>P?G(P.depthAt(R,_)):v,I=[0,1,0],k=M.length>=2||T?()=>I:(R,_)=>{if(!P)return I;let w=P.depthAt(R,_);if(w<=A)return I;let D=(w-A)*ut;if(D*y>=an||b.height+D*y<=E)return I;let[N,U]=P.gradientAt(R,_);if(N===0&&U===0)return I;let L=1/Math.hypot(y,1);return[-N*y*L,L,-U*y*L]};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 L=1;L<R.pts.length;L++){let Y=Math.hypot(R.pts[L].x-R.pts[L-1].x,R.pts[L].y-R.pts[L-1].y);Y>1e-6&&_.push(Y)}_.sort((L,Y)=>L-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 L of S.rows){if(L===R||L.blockId!==R.blockId)continue;let Y=Dt(L.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 L of R.seatIndices)s[L]=U}i.set(u,{sectionId:u,deckAt:F,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))+bo;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(At(t,.4),.62);return nt(n,e,.72)}function Jn(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 Qn(t,n){return H(t.color)??n.get(t.logicalSectionId??t.id)??null}import po from"polygon-clipping";function yo(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])&&yo(e,this.levels[c])),r=[[i]];if(a.length)try{r=po.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 xo(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?xo(n,t.rotation):null}function Ft(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"&&Rn(t.stageKind)?{kind:"stage",heightM:.06}:e[n]??{kind:"plate",heightM:.25};return{...i,heightM:t.heightM??i.heightM}}var go=.08;function te(t,n){let e=bt(t),i=Ft(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+go);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 ne(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 Et(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 ee(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,Mo=.75,So=.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 oe(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 re(t,n,e,i,o){let a=un(n);a&&K(t,a,void 0,()=>e+Mo,e,st(i,o.tableTop),o.tableWall,W)}function ie(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}:Ft(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 P of l)P.x<x&&(x=P.x),P.x>T&&(T=P.x),P.y<S&&(S=P.y),P.y>C&&(C=P.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(At(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=ne(l);at(t,Et(x,0,.16),h,u,p,d),at(t,Et(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,P)=>{let A=l[(P+1)%4],E=(C.x+A.x)/2,v=(C.y+A.y)/2;return Math.hypot(E-a.x,v-a.y)}),T=x.indexOf(Math.min(...x)),S=[0,1,2,3].map(C=>l[(T+C)%4]);at(t,Et(S,0,.08),h,u,p,d),at(t,Et(S,.92,1),h,u,p,d),at(t,ee(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 Ro(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 se(t,n,e,i){if(n.layer==="foreground")return;let o=ln(n);if(!o)return;let a=e+So,r=st(Ro(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 ae(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,Ao=1.2,Io=.6,wo=.45,To=2.3,_o=Math.PI/180;function pt(t,n,e){let i=e*_o;return{x:t.x+n*Math.sin(i),y:t.y+n*Math.cos(i)}}function Bo(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 Eo(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,O=new Float64Array(c+1);for(let F=0;F<=c;F++){let I=i[M]+(o[M]-i[M])*F/c;O[F]=Math.max(m,In(n,e,B,I)-Po)}u.push(O)}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 O=(e.startBin+M+.5)*n.binStepDeg,F=i[M]+(o[M]-i[M])*B/c,I=pt(n.centre,F,O);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 O=!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],O=!0);let F=e.closed?l:l-1;for(let I=0;I<F;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),L=M*Math.hypot(U.x-N.x,U.y-N.y)*f;_>L?(u[k][R]=u[I][R]+L,O=!0):-_>L&&(u[I][R]=u[k][R]+L,O=!0)}}if(!O)break}}let x=1,T=(M,B)=>{for(let O=0;O<=c;O+=4)if(Math.abs(u[M][O]-u[B][O])>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,P=(M,B)=>u[M][B+1]-u[M][B]>S*Math.max(1e-6,C(M)),A=(M,B)=>{let O=e.closed?(M-1+l)%l:Math.max(0,M-1),F=e.closed?(M+1)%l:Math.min(l-1,M+1);Math.abs(u[O][B]-u[M][B])>x&&(O=M),Math.abs(u[F][B]-u[M][B])>x&&(F=M);let I=Math.max(0,B-1),k=Math.min(c,B+1);I<B&&P(M,I)&&(I=B),k>B&&P(M,B)&&(k=B);let R=d(O,B),_=d(F,B),w=d(M,I),D=d(M,k),N=_[0]-R[0],U=_[1]-R[1],L=_[2]-R[2],Y=D[0]-w[0],j=D[1]-w[1],$=D[2]-w[2],z=U*$-L*j,q=L*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]},E=(M,B)=>{let O=[M[0],a,M[2]],F=[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,F,_,p,p,y),t.tri(M,F,O,_,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=A(M,j),it=A(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=A(B,j),xt=A(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),Ot=w(B,j+1),Kt=w(B,j),Lt=rt[0]-ct[0],Rt=rt[2]-ct[2],$t=Math.hypot(Lt,Rt);if($t>1e-12){let fn=[Rt/$t,0,-Lt/$t];t.tri(ct,rt,Ot,fn,p),t.tri(ct,Ot,Kt,fn,p)}}let D=d(M,0),N=d(B,0),U=d(B,c),L=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(L),Y(U),[0,-1,0],b),E(D,N),E(L,U);continue}for(let _=0;_<c;_++){let w=A(M,_),D=A(B,_),N=A(B,_+1),U=A(M,_+1);if(P(M,_)||P(B,_)){let z=(rt,Ot)=>{let Kt=(e.startBin+rt+.5)*n.binStepDeg,Lt=i[rt]+(o[rt]-i[rt])*(_+.5)/c,Rt=pt(n.centre,Lt,Kt);return[Rt.x*f,Ot,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 L=d(M,_),Y=d(B,_),j=d(B,_+1),$=d(M,_+1);t.triN(L,Y,j,w,D,N,h),t.triN(L,j,$,w,N,U,h)}let O=d(M,0),F=d(B,0),I=d(B,c),k=d(M,c),R=_=>[_[0],a,_[2]];t.tri(R(O),R(I),R(F),[0,-1,0],b),t.tri(R(O),R(k),R(I),[0,-1,0],b),E(O,F),E(k,I)}if(!e.closed)for(let M of[0,l-1])for(let B=0;B<c;B++)E(d(M,B),d(M,B+1))}function ce(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>=Ao&&Eo(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||Bo(e.shapes,n))return;let s=n.rings[n.rings.length-1],l=Io*lt,c=wo*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+To;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 ue(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=Kn(Yn(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 P of a.subtract(S.outline,C))K(t,P,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])Hn(t,o.rowLevels,e.focal,o.landingY,T,S,y);return}let h=o.flat?1/0:$n,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 Co(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 le(t,n,e,i,o,a,r=!0){let s=Co(n,e,i);if(!s.length)return;let l=An(s,n.focal);l&&(t.setMaterial(0),ce(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 vo=6,ko=2.2,me=.1,Oo=.3,Lo=1.8,Go=.9,Do=.55,Xo=6e3;function fe(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 he(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]+vo,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]+ko,x[2]],floorIndex:b.index})}}{for(let b of e)for(let p of b.objects){if(p.type!=="gaArea")continue;let y=Pt(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+Lo,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)+Go,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<=Xo)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)+Do,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?Pt(b):null;if(!p||!h.label)continue;c.push({id:`architecture:${h.id}`,kind:"annotation",text:h.label,anchor:[p.x*g,u.baseHeightM+Ft(h).heightM+me,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+me,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=Pt(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 be(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 pe(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),P=[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],A=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:P,radius:A,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 de(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 ye(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 xe(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,P=t.iPosition[C],A=t.iPosition[C+2];P<r&&(r=P),P>l&&(l=P),A<s&&(s=A),A>c&&(c=A)}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 ge(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(E=>E.x*g),y=h.map(E=>E.y*g),d=u.unit.baseHeightM+b,x=Math.min(...p),T=Math.max(...p),S=Math.min(...y),C=Math.max(...y),P,A=l.get(m.id)??m.contentImageUrl;if(m.kind==="screen"&&A)if(T-x>=C-S){let E=Math.abs(S-u.unit.focal.y*g)<=Math.abs(C-u.unit.focal.y*g)?S-.006:C+.006;P=[[x,d,E],[T,d,E],[x,d+m.heightM,E],[T,d+m.heightM,E]]}else{let E=Math.abs(x-u.unit.focal.x*g)<=Math.abs(T-u.unit.focal.x*g)?x-.006:T+.006;P=[[E,d,S],[E,d,C],[E,d+m.heightM,S],[E,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,...A?{contentImageUrl:A}:{},...P?{contentPlane:P}:{}})}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 No(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 Uo(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Yo(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 jo(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,P=u*y,A=h*b,E=h*p,v=h*y;return[(1-(S+P))*o[0],(x+v)*o[0],(T-E)*o[0],0,(x-v)*o[1],(1-(d+P))*o[1],(C+A)*o[1],0,(T+E)*o[2],(C-A)*o[2],(1-(d+S))*o[2],0,e[0],e[1],e[2],1]}function Ho(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 Vo(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 Me(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 Wo(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 Zo(t){return t==="SCALAR"?1:t==="VEC2"?2:t==="VEC3"?3:t==="VEC4"?4:0}function Ko(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 $o(t){let n=t instanceof Uint8Array?t:new Uint8Array(t),e=Wo(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")||No(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,P)=>{if(typeof S!="number"||!Number.isInteger(S)||!Q(s[S]))return null;let A=s[S];if(A.type!==C||A.sparse!==void 0||A.normalized===!0||typeof A.count!="number"||!Number.isInteger(A.count)||A.count<1||typeof A.componentType!="number"||!P.includes(A.componentType)||typeof A.bufferView!="number")return null;let E=l[A.bufferView];if(!Q(E)||E.buffer!==0||typeof E.byteLength!="number"||!Number.isInteger(E.byteLength)||E.byteLength<0)return null;let v=Zo(A.type),G=zo(A.componentType),X=typeof E.byteStride=="number"?E.byteStride:v*G,M=typeof E.byteOffset=="number"?E.byteOffset:0,B=typeof A.byteOffset=="number"?A.byteOffset:0,O=M+B,F=B+(A.count-1)*X+v*G;if(!Number.isInteger(X)||!Number.isInteger(M)||!Number.isInteger(B)||X<v*G||M<0||B<0||M+E.byteLength>o.byteLength||F>E.byteLength)return null;let I=[];for(let k=0;k<A.count;k++){let R=[];for(let _=0;_<v;_++){let w=Ko(h,O+k*X+_*G,A.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 P=f[S],A=jo(P);if(!A)return!1;let E=Yo(C,A),v=Vo(E);if(!v)return!1;if(P.mesh!==void 0){if(typeof P.mesh!="number")return!1;let G=c[P.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 O=M.length;if(X.indices!==void 0){let I=typeof X.indices=="number"?s[X.indices]:null;O=Q(I)?I.count:void 0}if(typeof O!="number"||!Number.isInteger(O)||O%3!==0||(d+=O/3,d>1e5))return!1;let F=X.indices===void 0?M.map((I,k)=>[k]):b(X.indices,"SCALAR",[5121,5123,5125]);if(!F||F.length%3!==0||F.length!==O)return!1;for(let I=0;I<F.length;I+=3){let k=[F[I][0],F[I+1][0],F[I+2][0]];if(k.some(w=>!Number.isInteger(w)||w<0||w>=M.length))return!1;let R=k.map(w=>Ho(E,...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],L=R[2][1]-R[0][1],Y=R[2][2]-R[0][2];_=Me([1,0,0,0,1,0,0,0,1],D*Y-N*L,N*U-w*Y,w*L-D*U)}for(let w=0;w<3;w++)p.push(...R[w]),y.push(...B?Me(v,...B[k[w]]):_)}}}for(let G of J(P.children))if(!T(G,E))return!1;return x.delete(S),!0};for(let S of J(m[u].nodes))if(!T(S,Uo()))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 Se(t){try{return $o(t)}catch{return{ok:!1,issue:"invalid_glb"}}}function ps(t){let{doc:n}=t,e=Cn(n.theme),i=e.structure,o=zn(n,t.eventConfigurationId??n.eventConfigurationId),a=ge(t.eventConfigurationId,t.eventConfiguration,o),r=t.seats,s=new Yt,l=null;if(t.registeredShellGlb){let F=Se(t.registeredShellGlb);if(F.ok){let I=F.position.length/3,k=new Float32Array(F.position.length),R=e.materials.shell??i.tierWall;for(let _=0;_<I;_++){let w=F.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:F.position,normal:F.normal,color:k,floor:new Float32Array(I).fill(-2),material:new Float32Array(I),count:I}}}let c=new Map;for(let F of o)for(let I of F.objects)c.set(I.id,F.index),I.type==="section"&&c.set(I.logicalSectionId??I.id,F.index);let f=r.map(F=>c.get(F.sectionId??"")??c.get(F.rowId??"")??0),m=mn(o,r);de(s,o,r,f,m,i);let u=Jn(n,r),h=new Map,b=new Map;for(let F of n.categories??[])h.set(F.key,F.color),F.seatGlyph&&b.set(F.key,F.seatGlyph);let p=[],y=qn(o,r,f),d=new Float32Array(r.length);for(let F=0;F<o.length;F++){let I=o[F];s.setFloor(F);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")ue(s,w,I,Qn(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),ie(s,w,I.baseHeightM,te(w,R),i,I.focal,p,D),s.setMaterial(0)}else w.type==="gaArea"?ae(s,w,I.baseHeightM,H(h.get(w.categoryKey)),i):w.type==="booth"?oe(s,w,I.baseHeightM,H(h.get(w.categoryKey)),i):w.type==="table"?re(s,w,I.baseHeightM,H(h.get(w.categoryKey)),i):w.type==="decorImage"&&se(s,w,I.baseHeightM,i);le(s,I,r,y,i,e.materials.shell,!l)}let x=o.length>1?{x:o.reduce((F,I)=>F+I.focal.x,0)/o.length,y:o.reduce((F,I)=>F+I.focal.y,0)/o.length}:n.focalPoint??{x:(m.minX+m.maxX)/2,y:(m.minY+m.maxY)/2},T=Tn(l?[s.build(),l]:[s.build()]),S=En(r,t.initialState,y,d,h,b),C=fe({doc:n,units:o,seats:r,surfaces:y,focal:x}),{labels:P,sections:A,rows:E}=he({doc:n,units:o,seats:r,surfaces:y,seatData:S,hintedSeatFloor:f,zones:C,focal:x}),v=pe({doc:n,units:o,seats:r,surfaces:y,solids:T,hintedSeatFloor:f,seatFloor:d});be(P,v),S.iYaw=Fn(S.iPosition,r.length,F=>r[F].rowId,F=>{let I=o[d[F]]?.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=ye(T,S,{cx:G,cz:X,radius:M}),O=xe(S,p,m,B.minY,B.maxY,M);return{solids:T,seats:S,bounds:{center:[(O.min[0]+O.max[0])/2,(O.min[1]+O.max[1])/2,(O.min[2]+O.max[2])/2],radius:M,groundY:0,box:O},renderBounds:{center:B.center,radius:B.radius},stateColorLUT:vn(e,Bt),theme:e,seatCount:r.length,focalWorld:[x.x*g,1.5,x.y*g],zones:C,stages:p,productionElements:a.elements,sections:A,rows:E,labels:P,floors:v}}export{Bt as a,Qt as b,rr as c,nn as d,g as e,sr as f,Le as g,ar as h,Vt as i,dr as j,yr as k,Mr as l,Sr as m,Rr as n,Pr as o,Ar as p,Ir as q,wr as r,Tr as s,_r as t,Br as u,ps as v};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{o as b}from"./chunk-YW2WGLRM.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _=[{key:"rect",label:"Flat stage",blurb:"Classic proscenium box."},{key:"rounded",label:"Rounded",blurb:"Softened corners."},{key:"arc",label:"Curved front",blurb:"Front edge bows toward the audience."},{key:"thrust",label:"Thrust (T)",blurb:"Central tongue projects into the crowd."},{key:"runway",label:"Runway",blurb:"Long catwalk into the audience."},{key:"round",label:"In the round",blurb:"Central platform, audience all around."},{key:"pitch-football",label:"Football pitch",blurb:"105 \xD7 68 m pitch with centre circle and penalty boxes."},{key:"rink-hockey",label:"Hockey rink",blurb:"60 \xD7 30 m ice rink with blue lines and faceoff circles."},{key:"track-athletics",label:"Athletics track",blurb:"400 m track: two straights, two semicircles, eight lanes."},{key:"oval-cricket",label:"Cricket oval",blurb:"~150 \xD7 140 m oval with boundary rope and pitch strip."}],K={"pitch-football":{width:105,height:68},"rink-hockey":{width:60,height:30},"track-athletics":{width:176.9,height:92.5},"oval-cricket":{width:150,height:140}};var P=Math.PI*2;function I(t,r,c,l,u,h){return{x:u+t*c-r*l,y:h+t*l+r*c}}function C(t){let{kind:r,cx:c,cy:l,width:u,height:h}=t,b=(t.rotation??0)*Math.PI/180,f=Math.cos(b),m=Math.sin(b),o=u/2,e=h/2,d=[],i=(n,a)=>{d.push({x:n,y:a})};switch(r){case"rect":{i(-o,-e),i(o,-e),i(o,e),i(-o,e);break}case"rounded":{let n=Math.min(u,h)*.18,a=5,s=(g,k,y)=>{for(let p=0;p<=a;p++){let S=y+p/a*(Math.PI/2);i(g+n*Math.cos(S),k+n*Math.sin(S))}};s(o-n,-e+n,-Math.PI/2),s(o-n,e-n,0),s(-o+n,e-n,Math.PI/2),s(-o+n,-e+n,Math.PI);break}case"arc":{let n=h*.45;i(-o,-e),i(o,-e);let a=24;for(let s=0;s<=a;s++){let g=s/a,k=o-g*u,y=e+n*(1-Math.pow(2*k/u,2));i(k,y)}break}case"thrust":{let n=u*.18,a=h*1.1;i(-o,-e),i(o,-e),i(o,e),i(n,e),i(n,e+a),i(-n,e+a),i(-n,e),i(-o,e);break}case"runway":{let n=u*.1,a=h*3;i(-o,-e),i(o,-e),i(o,e),i(n,e),i(n,e+a),i(-n,e+a),i(-n,e),i(-o,e);break}case"round":case"oval-cricket":{for(let a=0;a<40;a++){let s=a/40*P;i(o*Math.cos(s),e*Math.sin(s))}break}case"pitch-football":{i(-o,-e),i(o,-e),i(o,e),i(-o,e);break}case"rink-hockey":{for(let n of T(o,e,o*(8.5/60),e*(8.5/30)))i(n.x,n.y);break}case"track-athletics":{for(let n of w(o,e))i(n.x,n.y);break}}return d.map(n=>I(n.x,n.y,f,m,c,l))}function T(t,r,c,l){let u=[],b=(f,m,o)=>{for(let e=0;e<=8;e++){let d=o+e/8*(Math.PI/2);u.push({x:f+c*Math.cos(d),y:m+l*Math.sin(d)})}};return b(t-c,-r+l,-Math.PI/2),b(t-c,r-l,0),b(-t+c,r-l,Math.PI/2),b(-t+c,-r+l,Math.PI),u}function w(t,r){let c=Math.max(0,t-r),l=[],u=20;for(let h=0;h<=u;h++){let b=-Math.PI/2+h/u*Math.PI;l.push({x:c+r*Math.cos(b),y:r*Math.sin(b)})}for(let h=0;h<=u;h++){let b=Math.PI/2+h/u*Math.PI;l.push({x:-c+r*Math.cos(b),y:r*Math.sin(b)})}return l}var R="#f1f5f9";function v(t){return t==="pitch-football"||t==="rink-hockey"||t==="track-athletics"||t==="oval-cricket"}function x(t,r,c,l,u=32){let h=[];for(let b=0;b<u;b++){let f=b/u*P;h.push({x:t+c*Math.cos(f),y:r+l*Math.sin(f)})}return h}function M(t,r,c,l){return[{x:t-c,y:r-l},{x:t+c,y:r-l},{x:t+c,y:r+l},{x:t-c,y:r+l}]}function A(t){let{kind:r,cx:c,cy:l,width:u,height:h}=t,b=(t.rotation??0)*Math.PI/180,f=Math.cos(b),m=Math.sin(b),o=u/2,e=h/2,d=[],i=K[r],n=s=>i?s/i.width*u:0,a=s=>i?s/i.height*h:0;switch(r){case"pitch-football":{d.push({points:[{x:0,y:-e},{x:0,y:e}],closed:!1}),d.push({points:x(0,0,n(9.15),a(9.15)),closed:!0});for(let s of[-1,1])d.push({points:M(s*(o-n(16.5)/2),0,n(16.5)/2,a(40.32)/2),closed:!0}),d.push({points:M(s*(o-n(5.5)/2),0,n(5.5)/2,a(18.32)/2),closed:!0});break}case"rink-hockey":{d.push({points:[{x:0,y:-e},{x:0,y:e}],closed:!1,ink:"#d63b3b"});for(let s of[-1,1]){d.push({points:[{x:s*n(7.5),y:-e},{x:s*n(7.5),y:e}],closed:!1,ink:"#2f6ecb"}),d.push({points:[{x:s*(o-n(4)),y:-a(11)},{x:s*(o-n(4)),y:a(11)}],closed:!1,ink:"#d63b3b"});for(let g of[-1,1])d.push({points:x(s*n(20.5),g*a(7),n(4.5),a(4.5)),closed:!0,ink:"#2f6ecb"})}d.push({points:x(0,0,n(4.5),a(4.5)),closed:!0,ink:"#2f6ecb"});break}case"track-athletics":{let g=e-a(1.22)*8;g>0&&d.push({points:w(o-n(1.22)*8,g),closed:!0,fill:"#2f7d4f"});for(let k=1;k<8;k++){let y=a(1.22)*k,p=e-y;if(p<=0)break;d.push({points:w(o-n(1.22)*k,p),closed:!0})}break}case"oval-cricket":{d.push({points:x(0,0,n(27.4),a(27.4+20.12/2),40),closed:!0}),d.push({points:M(0,0,n(3.05)/2,a(20.12)/2),closed:!0,ink:"#d8cfae"});break}default:return[]}return d.map(s=>({...s,points:s.points.map(g=>I(g.x,g.y,f,m,c,l))}))}function E(t){if(t.role!=="stage"||!v(t.stageKind))return[];let r=null;if(t.x!=null&&t.y!=null&&t.width!=null&&t.height!=null&&t.width>0&&t.height>0&&[t.x,t.y,t.width,t.height].every(Number.isFinite))r={cx:t.x+t.width/2,cy:t.y+t.height/2,width:t.width,height:t.height};else if(t.points&&t.points.length>=3&&t.points.every(c=>Number.isFinite(c.x)&&Number.isFinite(c.y))){let c=t.points.map(e=>e.x),l=t.points.map(e=>e.y),u=Math.min(...c),h=Math.max(...c),b=Math.min(...l),f=Math.max(...l),m=Math.max(1,h-u),o=Math.max(1,f-b);r={cx:u+m/2,cy:b+o/2,width:m,height:o}}return r?A({kind:t.stageKind,...r}):[]}export{_ as a,C as b,R as c,v as d,E as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c,
|
|
1
|
+
import{c,k as A,n as T}from"./chunk-JBOTRSMY.js";var d=7,B=10,N=10,R=15,k=11,y=.85,E=12,M=4.5,x=3,l="#000000",u="#ffffff",Z=24,g=18.67;function G(t,L=400){return t>=Z||L>=700&&t>=g?x:M}function H(t,L){return t*L>=E}var P=24,m={wheelchair:"M7.8 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM8 7L10.5 7L10.5 15L8 15ZM8 12.5L18 12.5L18 15L8 15ZM16 15L18 15L18 18L16 18ZM5.5 16a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0zM8 16a3 3 0 1 1 6 0a3 3 0 1 1 -6 0z",companion:"M5.5 6.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM4.5 18.5L6 11.5L11 11.5L12.5 18.5ZM12.5 7.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM11.5 19L13 12.5L18 12.5L19.5 19Z","semi-ambulatory":"M8.3 3.8a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM9 6.2L12 6.6L11 13.5L8.6 13L9 6.2ZM8.6 13L11 13L9.5 21L7 21ZM10.4 13L12.6 13L13.6 21L11.2 21ZM11.2 7.2L14 8L14.6 9.6L11.9 8.9ZM14.4 6.8L15.9 6.8L16.4 21L14.8 21Z","designated-aisle":"M3 5L6 5L6 14L3 14ZM3 12L13 12L13 15L3 15ZM5 15L7 15L7 20L5 20ZM11 15L13 15L13 20L11 20ZM13 7L20 7L17 4L19 4L23 8.5L19 13L17 13L20 10L13 10Z","step-free":"M4 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM4.4 7L7.5 7L7.5 13L11 15L9.5 17L5 14L4.4 7ZM2 19L8 19L17 10L22 10L22 13L18 13L10 21L2 21Z",hearing:"M15.5 3.5C9 2.2 5.5 6 5.5 11.5C5.5 16 8 19.5 10.5 21C13.2 22.6 16.4 20.8 15.4 18C14.8 16.4 12.9 16.1 13 14C13.1 11.9 15.8 11.4 15.8 8.5C15.8 5.4 13 4 15.5 3.5Z",cart:"M5.5 6L18.5 6a2.5 2.5 0 0 1 2.5 2.5L21 15.5a2.5 2.5 0 0 1 -2.5 2.5L11 18L7 20.5L7.5 18L5.5 18a2.5 2.5 0 0 1 -2.5 -2.5L3 8.5a2.5 2.5 0 0 1 2.5 -2.5zM6.5 11L17.5 11L17.5 12.6L6.5 12.6zM6.5 14L17.5 14L17.5 15.6L6.5 15.6z","sign-language":"M7 11L17 11L17 18a2 2 0 0 1 -2 2L9 20a2 2 0 0 1 -2 -2zM7.6 5L9.4 5L9.4 12L7.6 12zM9.9 3.5L11.7 3.5L11.7 12L9.9 12zM12.3 3.5L14.1 3.5L14.1 12L12.3 12zM14.6 5L16.4 5L16.4 12L14.6 12zM7.2 12.5L5 10.2L6.4 8.9L8.6 11.2Z","low-vision":"M2.5 12C6 6 18 6 21.5 12C18 18 6 18 2.5 12ZM9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM17.5 3L19 3L19 6L17.5 6ZM19 4L22 4L22 5.5L19 5.5Z","sensory-friendly":"M4 11C4 5 7 2.5 12 2.5S20 5 20 11L17 11C17 7 15.5 5.5 12 5.5S7 7 7 11ZM3 10L8 10L8 19L5 19a2 2 0 0 1 -2 -2ZM16 10L21 10L21 17a2 2 0 0 1 -2 2L16 19ZM9 12L15 12L15 14L9 14ZM10 16L14 16L14 18L10 18Z","plus-size":"M9.4 4.3a2.6 2.6 0 1 0 5.2 0a2.6 2.6 0 1 0 -5.2 0zM5 20L4 13C4 10.5 7 9.5 12 9.5C17 9.5 20 10.5 20 13L19 20Z","lift-armrest":"M5 6L8 6L8 19L5 19zM5 16L18 16L18 19L5 19zM8 12L17 12L17 14.5L8 14.5zM14 7L16 7L16 12L14 12zM12 7L18 7L15 3Z"},v=m.wheelchair;function w(t){if(!t?.length)return null;let L=t.includes("wheelchair")?"wheelchair":t[0];return m[L]??null}function F(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var a=T;function X(t,L,r){let n=c(t),o=c(L);if(!n||!o)return L;let e=Math.max(0,Math.min(1,r));return`#${n.map((s,_)=>Math.round(s*e+o[_]*(1-e))).map(s=>s.toString(16).padStart(2,"0")).join("")}`}var K=3;function I(t,L,r=M){let n=a(L,t);if(n!=null&&n>=r)return L;let o=a(l,t)??0,e=a(u,t)??0;return o===0&&e===0?L:o>=e?l:u}var S=3;function Y(t){let L=a("#ffffff",t);if(L!=null&&L>=S)return"#ffffff";let r=a(l,t)??0,n=a(u,t)??0;return r===0&&n===0?"#ffffff":r>=n?l:u}var C=/^#[0-9a-f]{6}$/i;function O(t){let L=c(t);return L!=null&&A(L)>.5}var b="#e5e7eb",h="#273142";function D(t){return O(t)?b:h}function U(t,L,r=M){let n=C.test(t.trim()),o=t.trim().toLowerCase(),e=0,i=0,s=null;for(let p of L){if(!n||!C.test(p.trim()))continue;e+=1;let f=I(p,t,r);f.toLowerCase()!==o&&(i+=1,s=f)}return{total:e,overridden:i,status:e===0?"none":i===0?"applies":i===e?"overridden":"mixed",overrideInk:s}}export{d as a,B as b,N as c,R as d,k as e,y as f,E as g,M as h,x as i,l as j,u as k,G as l,H as m,P as n,m as o,v as p,w as q,F as r,a as s,X as t,K as u,I as v,Y as w,O as x,b as y,h as z,D as A,U as B};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function t(e){let n=e;return delete n.referenceScan,delete n.referenceInventorySource,delete n.referenceInventoryExclusion,delete n.referenceSource,delete n.referenceAnnotationSource,e}function y(e){return(e.type==="shape"||e.type==="text")&&e.referenceAnnotationSource?.kind==="direct-landmark-v1"&&(e.referenceAnnotationSource.ownership="organizer"),e}function m(e){return e.type==="shape"&&h(e)}function h(e){return(e.type==="shape"||e.type==="text")&&(e.labelImportance==="orientation"||e.referenceAnnotationSource?.kind==="direct-landmark-v1")}function S(e){return e.referenceImage??(e.backgroundImage?.assetId?e.backgroundImage:void 0)}function g(e){let n=e.backgroundImage;return n?.url&&!n.assetId?n:void 0}function o(e){let n=g(e);if(!n?.url)return;let{calibration:a,derivedScale:r,assetId:b,...u}=n;return u}function C(e){let n=a=>{let r=a.backgroundImage;r?.assetId&&(a.referenceImage||(a.referenceImage=r,a.backgroundImage=void 0))};n(e);for(let a of e.floors??[])n(a);return e}function i(e){let n={...e};return t(n),delete n.editor,n}function d(e){let n={...e};return delete n.referenceCategorySource,delete n.referenceDirectSeatImport,n}function x(e){let n=o(e),a=e.floors?.map(r=>({...r,objects:r.objects.map(i),referenceImage:void 0,backgroundImage:o(r)}));return{...e,categories:e.categories.map(d),objects:e.objects.map(i),referenceImage:void 0,venueSurveyRegistrations:void 0,backgroundImage:n,...a?{floors:a}:{}}}function O(e){return!!e.referenceImage?.assetId&&!!e.backgroundImage?.assetId&&e.referenceImage.assetId!==e.backgroundImage.assetId}var _=24,L=2,H={facilities:"Facilities","food-drink":"Food & drink",navigation:"Getting around",accessibility:"Accessibility"},N=["facilities","food-drink","navigation","accessibility"],c="M13 4.6a1.6 1.6 0 1 0-3.2 0 1.6 1.6 0 0 0 3.2 0 M11 6.5V13h5l2.4 6 M15 16.4A5 5 0 1 1 9 11.3",s=[{key:"restroom-men",label:"Men's restroom",group:"facilities",path:"M16 7a4 4 0 1 0-8 0 4 4 0 0 0 8 0 M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"},{key:"restroom-women",label:"Women's restroom",group:"facilities",path:"M15 5a3 3 0 1 0-6 0 3 3 0 0 0 6 0 M12 8l-4 10h8l-4-10 M10 18v4 M14 18v4"},{key:"restroom-accessible",label:"Accessible restroom",group:"facilities",path:c},{key:"first-aid",label:"First aid",group:"facilities",path:"M5 4h14a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Z M12 8v8 M8 12h8"},{key:"coat-check",label:"Coat check",group:"facilities",path:"M12 6a2 2 0 0 1 0-4 2 2 0 0 1 1.6 3.2L21 13H3l8.4-7.8 M3 13h18"},{key:"atm",label:"ATM / cash",group:"facilities",path:"M2 6h20v12H2V6Z M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0 M6 9h.01 M18 15h.01"},{key:"info",label:"Info point",group:"facilities",path:"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18 M12 11v5 M12 8h.01"},{key:"lost-found",label:"Lost & found",group:"facilities",path:"M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14 M16 16l5 5 M9 8.5a2 2 0 1 1 3 1.7c-.8.5-1 .8-1 1.8 M11 15h.01"},{key:"restrooms",label:"Restrooms",group:"facilities",path:"M6 3h12a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M12 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4 M9 18v-3.5a3 3 0 0 1 6 0V18"},{key:"charging",label:"Charging point",group:"facilities",path:"M3 8h13v8H3V8Z M16 10h3v4h-3 M9.6 9l-2 3.5h2.5l-1.5 3"},{key:"smoking",label:"Smoking area",group:"facilities",path:"M2 15h13v3H2v-3Z M18 16h2 M19 8c0 1 1 1.5 1 2.5S19 12 19 13"},{key:"no-smoking",label:"No smoking",group:"facilities",path:"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18 M5.6 5.6l12.8 12.8 M7 13h6v2H7v-2Z"},{key:"food",label:"Food",group:"food-drink",path:"M7 3v6a2 2 0 0 0 4 0V3 M9 11v10 M17 3c-1.6 1-2.2 3-2.2 6 0 2 .9 3.2 2.2 3.6V21"},{key:"bar",label:"Bar",group:"food-drink",path:"M4 5h16l-8 8-8-8Z M12 13v6 M8 20h8"},{key:"coffee",label:"Caf\xE9 / coffee",group:"food-drink",path:"M4 8h13v4a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5V8Z M17 9h2a2 2 0 0 1 0 4h-2 M8 2v2 M11 2v2 M4 21h14"},{key:"water",label:"Water / drinks",group:"food-drink",path:"M12 22a7 7 0 0 1-7-7c0-5 7-12 7-12s7 7 7 12a7 7 0 0 1-7 7Z"},{key:"merch",label:"Merch / shop",group:"food-drink",path:"M6 8h12l-1 12H7L6 8Z M9 8V6a3 3 0 0 1 6 0v2"},{key:"screen",label:"Screen",group:"facilities",path:"M3 4h18v12H3V4Z M9 20h6 M12 16v4 M10 8l4 2-4 2V8Z"},{key:"sound-booth",label:"Sound booth",group:"facilities",path:"M6 4v16 M6 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4 M12 4v16 M12 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4 M18 4v16 M18 12a2 2 0 1 0 0 4 2 2 0 0 0 0-4"},{key:"entrance",label:"Entrance",group:"navigation",path:"M14 3h5a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-5 M3 12h11 M10 8l4 4-4 4"},{key:"exit",label:"Exit",group:"navigation",path:"M10 3H5a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h5 M14 12h7 M17 8l4 4-4 4"},{key:"emergency-exit",label:"Emergency exit",group:"navigation",path:"M14 4.6a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0 M12.5 8l-3.5 2 1.6 3.6-2 4.4 M12.5 10l3.5 1.5 M9 10.5l-3.5 1 M15 12h6 M18 9l3 3-3 3"},{key:"stairs",label:"Stairs",group:"navigation",path:"M3 20v-4h4v-4h4v-4h4V4h5"},{key:"elevator",label:"Elevator",group:"navigation",path:"M5 3h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M8 11l1.5-2 1.5 2 M8 14l1.5 2 1.5-2 M15 8v8"},{key:"parking",label:"Parking",group:"navigation",path:"M5 3h14a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z M9 17V7h4a3 3 0 0 1 0 6H9"},{key:"wheelchair",label:"Wheelchair access",group:"accessibility",path:c},{key:"hearing",label:"Hearing assistance",group:"accessibility",path:"M8 20a4 4 0 0 1-2-3c0-1 .5-2 .5-3a4.5 4.5 0 1 1 9 0c0 1.4-1 2-2 2.4-1.2.5-1.5 1-1.5 2.2 M17 6a5 5 0 0 1 1 6 M19.5 4a8 8 0 0 1 1.2 9"}],P={wall:"M3 5h18v14H3V5Z M3 9.7h18 M3 14.3h18 M9 5v4.7 M15 5v4.7 M6 9.7v4.6 M12 9.7v4.6 M18 9.7v4.6 M9 14.3v4.7 M15 14.3v4.7",rail:"M3 7h18 M4 17h16 M6 7v10 M10 7v10 M14 7v10 M18 7v10",suite:"M3 4h18v16H3V4Z M6 17v-5h12v5 M8 12V9h8v3",obstruction:"M8 3h8l-1 4v10l1 4H8l1-4V7L8 3Z M9 7h6 M9 17h6"},l=new Map(s.map(e=>[e.key,e]));function f(e){return e?l.get(e):void 0}function A(e){return f(e)?.path}function R(e){return typeof e=="string"&&l.has(e)}var D=s.map(e=>e.key);var Z=["butt","round","square"],B=["miter","round","bevel"],j=["none","arrow"],M="round",k="round",p="none";function v(e){return e==="line"||e==="polyline"}function F(e){return e==="polygon"||v(e)}function U(e){return{lineCap:e.lineCap??M,lineJoin:e.lineJoin??k,startEnding:e.startEnding??p,endEnding:e.endEnding??p}}function w(e){return{pointerLength:Math.min(48,Math.max(8,e*3)),pointerWidth:Math.min(40,Math.max(8,e*2.25))}}export{y as a,m as b,h as c,S as d,g as e,C as f,x as g,O as h,_ as i,L as j,H as k,N as l,s as m,P as n,f as o,A as p,R as q,D as r,Z as s,B as t,j as u,M as v,k as w,p as x,v as y,F as z,U as A,w as B};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var L=/^#[0-9a-fA-F]{6}$/,T=/^#?([\da-f]{3}|[\da-f]{6})$/i,k=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\d.]+))?\s*\)$/i;function A(n){return typeof n=="string"&&L.test(n)}function w(n){let r=n.replace("#","");return{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16)}}function b(n){let r=T.exec((n??"").trim());if(!r)return null;let t=r[1].length===3?r[1].split("").map(o=>o+o).join(""):r[1],e=parseInt(t,16);return[e>>16&255,e>>8&255,e&255]}function z(n){let r=b(n);return r?[r[0]/255,r[1]/255,r[2]/255]:null}function y({r:n,g:r,b:t}){let e=o=>Math.max(0,Math.min(255,Math.round(o))).toString(16).padStart(2,"0");return`#${e(n)}${e(r)}${e(t)}`}function f(n,r,t){return y({r:n,g:r,b:t})}function G(n){return f(n[0]*255,n[1]*255,n[2]*255)}function V(n){let r=n.trim(),t=T.exec(r);if(t&&r.startsWith("#"))return`#${(t[1].length===3?t[1].split("").map(u=>u+u).join(""):t[1]).toLowerCase()}`;let e=k.exec(r);if(!e||e[4]!=null&&Number(e[4])<.999)return null;let o=[Number(e[1]),Number(e[2]),Number(e[3])];return o.some(s=>!Number.isInteger(s)||s<0||s>255)?null:`#${o.map(s=>s.toString(16).padStart(2,"0")).join("")}`}function W(n,r){let t=s=>{let u=b(s);if(!u)return null;let i=p=>{let N=p/255;return N<=.04045?N/12.92:((N+.055)/1.055)**2.4},g=i(u[0]),c=i(u[1]),a=i(u[2]),l=(.4124*g+.3576*c+.1805*a)/.95047,R=.2126*g+.7152*c+.0722*a,E=(.0193*g+.1192*c+.9505*a)/1.08883,h=p=>p>.008856?Math.cbrt(p):7.787*p+16/116,C=h(l),d=h(R),H=h(E);return[116*d-16,500*(C-d),200*(d-H)]},e=t(n),o=t(r);return e&&o?Math.hypot(e[0]-o[0],e[1]-o[1],e[2]-o[2]):null}function m(n){let r=n/255;return r<=.04045?r/12.92:((r+.055)/1.055)**2.4}function M(n){let{r,g:t,b:e}=w(n);return .2126*m(r)+.7152*m(t)+.0722*m(e)}function $(n){return .2126*m(n[0])+.7152*m(n[1])+.0722*m(n[2])}function B(n){return $([n[0]*255,n[1]*255,n[2]*255])}function x(n,r){let t=M(n),e=M(r);return(Math.max(t,e)+.05)/(Math.min(t,e)+.05)}function O(n,r){let t=b(n),e=b(r);if(!t||!e)return null;let o=$(t),s=$(e);return(Math.max(o,s)+.05)/(Math.min(o,s)+.05)}var P=4.5,_=3;function U(n,r,t){return x(n,r)>=t}function v(n){let r=n.trim();if(r.startsWith("#")){let e=b(r);return e?(.2126*e[0]+.7152*e[1]+.0722*e[2])/255:NaN}let t=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/.exec(r);return t?(.2126*+t[1]+.7152*+t[2]+.0722*+t[3])/255:NaN}function I(n){return .2126*n[0]+.7152*n[1]+.0722*n[2]}function Y(n,r=.6){let t=v(n);return!Number.isNaN(t)&&t>r}function D(n,r){let t=b(n);return t?f(...t.map(e=>e+(255-e)*r)):n}function J(n,r){let t=b(n);return t?f(...t.map(e=>e*(1-r))):n}function K(n,r,t){let e=b(n),o=b(r);return!e||!o?n:f(e[0]+(o[0]-e[0])*t,e[1]+(o[1]-e[1])*t,e[2]+(o[2]-e[2])*t)}function Q(n,r){let t=0,e=0,o=0,s=0;for(let u of n){let i=b(u.hex);!i||u.w<=0||(t+=i[0]*u.w,e+=i[1]*u.w,o+=i[2]*u.w,s+=u.w)}return s>0?f(t/s,e/s,o/s):r}function S(n,r,t){return[n[0]+(r[0]-n[0])*t,n[1]+(r[1]-n[1])*t,n[2]+(r[2]-n[2])*t]}function Z(n,r){let t=b(n);if(!t)return n;let e=.2126*t[0]+.7152*t[1]+.0722*t[2];return f(...t.map(o=>o+(e-o)*r))}function q(n,r){let t=I(n);return S(n,[t,t,t],r)}function j(n,r){let t=b(n);return t?`rgba(${t[0]},${t[1]},${t[2]},${r})`:n}var nn=j;function F({r:n,g:r,b:t}){let e=n/255,o=r/255,s=t/255,u=Math.max(e,o,s),i=Math.min(e,o,s),g=(u+i)/2;if(u===i)return{h:0,s:0,l:g};let c=u-i,a=g>.5?c/(2-u-i):c/(u+i),l;return u===e?l=((o-s)/c+(o<s?6:0))/6:u===o?l=((s-e)/c+2)/6:l=((e-o)/c+4)/6,{h:l,s:a,l:g}}function X(n,r,t){if(r===0)return{r:t*255,g:t*255,b:t*255};let e=t<.5?t*(1+r):t+r-t*r,o=2*t-e,s=u=>{let i=u;return i<0&&(i+=1),i>1&&(i-=1),i<1/6?o+(e-o)*6*i:i<1/2?e:i<2/3?o+(e-o)*(2/3-i)*6:o};return{r:s(n+1/3)*255,g:s(n)*255,b:s(n-1/3)*255}}function tn(n,r,t=_){if(!A(n)||!A(r))return{requested:n,ratio:0,ok:!1,suggestion:null,suggestionRatio:0};let e=x(n,r);if(e>=t)return{requested:n,ratio:e,ok:!0,suggestion:null,suggestionRatio:e};let{h:o,s,l:u}=F(w(n)),i=.01,g=null;for(let c=i;c<=1;c+=i){for(let a of[u+c,u-c]){if(a<0||a>1)continue;let l=y(X(o,s,a)),R=x(l,r);if(R>=t){g={hex:l,ratio:R};break}}if(g)break}return{requested:n,ratio:e,ok:!1,suggestion:g?.hex??null,suggestionRatio:g?.ratio??0}}function rn(n,r,t){return x(r,n)>=x(t,n)?r:t}export{A as a,w as b,b as c,z as d,y as e,f,G as g,V as h,W as i,M as j,$ as k,B as l,x as m,O as n,P as o,_ as p,U as q,v as r,I as s,Y as t,D as u,J as v,K as w,Q as x,S as y,Z as z,q as A,j as B,nn as C,F as D,X as E,tn as F,rn as G};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as V,s as m}from"./chunk-GXMGOWKB.js";var te=3,I=4.5,T=3,O=24,ie=20;function A(t){return t.filter(a=>a.visible&&!!a.screenBox)}function y(t,a){return t.x<a.x+a.width&&t.x+t.width>a.x&&t.y<a.y+a.height&&t.y+t.height>a.y}function p(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function o(t,a,s){return s.length?{code:t,message:a,count:s.length,samples:s.slice(0,ie)}:null}function B(t,a,s){return{primaryId:t.seatId,primaryLabel:t.label,...a==null?{}:{measured:Math.round(a*100)/100},...s==null?{}:{minimum:s}}}function F(t,a,s){return{primaryId:t.id,primaryLabel:t.label,...a==null?{}:{measured:Math.round(a*100)/100},...s==null?{}:{minimum:s}}}function $(t,a,s){return{primaryId:t.objectId,primaryLabel:t.text,...a==null?{}:{measured:Math.round(a*100)/100},...s==null?{}:{minimum:s}}}function g(t,a,s,l){return{primaryId:t,primaryLabel:a,secondaryId:s,secondaryLabel:l}}function ne(t,a="overview",s=null){let l=A(t.labels),c=A(t.hierarchyLabels),d=A(t.freeTextLabels),f=A(t.rowLabels),C=t.gaAreas.filter(e=>e.visible),D=l.map(e=>m(e.ink,e.fill)??0),W=c.map(e=>m(e.ink,e.fill)??0),X=d.map(e=>m(e.ink,e.background)??0),Y=C.map(e=>m(e.effectiveBackground,t.canvasBackground)??0),u=s?t.labels.filter(e=>e.categoryKey===s):t.labels,v=s?t.gaAreas.filter(e=>e.categoryKey===s):t.gaAreas,h=u.filter(e=>e.selected),x=u.filter(e=>e.status==="held"),w=u.filter(e=>e.status==="booked"),R=u.filter(e=>e.pointerTarget.active),M=new Set([...t.labels.filter(e=>e.visible&&(e.opacity>.25||e.selected||e.status!=="free")).map(e=>e.categoryKey),...t.gaAreas.filter(e=>e.visible&&e.opacity>.1).map(e=>e.categoryKey)]),S=h.length?p(h.map(e=>m(e.selectionRingColor??t.selectionRingColor,e.fill)??0)):null,n=[],k=(e,i)=>Array.from({length:e},(b,L)=>({primaryId:`overview:${L+1}`,primaryLabel:i}));a==="overview"&&t.rung==="sections"&&(n.push(o("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",k(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),n.push(o("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",k(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),n.push(o("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",k(t.overviewStyle.visibleSectionRowHints,"section row hint"))),n.push(o("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),n.push(o("overview-ga-detail-visible","Section-contained standing paint belongs in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionGADetails,"section-contained GA detail")))),n.push(o("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",l.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>B(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),n.push(o("bookable-label-viewport-clipped","Visible interaction labels must remain fully inside the buyer viewport",a==="interaction"?l.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>B(e)):[])),n.push(o("row-label-viewport-clipped","Visible interaction row labels must remain fully inside the buyer viewport",a==="interaction"?f.flatMap((e,i)=>{let b=e.screenBox;return b.x<0||b.y<0||b.x+b.width>t.viewport.width||b.y+b.height>t.viewport.height?[{primaryId:`row-label-${i}`,primaryLabel:e.text}]:[]}):[]));let K=[];if(a==="interaction")for(let e=0;e<f.length;e+=1)for(let i=0;i<e;i+=1)y(f[e].screenBox,f[i].screenBox)&&K.push(g(`row-label-${i}`,f[i].text,`row-label-${e}`,f[e].text));if(n.push(o("row-label-collision","Visible interaction row labels must not overlap",K)),a==="interaction"){let e=u.length>0,i=v.length>0,b=e||i,L=v.filter(r=>r.visible),q=new Set([...u.flatMap(r=>r.sectionId?[r.sectionId]:[]),...v.flatMap(r=>r.sectionId?[r.sectionId]:[])]),J=new Set([...t.labels.map(r=>r.categoryKey),...t.gaAreas.map(r=>r.categoryKey)]),P=r=>r.screenCenter.x>=0&&r.screenCenter.x<=t.viewport.width&&r.screenCenter.y>=0&&r.screenCenter.y<=t.viewport.height;n.push(o("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",b&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),n.push(o("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",b&&!u.some(P)&&!L.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),n.push(o("pointer-target-inactive","Interaction evidence must expose a live production pointer target",e&&!R.some(P)||!e&&i&&!L.some(r=>r.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),n.push(o("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",R.filter(r=>P(r)&&r.pointerTarget.effectiveMinimumPx<O).map(r=>B(r,r.pointerTarget.effectiveMinimumPx,O)))),n.push(o("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",e&&(!h.length||!h.some(r=>t.selectionRingSeatIds.includes(r.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),n.push(o("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the seat paint",h.length&&(S??0)<T?[{primaryId:h[0].seatId,primaryLabel:h[0].label,measured:Math.round((S??0)*100)/100,minimum:T}]:[])),n.push(o("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",u.length>=2&&!x.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),n.push(o("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",u.length>=3&&!w.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let Z=new Set(x.map(r=>`${r.fill.toLowerCase()}:${r.opacity}`)),ee=new Set(w.map(r=>`${r.fill.toLowerCase()}:${r.opacity}`));n.push(o("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",x.length&&w.length&&[...Z].some(r=>ee.has(r))?[{primaryId:x[0].seatId,primaryLabel:x[0].label,secondaryId:w[0].seatId,secondaryLabel:w[0].label}]:[])),n.push(o("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",q.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),n.push(o("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",J.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let E=t.labels.filter(r=>r.status==="free"&&!r.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(r.categoryKey)),Q=t.gaAreas.filter(r=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(r.categoryKey));n.push(o("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(E.length||Q.length)&&!E.some(r=>r.opacity<=.25)&&!Q.some(r=>r.opacity<=.1)?[...E.map(r=>B(r,r.opacity)),...Q.map(r=>({primaryId:r.areaId,primaryLabel:r.label,measured:r.opacity}))]:[])),n.push(o("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",s&&!M.has(s)?[{primaryId:s,primaryLabel:s}]:[])),n.push(o("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",s&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==s)?[{primaryId:s,primaryLabel:s}]:[]))}n.push(o("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",l.flatMap(e=>{let i=m(e.ink,e.fill)??0;return i<I?[B(e,i,I)]:[]})));let _=[];for(let e=0;e<l.length;e+=1)for(let i=0;i<e;i+=1)y(l[e].screenBox,l[i].screenBox)&&_.push(g(l[i].seatId,l[i].label,l[e].seatId,l[e].label));n.push(o("bookable-label-collision","Visible bookable labels must not overlap",_)),n.push(o("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",c.filter(e=>e.renderedFontPx<V).map(e=>F(e,e.renderedFontPx,V)))),n.push(o("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",c.flatMap(e=>{let i=m(e.ink,e.fill)??0;return i<I?[F(e,i,I)]:[]}))),n.push(o("hierarchy-label-viewport-clipped","Visible overview hierarchy labels must remain fully inside the buyer viewport",a==="overview"?c.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>F(e)):[])),n.push(o("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",c.filter(e=>e.kind==="section"&&e.fitsContainer===!1).map(e=>F(e))));let z=[];for(let e=0;e<c.length;e+=1)for(let i=0;i<e;i+=1)y(c[e].screenBox,c[i].screenBox)&&z.push(g(c[i].id,c[i].label,c[e].id,c[e].label));n.push(o("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",z));let G=[];for(let e of c)for(let i of l)y(e.screenBox,i.screenBox)&&G.push(g(e.id,e.label,i.seatId,i.label));n.push(o("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",G)),n.push(o("free-text-undersized","Visible chart text must meet the rendered small-text size floor",d.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>$(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),n.push(o("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",d.flatMap(e=>{let i=m(e.ink,e.background)??0;return i<I?[$(e,i,I)]:[]})));let U=[];for(let e=0;e<d.length;e+=1)for(let i=0;i<e;i+=1)y(d[e].screenBox,d[i].screenBox)&&U.push(g(d[i].objectId,d[i].text,d[e].objectId,d[e].text));n.push(o("free-text-collision","Visible chart text labels must not overlap each other",U));let N=[];for(let e of d)for(let i of l)y(e.screenBox,i.screenBox)&&N.push(g(e.objectId,e.text,i.seatId,i.label));n.push(o("free-text-bookable-collision","Visible chart text must not overlap bookable labels",N));let j=[];for(let e of d)for(let i of c)y(e.screenBox,i.screenBox)&&j.push(g(e.objectId,e.text,i.id,i.label));n.push(o("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",j)),n.push(o("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",C.flatMap(e=>{let i=m(e.effectiveBackground,t.canvasBackground)??0;return i<T?[{primaryId:e.areaId,primaryLabel:e.label,measured:Math.round(i*100)/100,minimum:T}]:[]})));let H=n.filter(e=>!!e);return{version:te,passed:H.length===0,state:a,targetCategoryKey:s,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-viewport","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...a==="interaction"?["rendered-detail-label-viewport","rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:l.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:c.length,visibleFreeTextLabels:d.length,visibleGAAreas:C.length},overviewStyle:t.overviewStyle,composition:{hierarchy:t.hierarchyLabels.filter(e=>e.role==="name").map(e=>({id:e.id,kind:e.kind,label:e.label,visible:e.visible})).sort((e,i)=>e.kind.localeCompare(i.kind)||e.id.localeCompare(i.id)),labelledObjects:t.freeTextLabels.map(e=>({objectId:e.objectId,kind:e.kind,text:e.text,visible:e.visible})).sort((e,i)=>e.objectId.localeCompare(i.objectId)||e.kind.localeCompare(i.kind)),gaAreas:t.gaAreas.map(e=>({areaId:e.areaId,label:e.label,categoryKey:e.categoryKey,...e.sectionId?{sectionId:e.sectionId}:{},visible:e.visible})).sort((e,i)=>e.areaId.localeCompare(i.areaId)),bookableSectionIds:[...new Set(t.labels.flatMap(e=>e.sectionId?[e.sectionId]:[]))].sort(),categoryKeys:[...new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)])].sort(),activeCategoryKeys:[...M].sort()},metrics:{minimumRenderedBookableLabelPx:p(l.map(e=>e.renderedFontPx)),minimumBookableLabelContrast:p(D),minimumRenderedHierarchyLabelPx:p(c.map(e=>e.renderedFontPx)),minimumHierarchyLabelContrast:p(W),minimumRenderedFreeTextPx:p(d.map(e=>e.renderedFontPx)),minimumFreeTextContrast:p(X),minimumGAContrast:p(Y),minimumEffectivePointerTargetPx:p(R.map(e=>e.pointerTarget.effectiveMinimumPx)),selectedRingContrast:S==null?null:Math.round(S*100)/100},interaction:{applicable:{detail:u.length>0||v.length>0,pointer:u.length>0||v.length>0,held:u.length>=2,booked:u.length>=3,sectionFocus:u.some(e=>!!e.sectionId)||v.some(e=>!!e.sectionId),categoryFilter:new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)]).size>=2},selectedUnits:h.length,heldUnits:x.length,bookedUnits:w.length,activePointerTargets:R.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:H}}export{te as a,ne as b};
|
|
1
|
+
import{g as V,s as m}from"./chunk-FMZ6HLDH.js";var te=3,I=4.5,T=3,O=24,ie=20;function A(t){return t.filter(a=>a.visible&&!!a.screenBox)}function y(t,a){return t.x<a.x+a.width&&t.x+t.width>a.x&&t.y<a.y+a.height&&t.y+t.height>a.y}function p(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function o(t,a,s){return s.length?{code:t,message:a,count:s.length,samples:s.slice(0,ie)}:null}function B(t,a,s){return{primaryId:t.seatId,primaryLabel:t.label,...a==null?{}:{measured:Math.round(a*100)/100},...s==null?{}:{minimum:s}}}function F(t,a,s){return{primaryId:t.id,primaryLabel:t.label,...a==null?{}:{measured:Math.round(a*100)/100},...s==null?{}:{minimum:s}}}function $(t,a,s){return{primaryId:t.objectId,primaryLabel:t.text,...a==null?{}:{measured:Math.round(a*100)/100},...s==null?{}:{minimum:s}}}function g(t,a,s,l){return{primaryId:t,primaryLabel:a,secondaryId:s,secondaryLabel:l}}function ne(t,a="overview",s=null){let l=A(t.labels),c=A(t.hierarchyLabels),d=A(t.freeTextLabels),f=A(t.rowLabels),C=t.gaAreas.filter(e=>e.visible),D=l.map(e=>m(e.ink,e.fill)??0),W=c.map(e=>m(e.ink,e.fill)??0),X=d.map(e=>m(e.ink,e.background)??0),Y=C.map(e=>m(e.effectiveBackground,t.canvasBackground)??0),u=s?t.labels.filter(e=>e.categoryKey===s):t.labels,v=s?t.gaAreas.filter(e=>e.categoryKey===s):t.gaAreas,h=u.filter(e=>e.selected),x=u.filter(e=>e.status==="held"),w=u.filter(e=>e.status==="booked"),R=u.filter(e=>e.pointerTarget.active),M=new Set([...t.labels.filter(e=>e.visible&&(e.opacity>.25||e.selected||e.status!=="free")).map(e=>e.categoryKey),...t.gaAreas.filter(e=>e.visible&&e.opacity>.1).map(e=>e.categoryKey)]),S=h.length?p(h.map(e=>m(e.selectionRingColor??t.selectionRingColor,e.fill)??0)):null,n=[],k=(e,i)=>Array.from({length:e},(b,L)=>({primaryId:`overview:${L+1}`,primaryLabel:i}));a==="overview"&&t.rung==="sections"&&(n.push(o("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",k(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),n.push(o("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",k(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),n.push(o("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",k(t.overviewStyle.visibleSectionRowHints,"section row hint"))),n.push(o("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),n.push(o("overview-ga-detail-visible","Section-contained standing paint belongs in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionGADetails,"section-contained GA detail")))),n.push(o("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",l.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>B(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),n.push(o("bookable-label-viewport-clipped","Visible interaction labels must remain fully inside the buyer viewport",a==="interaction"?l.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>B(e)):[])),n.push(o("row-label-viewport-clipped","Visible interaction row labels must remain fully inside the buyer viewport",a==="interaction"?f.flatMap((e,i)=>{let b=e.screenBox;return b.x<0||b.y<0||b.x+b.width>t.viewport.width||b.y+b.height>t.viewport.height?[{primaryId:`row-label-${i}`,primaryLabel:e.text}]:[]}):[]));let K=[];if(a==="interaction")for(let e=0;e<f.length;e+=1)for(let i=0;i<e;i+=1)y(f[e].screenBox,f[i].screenBox)&&K.push(g(`row-label-${i}`,f[i].text,`row-label-${e}`,f[e].text));if(n.push(o("row-label-collision","Visible interaction row labels must not overlap",K)),a==="interaction"){let e=u.length>0,i=v.length>0,b=e||i,L=v.filter(r=>r.visible),q=new Set([...u.flatMap(r=>r.sectionId?[r.sectionId]:[]),...v.flatMap(r=>r.sectionId?[r.sectionId]:[])]),J=new Set([...t.labels.map(r=>r.categoryKey),...t.gaAreas.map(r=>r.categoryKey)]),P=r=>r.screenCenter.x>=0&&r.screenCenter.x<=t.viewport.width&&r.screenCenter.y>=0&&r.screenCenter.y<=t.viewport.height;n.push(o("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",b&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),n.push(o("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",b&&!u.some(P)&&!L.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),n.push(o("pointer-target-inactive","Interaction evidence must expose a live production pointer target",e&&!R.some(P)||!e&&i&&!L.some(r=>r.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),n.push(o("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",R.filter(r=>P(r)&&r.pointerTarget.effectiveMinimumPx<O).map(r=>B(r,r.pointerTarget.effectiveMinimumPx,O)))),n.push(o("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",e&&(!h.length||!h.some(r=>t.selectionRingSeatIds.includes(r.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),n.push(o("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the seat paint",h.length&&(S??0)<T?[{primaryId:h[0].seatId,primaryLabel:h[0].label,measured:Math.round((S??0)*100)/100,minimum:T}]:[])),n.push(o("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",u.length>=2&&!x.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),n.push(o("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",u.length>=3&&!w.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let Z=new Set(x.map(r=>`${r.fill.toLowerCase()}:${r.opacity}`)),ee=new Set(w.map(r=>`${r.fill.toLowerCase()}:${r.opacity}`));n.push(o("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",x.length&&w.length&&[...Z].some(r=>ee.has(r))?[{primaryId:x[0].seatId,primaryLabel:x[0].label,secondaryId:w[0].seatId,secondaryLabel:w[0].label}]:[])),n.push(o("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",q.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),n.push(o("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",J.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let E=t.labels.filter(r=>r.status==="free"&&!r.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(r.categoryKey)),Q=t.gaAreas.filter(r=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(r.categoryKey));n.push(o("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(E.length||Q.length)&&!E.some(r=>r.opacity<=.25)&&!Q.some(r=>r.opacity<=.1)?[...E.map(r=>B(r,r.opacity)),...Q.map(r=>({primaryId:r.areaId,primaryLabel:r.label,measured:r.opacity}))]:[])),n.push(o("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",s&&!M.has(s)?[{primaryId:s,primaryLabel:s}]:[])),n.push(o("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",s&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==s)?[{primaryId:s,primaryLabel:s}]:[]))}n.push(o("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",l.flatMap(e=>{let i=m(e.ink,e.fill)??0;return i<I?[B(e,i,I)]:[]})));let _=[];for(let e=0;e<l.length;e+=1)for(let i=0;i<e;i+=1)y(l[e].screenBox,l[i].screenBox)&&_.push(g(l[i].seatId,l[i].label,l[e].seatId,l[e].label));n.push(o("bookable-label-collision","Visible bookable labels must not overlap",_)),n.push(o("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",c.filter(e=>e.renderedFontPx<V).map(e=>F(e,e.renderedFontPx,V)))),n.push(o("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",c.flatMap(e=>{let i=m(e.ink,e.fill)??0;return i<I?[F(e,i,I)]:[]}))),n.push(o("hierarchy-label-viewport-clipped","Visible overview hierarchy labels must remain fully inside the buyer viewport",a==="overview"?c.filter(e=>e.screenBox.x<0||e.screenBox.y<0||e.screenBox.x+e.screenBox.width>t.viewport.width||e.screenBox.y+e.screenBox.height>t.viewport.height).map(e=>F(e)):[])),n.push(o("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",c.filter(e=>e.kind==="section"&&e.fitsContainer===!1).map(e=>F(e))));let z=[];for(let e=0;e<c.length;e+=1)for(let i=0;i<e;i+=1)y(c[e].screenBox,c[i].screenBox)&&z.push(g(c[i].id,c[i].label,c[e].id,c[e].label));n.push(o("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",z));let G=[];for(let e of c)for(let i of l)y(e.screenBox,i.screenBox)&&G.push(g(e.id,e.label,i.seatId,i.label));n.push(o("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",G)),n.push(o("free-text-undersized","Visible chart text must meet the rendered small-text size floor",d.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>$(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),n.push(o("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",d.flatMap(e=>{let i=m(e.ink,e.background)??0;return i<I?[$(e,i,I)]:[]})));let U=[];for(let e=0;e<d.length;e+=1)for(let i=0;i<e;i+=1)y(d[e].screenBox,d[i].screenBox)&&U.push(g(d[i].objectId,d[i].text,d[e].objectId,d[e].text));n.push(o("free-text-collision","Visible chart text labels must not overlap each other",U));let N=[];for(let e of d)for(let i of l)y(e.screenBox,i.screenBox)&&N.push(g(e.objectId,e.text,i.seatId,i.label));n.push(o("free-text-bookable-collision","Visible chart text must not overlap bookable labels",N));let j=[];for(let e of d)for(let i of c)y(e.screenBox,i.screenBox)&&j.push(g(e.objectId,e.text,i.id,i.label));n.push(o("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",j)),n.push(o("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",C.flatMap(e=>{let i=m(e.effectiveBackground,t.canvasBackground)??0;return i<T?[{primaryId:e.areaId,primaryLabel:e.label,measured:Math.round(i*100)/100,minimum:T}]:[]})));let H=n.filter(e=>!!e);return{version:te,passed:H.length===0,state:a,targetCategoryKey:s,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-viewport","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...a==="interaction"?["rendered-detail-label-viewport","rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:l.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:c.length,visibleFreeTextLabels:d.length,visibleGAAreas:C.length},overviewStyle:t.overviewStyle,composition:{hierarchy:t.hierarchyLabels.filter(e=>e.role==="name").map(e=>({id:e.id,kind:e.kind,label:e.label,visible:e.visible})).sort((e,i)=>e.kind.localeCompare(i.kind)||e.id.localeCompare(i.id)),labelledObjects:t.freeTextLabels.map(e=>({objectId:e.objectId,kind:e.kind,text:e.text,visible:e.visible})).sort((e,i)=>e.objectId.localeCompare(i.objectId)||e.kind.localeCompare(i.kind)),gaAreas:t.gaAreas.map(e=>({areaId:e.areaId,label:e.label,categoryKey:e.categoryKey,...e.sectionId?{sectionId:e.sectionId}:{},visible:e.visible})).sort((e,i)=>e.areaId.localeCompare(i.areaId)),bookableSectionIds:[...new Set(t.labels.flatMap(e=>e.sectionId?[e.sectionId]:[]))].sort(),categoryKeys:[...new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)])].sort(),activeCategoryKeys:[...M].sort()},metrics:{minimumRenderedBookableLabelPx:p(l.map(e=>e.renderedFontPx)),minimumBookableLabelContrast:p(D),minimumRenderedHierarchyLabelPx:p(c.map(e=>e.renderedFontPx)),minimumHierarchyLabelContrast:p(W),minimumRenderedFreeTextPx:p(d.map(e=>e.renderedFontPx)),minimumFreeTextContrast:p(X),minimumGAContrast:p(Y),minimumEffectivePointerTargetPx:p(R.map(e=>e.pointerTarget.effectiveMinimumPx)),selectedRingContrast:S==null?null:Math.round(S*100)/100},interaction:{applicable:{detail:u.length>0||v.length>0,pointer:u.length>0||v.length>0,held:u.length>=2,booked:u.length>=3,sectionFocus:u.some(e=>!!e.sectionId)||v.some(e=>!!e.sectionId),categoryFilter:new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)]).size>=2},selectedUnits:h.length,heldUnits:x.length,bookedUnits:w.length,activePointerTargets:R.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:H}}export{te as a,ne as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as c}from"./chunk-KCFEFP6H.js";var l=72;var A="seatmap.chart";var d=[{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"}],u=new Map(d.map(e=>[e.key,e]));function E(e){return u.get(e)}var b={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 k(e){let t=e?.[0];return t&&b[t]||"#3b82f6"}var g=[{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"}],m=new Map(g.map(e=>[e.key,e]));function P(e){return m.get(e)}var M=8,T=24,p=["reference-focal","bar","entrance","exit","restroom","screen","sound","concession","coat","wall","rail","suite","obstruction"],y=new Set(p);function O(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&&y.has(e.role)?"surroundings":"background";case"text":return"background";default:return"interactive"}}var V=2e6,S=/^data:image\/(?:png|jpe?g|webp|gif|avif);base64,[a-z0-9+/]+={0,2}$/i,f=/[\s"'<>`\\]/;function v(e){if(typeof e!="string"||!e||e.length>2e6||e!==e.trim())return!1;if(e.startsWith("data:"))return S.test(e);if(f.test(e))return!1;try{let t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password}catch{return!1}}function G(e){let t=e.trim();return v(t)?t:null}function h(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 z(e){return h(e)*2}function U(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}var x=.15,C=1.6;function W(e){return c(e??1,x,C)}function R(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 Z(e){let t=R(e);return t?w(t):null}function w(e){return{x:e.minX,y:e.minY,width:e.maxX-e.minX,height:e.maxY-e.minY}}function Q(e,t){return e.minX<=t.maxX&&t.minX<=e.maxX&&e.minY<=t.maxY&&t.minY<=e.maxY}export{l as a,A as b,d as c,E as d,b as e,k as f,g,P as h,M as i,T as j,p as k,O as l,V as m,v as n,G as o,R as p,Z as q,Q as r,h as s,z as t,U as u,x as v,C as w,W as x};
|