@seatlayer/core 0.61.0 → 0.62.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/{categoryInventory-DjFHXtp6.d.cts → categoryInventory-C4-bA5Nx.d.cts} +1 -1
- package/dist/{categoryInventory-B-0p5PBr.d.ts → categoryInventory-EaqLUHxJ.d.ts} +1 -1
- package/dist/chunk-6CNWW47A.js +1 -0
- package/dist/{chunk-IZTHA3X2.js → chunk-DFNYIQY3.js} +1 -1
- package/dist/chunk-GXMGOWKB.js +1 -0
- package/dist/chunk-K7GN3IOW.js +1 -0
- package/dist/{chunk-HHM3PB66.js → chunk-LVUGIKHG.js} +1 -1
- package/dist/{chunk-VOJMGPDK.js → chunk-QHWOX6PN.js} +1 -1
- package/dist/chunk-RZLIIQDP.js +1 -0
- package/dist/{chunk-XU73MULJ.js → chunk-UCLIUNHN.js} +1 -1
- package/dist/{chunk-ATFAQDPR.js → chunk-YPVY3Z5S.js} +1 -1
- package/dist/core/chart-ops/index.cjs +1 -1
- package/dist/core/chart-ops/index.d.cts +7 -5
- package/dist/core/chart-ops/index.d.ts +7 -5
- package/dist/core/chart-ops/index.js +1 -1
- package/dist/core/inventory/index.cjs +1 -1
- package/dist/core/inventory/index.d.cts +4 -4
- package/dist/core/inventory/index.d.ts +4 -4
- package/dist/core/inventory/index.js +1 -1
- package/dist/core/layout/index.cjs +1 -1
- package/dist/core/layout/index.d.cts +4 -4
- package/dist/core/layout/index.d.ts +4 -4
- package/dist/core/layout/index.js +1 -1
- package/dist/core/quality/index.cjs +1 -1
- package/dist/core/quality/index.d.cts +12 -5
- package/dist/core/quality/index.d.ts +12 -5
- 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 +83 -2
- package/dist/core/render-assets/index.d.ts +83 -2
- 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.cjs +1 -1
- package/dist/core/sections/index.d.cts +5 -5
- package/dist/core/sections/index.d.ts +5 -5
- package/dist/core/sections/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +30 -10
- package/dist/index.d.ts +30 -10
- package/dist/index.js +1 -1
- package/dist/{labeling-BPCTQfDG.d.ts → labeling-B4i6gdAb.d.ts} +5 -2
- package/dist/{labeling-iVwhgoip.d.cts → labeling-Cwufmw3W.d.cts} +5 -2
- package/dist/{layout-Vk2ZGdMS.d.cts → layout-CGKQ3Pi2.d.cts} +10 -4
- package/dist/{layout-D-R46h1m.d.ts → layout-CVumqAiR.d.ts} +10 -4
- package/dist/{renderedQuality-h9RvUWMo.d.cts → renderedQuality-Bvj_f4Ep.d.cts} +1 -1
- package/dist/{renderedQuality-CsXNQCCH.d.ts → renderedQuality-C86YHszi.d.ts} +1 -1
- package/dist/{renderer-QnB3a1yh.d.cts → renderer-Bq6tKuUD.d.cts} +11 -1
- package/dist/{renderer-Bo9JzqMA.d.ts → renderer-DwYiuiuC.d.ts} +11 -1
- package/dist/{sections-Dmjtj1BQ.d.cts → sections-CXMjxU_S.d.cts} +1 -1
- package/dist/{sections-9_Ka3i-z.d.ts → sections-hr18lj4d.d.ts} +1 -1
- package/dist/{segmentedRowModel-s157HmRp.d.cts → segmentedRowModel-Cgp4cK2q.d.cts} +1 -1
- package/dist/{segmentedRowModel-CO6Jogaa.d.ts → segmentedRowModel-lcp9clIL.d.ts} +1 -1
- package/dist/{ticketRestrictions-DetdPbsL.d.cts → ticketRestrictions-BY7Nvzc-.d.cts} +2 -2
- package/dist/{ticketRestrictions-EJTEWPGN.d.ts → ticketRestrictions-NW94Eo3R.d.ts} +2 -2
- package/dist/{types-Db9rXT14.d.cts → types-D_pq-iqz.d.cts} +48 -1
- package/dist/{types-Db9rXT14.d.ts → types-D_pq-iqz.d.ts} +48 -1
- 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 +2 -2
- package/dist/view3d/index.d.ts +2 -2
- package/dist/view3d/index.js +27 -27
- package/package.json +1 -1
- package/dist/chunk-CNCFI5RT.js +0 -1
- package/dist/chunk-P2NJ6UO6.js +0 -1
- package/dist/chunk-VI2CLV3Y.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as Point, C as ChartDoc, R as RowObject } from '../../types-
|
|
2
|
-
import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-
|
|
3
|
-
export { C as CATEGORY_INVENTORY_FAMILIES, a as CategoryInventoryClone, b as CategoryInventoryConflict, c as CategoryInventoryFamily, d as CategoryInventoryFamilyUsage, e as CategoryInventoryObjectType, f as CategoryInventoryReassignment, g as CategoryInventoryRemediationChange, h as CategoryInventoryRemediationResult, i as CategoryInventoryTarget, j as describeCategoryInventoryConflict, k as effectiveSeatOwnerCategoryCounts, l as inspectCategoryInventoryConflicts, r as remediateCategoryInventoryConflicts } from '../../categoryInventory-
|
|
4
|
-
export { C as CompanionSelectionIssue, M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, T as TicketOptionApplicabilityIssue, b as TicketSelection, c as TicketSelectionIssue, d as TicketTierResolution, e as applicableTicketTiers, f as companionSelectionIssue, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, r as resolveTicketTierForSeat, t as ticketOptionNotApplicableIssue, m as ticketSelectionIssue, n as ticketTierAppliesToSeat, v as validGAInventorySegments } from '../../ticketRestrictions-
|
|
1
|
+
import { P as Point, C as ChartDoc, R as RowObject } from '../../types-D_pq-iqz.cjs';
|
|
2
|
+
import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-Bq6tKuUD.cjs';
|
|
3
|
+
export { C as CATEGORY_INVENTORY_FAMILIES, a as CategoryInventoryClone, b as CategoryInventoryConflict, c as CategoryInventoryFamily, d as CategoryInventoryFamilyUsage, e as CategoryInventoryObjectType, f as CategoryInventoryReassignment, g as CategoryInventoryRemediationChange, h as CategoryInventoryRemediationResult, i as CategoryInventoryTarget, j as describeCategoryInventoryConflict, k as effectiveSeatOwnerCategoryCounts, l as inspectCategoryInventoryConflicts, r as remediateCategoryInventoryConflicts } from '../../categoryInventory-C4-bA5Nx.cjs';
|
|
4
|
+
export { C as CompanionSelectionIssue, M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, T as TicketOptionApplicabilityIssue, b as TicketSelection, c as TicketSelectionIssue, d as TicketTierResolution, e as applicableTicketTiers, f as companionSelectionIssue, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, r as resolveTicketTierForSeat, t as ticketOptionNotApplicableIssue, m as ticketSelectionIssue, n as ticketTierAppliesToSeat, v as validGAInventorySegments } from '../../ticketRestrictions-BY7Nvzc-.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Best-available seat selection — a PURE, fully unit-testable ranking function.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as Point, C as ChartDoc, R as RowObject } from '../../types-
|
|
2
|
-
import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-
|
|
3
|
-
export { C as CATEGORY_INVENTORY_FAMILIES, a as CategoryInventoryClone, b as CategoryInventoryConflict, c as CategoryInventoryFamily, d as CategoryInventoryFamilyUsage, e as CategoryInventoryObjectType, f as CategoryInventoryReassignment, g as CategoryInventoryRemediationChange, h as CategoryInventoryRemediationResult, i as CategoryInventoryTarget, j as describeCategoryInventoryConflict, k as effectiveSeatOwnerCategoryCounts, l as inspectCategoryInventoryConflicts, r as remediateCategoryInventoryConflicts } from '../../categoryInventory-
|
|
4
|
-
export { C as CompanionSelectionIssue, M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, T as TicketOptionApplicabilityIssue, b as TicketSelection, c as TicketSelectionIssue, d as TicketTierResolution, e as applicableTicketTiers, f as companionSelectionIssue, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, r as resolveTicketTierForSeat, t as ticketOptionNotApplicableIssue, m as ticketSelectionIssue, n as ticketTierAppliesToSeat, v as validGAInventorySegments } from '../../ticketRestrictions-
|
|
1
|
+
import { P as Point, C as ChartDoc, R as RowObject } from '../../types-D_pq-iqz.js';
|
|
2
|
+
import { E as ExpandedSeat, S as SeatStatus } from '../../renderer-DwYiuiuC.js';
|
|
3
|
+
export { C as CATEGORY_INVENTORY_FAMILIES, a as CategoryInventoryClone, b as CategoryInventoryConflict, c as CategoryInventoryFamily, d as CategoryInventoryFamilyUsage, e as CategoryInventoryObjectType, f as CategoryInventoryReassignment, g as CategoryInventoryRemediationChange, h as CategoryInventoryRemediationResult, i as CategoryInventoryTarget, j as describeCategoryInventoryConflict, k as effectiveSeatOwnerCategoryCounts, l as inspectCategoryInventoryConflicts, r as remediateCategoryInventoryConflicts } from '../../categoryInventory-EaqLUHxJ.js';
|
|
4
|
+
export { C as CompanionSelectionIssue, M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, N as NotForSaleSelectionIssue, T as TicketOptionApplicabilityIssue, b as TicketSelection, c as TicketSelectionIssue, d as TicketTierResolution, e as applicableTicketTiers, f as companionSelectionIssue, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, r as resolveTicketTierForSeat, t as ticketOptionNotApplicableIssue, m as ticketSelectionIssue, n as ticketTierAppliesToSeat, v as validGAInventorySegments } from '../../ticketRestrictions-NW94Eo3R.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Best-available seat selection — a PURE, fully unit-testable ranking function.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as H,b as V,c as Z,d as tt,e as et,f as ot,g as rt,h as nt,i as at,j as it,k as st}from"../../chunk-UCLIUNHN.js";import{a as ct,b as lt,c as ut,d as pt,e as ft,h as P}from"../../chunk-K7GN3IOW.js";import"../../chunk-GXMGOWKB.js";import"../../chunk-DNGP2HDT.js";import{a as L,b as z,c as F,d as J,e as Q,f as U,g as Y,h as $,i as q}from"../../chunk-YPVY3Z5S.js";import"../../chunk-VI3IZS2B.js";import{l as C,ma as v,oa as g,pa as R,ra as S,sa as _,w,xa as O}from"../../chunk-RZLIIQDP.js";import"../../chunk-CXF32VPG.js";function b(t){return t.floors?.length?t.floors.flatMap(e=>e.objects):t.objects}function I(t){return b(t).reduce((e,r)=>r.type==="row"?e+v(r):r.type==="table"?e+S(r):r.type==="gaArea"?e+Math.max(0,Math.floor(r.capacity)):r.type==="booth"?e+1:e,0)}function bt(t){let e={};for(let o of t.categories??[])e[o.key]=0;let r=(o,a)=>{a>0&&(e[o]=(e[o]??0)+a)};for(let o of b(t))if(o.type==="row")for(let a of g(o))r(a.categoryKey,1);else if(o.type==="table")if(o.bookAsWhole||o.variableOccupancy)r(o.categoryKey,Math.max(0,Math.round(o.seatCount)));else for(let a of _(o))r(a.categoryKey,1);else o.type==="gaArea"?r(o.categoryKey,Math.max(0,Math.floor(o.capacity))):o.type==="booth"&&r(o.categoryKey,1);return e}function G(t){if(!t.template)return null;let e=b(t),r=e.filter(l=>l.type==="row"||l.type==="table"||l.type==="gaArea");if(!r.length)return null;let a=e.filter(l=>l.type==="booth").length+r.reduce((l,f)=>l+(f.type==="table"?2:1),0),s=I(t),c=Math.max(a+1,Math.min(5e4,s*4)),u=[.5,1,1.5,2].map(l=>w(Math.round(s*l),a,c));return{family:t.template.family,display:t.template.family.replace(/-/g," ").replace(/\b\w/g,l=>l.toUpperCase()),min:a,max:c,presets:["S","M","L","XL"].map((l,f)=>({size:l,seats:u[f]}))}}function A(t){let e=g(t);return e.length?C(e):{...t.origin}}function dt(t,e){let r=G(t);if(!r)return structuredClone(t);let o=structuredClone(t),a=b(o),s=a.filter(n=>n.type==="row"||n.type==="table"||n.type==="gaArea"),c=a.filter(n=>n.type==="booth").length,u=Math.max(r.min,Math.min(r.max,Math.round(e))),l=u-c,f=s.map((n,i)=>{let m=n.type==="gaArea"?Math.max(0,Math.floor(n.capacity)):n.seatCount,x=n.type==="table"?2:1;return{object:n,index:i,current:m,minimum:x,value:x,fraction:0}}),E=f.reduce((n,i)=>n+i.minimum,0),d=Math.max(0,l-E),T=f.reduce((n,i)=>n+Math.max(1,i.current-i.minimum),0);for(let n of f){let i=d*Math.max(1,n.current-n.minimum)/T,m=Math.floor(i);n.value+=m,n.fraction=i-m}d=l-f.reduce((n,i)=>n+i.value,0),f.sort((n,i)=>i.fraction-n.fraction||n.index-i.index);for(let n=0;n<d;n++)f[n%f.length].value++;f.sort((n,i)=>n.index-i.index);for(let n of f)if(n.object.type==="row"){let i=A(n.object);n.object.seatCount=n.value;let m=A(n.object);n.object.origin.x+=i.x-m.x,n.object.origin.y+=i.y-m.y}else if(n.object.type==="table"){let i=n.object;if(i.seatCountsBySide){let m=["top","bottom","left","right"],x=R(i),N=m.reduce((p,y)=>p+x[y],0)||1,h=m.map((p,y)=>{let M=n.value*x[p]/N;return{side:p,index:y,value:Math.floor(M),fraction:M-Math.floor(M)}}),k=n.value-h.reduce((p,y)=>p+y.value,0);h.sort((p,y)=>y.fraction-p.fraction||p.index-y.index);for(let p=0;p<k;p++)h[p%h.length].value+=1;h.sort((p,y)=>p.index-y.index),i.seatCountsBySide={top:h[0].value,bottom:h[1].value,left:h[2].value,right:h[3].value},i.sides=m.filter(p=>i.seatCountsBySide[p]>0)}i.seatCount=n.value,i.overrides&&(i.overrides=i.overrides.filter(m=>m.index<n.value),i.overrides.length||delete i.overrides)}else n.object.capacity=n.value;return o.floors?.length&&(o.objects=o.floors[0].objects),o.template={family:o.template.family,targetSeats:u},o=P(o).doc,o.template={family:t.template.family,targetSeats:I(o)},o}var W=1,B=100;function X(t,e){if(!Number.isInteger(e)||e<W||e>B)return null;let r=t.rotation*Math.PI/180,o={x:Math.cos(r),y:Math.sin(r)},a={x:-o.y,y:o.x};return Array.from({length:e},(s,c)=>{let u=t.style==="intertwined"&&c%2===1?t.seatSpacing/2:0;return{type:"row",id:`__block_preview_${c}`,label:"",origin:{x:t.origin.x+a.x*c*t.rowGap+o.x*u,y:t.origin.y+a.y*c*t.rowGap+o.y*u},rotation:t.rotation,curve:t.curve,seatCount:t.seatsPerRow,seatSpacing:t.seatSpacing,categoryKey:"__preview__"}})}function j(t,e=t.rowCount){let r=X(t,e);return r?.length?O(r[r.length-1]):null}function Ct(t,e){if(!Number.isFinite(e.x)||!Number.isFinite(e.y)||t.rowGap<=0)return null;let r=j(t,1);if(!r)return null;let o=t.rotation*Math.PI/180,a={x:-Math.sin(o),y:Math.cos(o)},s=(e.x-r.x)*a.x+(e.y-r.y)*a.y,c=Math.max(W,Math.min(B,Math.round(s/t.rowGap)+1)),u=j(t,c);return u?{rowCount:c,edgePoint:u}:null}function wt(t,e){return t.length!==e.rowCount?!1:[...t].sort((o,a)=>(o.rowBlockGeneration?.rowIndex??1/0)-(a.rowBlockGeneration?.rowIndex??1/0)).every((o,a)=>{let s=o.rowBlockGeneration;return s?.kind==="row-block-v1"&&s.groupId===e.groupId&&s.rowIndex===a&&s.signature===e.signature&&JSON.stringify(s)===JSON.stringify({...e,rowIndex:a})})}var Rt=1,St=300,_t=330;function D(t,e){if(t.path||!Number.isInteger(e)||e<1||e>300)return null;let r=t.seatCount>1?t.curve/(t.seatCount-1):0;return{...t,seatCount:e,curve:r*(e-1)}}function K(t,e=t.seatCount){let r=D(t,e);if(!r)return null;if(e===1)return{...r.origin};let o=r.rotation*Math.PI/180,a=r.curve/(e-1)*Math.PI/180,s,c;if(Math.abs(a)<1e-9)s=(e-1)*r.seatSpacing,c=0;else{let u=r.seatSpacing/(2*Math.sin(Math.abs(a)/2)),l=a*(e-1);s=u*Math.sin(l),c=-u+u*Math.cos(l)}return{x:r.origin.x+s*Math.cos(o)-c*Math.sin(o),y:r.origin.y+s*Math.sin(o)+c*Math.cos(o)}}function Ot(t,e){if(t.path||!Number.isFinite(e.x)||!Number.isFinite(e.y))return null;let r=t.seatCount>1?t.curve/(t.seatCount-1):0,o=Math.abs(r)<1e-9?300:Math.min(300,Math.floor(330/Math.abs(r))+1),a=null;for(let s=1;s<=Math.max(1,o);s+=1){let c=K(t,s);if(!c)continue;let u=Math.hypot(c.x-e.x,c.y-e.y),l=r*(s-1);(!a||u<a.distance||u===a.distance&&s<a.seatCount)&&(a={seatCount:s,curve:l,endpoint:c,distance:u})}return a}export{ct as CATEGORY_INVENTORY_FAMILIES,it as GroupedTableProjectionError,_t as MAX_DIRECT_ROW_SWEEP,z as MAX_EVENT_INVENTORY,L as MAX_GA_CAPACITY,B as MAX_ROW_BLOCK_ROWS,St as MAX_ROW_SEATS,W as MIN_ROW_BLOCK_ROWS,Rt as MIN_ROW_SEATS,ot as applicableTicketTiers,G as capacityControl,bt as categoryCapacity,I as chartCapacity,nt as companionSelectionIssue,pt as describeCategoryInventoryConflict,lt as effectiveSeatOwnerCategoryCounts,$ as gaAreasOf,Q as gaInventorySegments,F as gaUnitLabel,U as gaUnitLabels,st as groupedTableInventory,Y as growJoinedGAInventory,ut as inspectCategoryInventoryConflicts,wt as intactRowBlockMembers,q as isGaUnitLabel,V as pickBestAvailable,Z as pickBestAvailableInventory,ft as remediateCategoryInventoryConflicts,dt as resizeChartCapacity,Ct as resolveRowBlockCount,Ot as resolveRowTerminalCapacity,rt as resolveTicketTierForSeat,j as rowBlockEdgePoint,X as rowBlockPreviewRows,K as rowTerminalEndpoint,D as rowWithTerminalCapacity,H as strandedSingles,tt as ticketOptionNotApplicableIssue,at as ticketSelectionIssue,et as ticketTierAppliesToSeat,J as validGAInventorySegments};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var J=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var qe=Object.prototype.hasOwnProperty;var Qe=(e,t)=>{for(var n in t)J(e,n,{get:t[n],enumerable:!0})},Ze=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ve(t))!qe.call(e,r)&&r!==n&&J(e,r,{get:()=>t[r],enumerable:!(o=We(t,r))||o.enumerable});return e};var Je=e=>Ze(J({},"__esModule",{value:!0}),e);var on={};Qe(on,{DEFAULT_SEAT_RADIUS:()=>Ke,TEXT_BACKGROUND_PADDING_MAX:()=>pn,TEXT_BACKGROUND_RADIUS_MAX:()=>bn,TEXT_LETTER_SPACING_MAX:()=>yn,TEXT_LETTER_SPACING_MIN:()=>mn,TEXT_LINE_HEIGHT_MAX:()=>dn,TEXT_LINE_HEIGHT_MIN:()=>hn,TEXT_OPACITY_MIN:()=>xn,TEXT_WIDTH_MAX:()=>fn,TEXT_WIDTH_MIN:()=>un,allObjects:()=>ze,applyAffine:()=>zt,buildAisleHoles:()=>nt,buildSeatIndex:()=>Zt,buildSectionShell:()=>tt,chartBounds:()=>q,composeAffine:()=>Kt,createPerspectiveCamera:()=>Gt,cubicPoint:()=>U,decomposeAffineLinear:()=>Wt,distanceToRings:()=>ve,distributeAlongCubic:()=>ee,expandBooth:()=>Be,expandChart:()=>Ut,expandRow:()=>xe,expandRowSlots:()=>Fe,expandTable:()=>Xe,expandTableSlots:()=>pe,floorObjects:()=>Nt,floorOverviewTranslations:()=>Ye,floorsOf:()=>Ge,floorsShareFootprint:()=>Xt,gridStats:()=>nn,hitTest:()=>Jt,invertAffine:()=>Yt,layoutFloorOverview:()=>Ht,layoutFloorRings:()=>Bt,nearestWithin:()=>en,objectCenter:()=>X,owningSectionForObject:()=>Ue,perspectiveTangentAffine:()=>$t,pointInPolygon:()=>me,pointInPolygonWithHoles:()=>W,polygonArea:()=>oe,polygonInscribedAnchor:()=>re,polygonLabelPoint:()=>jt,polygonNetArea:()=>st,projectPerspectivePoint:()=>Q,queryRect:()=>tn,resolveSegmentedRowGroups:()=>ie,rowInventoryCount:()=>kt,rowSeatPositions:()=>ye,segmentedRowComponentSeats:()=>lt,segmentedRowComponents:()=>at,segmentedRowSeatTotal:()=>ut,smoothCubicThroughMiddle:()=>et,stackFloors:()=>Ft,tableInventoryCount:()=>_t,tableSeatCountsBySide:()=>He,textLayoutMetrics:()=>te,translateObject:()=>V});module.exports=Je(on);var sn=Math.PI/180;function D(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function j(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function U(e,t){let n=1-t,o=n*n*n,r=3*n*n*t,i=3*n*t*t,s=t*t*t;return{x:o*e.start.x+r*e.control1.x+i*e.control2.x+s*e.end.x,y:o*e.start.y+r*e.control1.y+i*e.control2.y+s*e.end.y}}function et(e,t,n){let o={x:(e.x+t.x)/2,y:(e.y+t.y)/2},r={x:(n.x-o.x)*4/3,y:(n.y-o.y)*4/3};return{start:{...e},control1:{x:e.x+(t.x-e.x)/3+r.x,y:e.y+(t.y-e.y)/3+r.y},control2:{x:e.x+(t.x-e.x)*2/3+r.x,y:e.y+(t.y-e.y)*2/3+r.y},end:{...t}}}function ee(e,t,n=192){if(!Number.isInteger(t)||t<1)throw new Error("Path point count must be a positive integer");if(t===1)return[U(e,.5)];let o=Array.from({length:n+1},(l,y)=>U(e,y/n)),r=new Float64Array(o.length);for(let l=1;l<o.length;l+=1){let y=o[l].x-o[l-1].x,a=o[l].y-o[l-1].y;r[l]=r[l-1]+Math.hypot(y,a)}let i=r[r.length-1];if(i<=1e-9)return Array.from({length:t},()=>({...e.start}));let s=[],c=1;for(let l=0;l<t;l+=1){let y=i*l/(t-1);for(;c<r.length-1&&r[c]<y;)c+=1;let a=r[c-1],f=r[c],u=f===a?0:(y-a)/(f-a);s.push({x:o[c-1].x+(o[c].x-o[c-1].x)*u,y:o[c-1].y+(o[c].y-o[c-1].y)*u})}return s}function k(e,t){return{x:e.x+t.x,y:e.y+t.y}}function H(e,t){return{x:e.x-t.x,y:e.y-t.y}}function _(e,t){return{x:e.x*t,y:e.y*t}}function G(e,t=13){return Array.from({length:t},(n,o)=>U(e,o/(t-1)))}function be(e,t){let n=Math.max(0,Math.min(1,t))*(e.length-1),o=Math.min(e.length-2,Math.floor(n));return j(e[o],e[o+1],n-o)}function ge(e,t,n){let o=Math.max(0,Math.min(1,t)),r=Math.max(o,Math.min(1,n)),i=[be(e,o)];for(let s=1;s<e.length-1;s+=1){let c=s/(e.length-1);c>o+1e-9&&c<r-1e-9&&i.push(e[s])}return i.push(be(e,r)),i}function Me(e,t){let n=[[0,1],[1,2],[2,3],[3,0]],o=0,r=Number.POSITIVE_INFINITY;n.forEach(([u,p],x)=>{let m=D(j(e[u],e[p],.5),t);m<r&&(r=m,o=x)});let i=e[o],s=e[(o+1)%4],c=e[(o+2)%4],l=e[(o+3)%4],y=j(i,s,.5),a=H(t,y),f=Math.max(1e-9,Math.hypot(a.x,a.y));return{p0:i,p1:s,p2:c,p3:l,normal:_(a,1/f),depth:(D(i,l)+D(s,c))/2}}function we(e){let{p0:t,p1:n,p2:o,p3:r,normal:i,depth:s}=e,c=H(n,t),l=H(o,r),y=s*.22,a=s*.12;return{nearPath:{start:t,control1:k(k(t,_(c,1/3)),_(i,y)),control2:k(k(t,_(c,2/3)),_(i,y)),end:n},farPath:{start:o,control1:k(k(r,_(l,2/3)),_(i,a)),control2:k(k(r,_(l,1/3)),_(i,a)),end:r}}}function tt(e,t,n){if(e.length!==4)throw new Error("A section shell requires four mapped bounds corners");let o=e.reduce((x,m)=>k(x,m),{x:0,y:0});o.x/=4,o.y/=4;let r=D(e[0],e[1]),i=D(e[0],e[3]),s=n==="auto"?r>i*1.25&&D(o,t)>i?"bezier":"tapered":n;if(s==="rectangle")return{mode:s,outline:e.map(x=>({...x}))};let c=Me(e,t),{p0:l,p1:y,p2:a,p3:f}=c;if(s==="tapered")return{mode:s,outline:[k(l,_(H(y,l),.14)),k(l,_(H(y,l),1-.14)),a,f]};let{nearPath:u,farPath:p}=we(c);return{mode:s,outline:[...G(u),...G(p).slice(1)]}}function nt(e,t,n,o){if(e.length!==4)throw new Error("Aisle generation requires four mapped bounds corners");if(!Number.isInteger(n)||n<0||n>3)throw new Error("Aisle count must be an integer from 0 to 3");if(n===0)return[];let r=Me(e,t),{p0:i,p1:s,p2:c,p3:l}=r,y=o==="bezier"?we(r):null,a=y?G(y.nearPath):null,f=y?G(y.farPath).reverse():null,u=Math.min(.055,.18/(n+1));return Array.from({length:n},(p,x)=>{let m=(x+1)/(n+1),h=m-u/2,d=m+u/2;return a&&f?[...ge(a,h,d),...ge(f,h,d).reverse()]:[j(i,s,h),j(i,s,d),j(l,c,d),j(l,c,h)]})}var un=40,fn=1200,hn=.8,dn=3,mn=-2,yn=20,xn=.1,pn=40,bn=40,Se=e=>Math.max(1,e.fontSize*.6+(e.letterSpacing??0));function ot(e,t){let n=e.text.split(/\r?\n/);if(!e.width)return Math.max(1,n.length);let o=Math.max(1,Math.floor(t/Se(e))),r=0;for(let i of n){if(!i.length){r+=1;continue}let s=0;for(let c of i.split(/\s+/)){let l=c.length;s&&s+1+l<=o?s+=1+l:(r+=Math.max(1,Math.ceil(l/o)),s=l%o)}}return Math.max(1,r)}function te(e){let t=e.background?.padding??0,n=e.text.split(/\r?\n/),o=Math.max(1,...n.map(c=>c.length))*Se(e),r=e.width??o+t*2,i=Math.max(1,r-t*2),s=ot(e,i);return{width:r,height:s*e.fontSize*(e.lineHeight??1.2)+t*2,lineCount:s,padding:t}}function rt(e,t,n){let o=n.x-t.x,r=n.y-t.y,i=o*o+r*r,s=i?Math.max(0,Math.min(1,((e.x-t.x)*o+(e.y-t.y)*r)/i)):0;return Math.hypot(e.x-(t.x+s*o),e.y-(t.y+s*r))}function ve(e,t){let n=1/0;for(let o of t)if(!(o.length<2))for(let r=0,i=o.length-1;r<o.length;i=r++){let s=rt(e,o[i],o[r]);s<n&&(n=s)}return n}function Pe(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o].x,s=t[o].y,c=t[r].x,l=t[r].y;s>e.y!=l>e.y&&e.x<(c-i)*(e.y-s)/(l-s)+i&&(n=!n)}return n}function it(e,t,n){let o=Pe(e,t)&&!n.some(i=>Pe(e,i)),r=ve(e,[t,...n]);return o?r:-r}function N(e,t,n,o,r){let i=it({x:e,y:t},o,r);return{x:e,y:t,h:n,d:i,max:i+n*Math.SQRT2}}var ne=class{constructor(){this.items=[]}get size(){return this.items.length}push(t){let n=this.items;n.push(t);let o=n.length-1;for(;o>0;){let r=o-1>>1;if(n[r].max>=n[o].max)break;[n[r],n[o]]=[n[o],n[r]],o=r}}pop(){let t=this.items,n=t[0],o=t.pop();if(t.length&&o){t[0]=o;let r=0;for(;;){let i=r*2+1,s=i+1,c=r;if(i<t.length&&t[i].max>t[c].max&&(c=i),s<t.length&&t[s].max>t[c].max&&(c=s),c===r)break;[t[c],t[r]]=[t[r],t[c]],r=c}}return n}};function oe(e){if(e.length<3)return 0;let t=0;for(let n=0,o=e.length-1;n<e.length;o=n++)t+=(e[o].x+e[n].x)*(e[o].y-e[n].y);return Math.abs(t)/2}function st(e,t){return Math.max(0,oe(e)-(t??[]).reduce((n,o)=>n+oe(o),0))}function re(e,t){let n=t??[];if(!e.length)return{point:{x:0,y:0},radius:0};if(e.length<3){let m=e.reduce((d,g)=>d+g.x,0)/e.length,h=e.reduce((d,g)=>d+g.y,0)/e.length;return{point:{x:m,y:h},radius:0}}let o=1/0,r=1/0,i=-1/0,s=-1/0;for(let m of e)m.x<o&&(o=m.x),m.y<r&&(r=m.y),m.x>i&&(i=m.x),m.y>s&&(s=m.y);let c=i-o,l=s-r,y=Math.min(c,l);if(!(y>0))return{point:{x:(o+i)/2,y:(r+s)/2},radius:0};let a=Math.max(c,l)/150,f=new ne,u=y/2;for(let m=o;m<i;m+=y)for(let h=r;h<s;h+=y)f.push(N(m+u,h+u,u,e,n));let p=N(o+c/2,r+l/2,0,e,n),x=0;for(;f.size;){let m=f.pop();if(!m)break;m.d>p.d&&(p=m),!(m.max-p.d<=a)&&(x>=4e3||(x+=1,u=m.h/2,f.push(N(m.x-u,m.y-u,u,e,n)),f.push(N(m.x+u,m.y-u,u,e,n)),f.push(N(m.x-u,m.y+u,u,e,n)),f.push(N(m.x+u,m.y+u,u,e,n))))}return{point:{x:p.x,y:p.y},radius:Math.max(0,p.d)}}function L(e,t,n){return e<t?t:e>n?n:e}var Sn=Math.PI*2;function Ie(e,t,n){return ct(e,r=>({x:r.x+t,y:r.y+n}))}function ct(e,t,n=1,o=!1){return{...e,start:t(e.start),segments:e.segments.map(r=>r.kind==="line"?{...r,end:t(r.end)}:r.kind==="arc"?{...r,center:t(r.center),radius:r.radius*Math.abs(n),clockwise:o?!r.clockwise:r.clockwise,end:t(r.end)}:{...r,control1:t(r.control1),control2:t(r.control2),end:t(r.end)})}}var Pn=4/3;function at(e,t,n){let o=[];for(let r=0;r<e.length-1;r+=1){let i=e[r],s=e[r+1],c=Math.hypot(s.x-i.x,s.y-i.y);if(c<=0)continue;let l=Math.max(1,Math.round(c/n)),y=c/l,a=Math.atan2(s.y-i.y,s.x-i.x),f=r===0,p=(r>0?t[r-1]:void 0)==="break"?2:1,x=f?{...i}:{x:i.x+Math.cos(a)*y*p,y:i.y+Math.sin(a)*y*p},m=f?l+1:Math.max(1,l-(p-1));o.push({origin:x,rotation:a*180/Math.PI,seatCount:m,seatSpacing:y})}return o}function lt(e){let t=e.rotation*Math.PI/180,n={x:Math.cos(t),y:Math.sin(t)};return Array.from({length:e.seatCount},(o,r)=>({x:e.origin.x+n.x*r*e.seatSpacing,y:e.origin.y+n.y*r*e.seatSpacing}))}function ut(e){return e.reduce((t,n)=>t+n.seatCount,0)}function ie(e){let t=new Map,n=new Map;for(let o of e){if(o.type!=="row"||!o.segmentedRow)continue;let r=n.get(o.segmentedRow.groupId)??[];r.push(o),n.set(o.segmentedRow.groupId,r)}for(let[o,r]of n){let i=r.slice().sort((u,p)=>u.segmentedRow.componentIndex-p.segmentedRow.componentIndex),s=i[0]?.segmentedRow?.componentCount??0,c=i[0]?.segmentedRow;if(!c||!(s>=2&&i.length===s&&c?.boundaryBefore==="start"&&i.every((u,p)=>u.segmentedRow?.kind==="segmented-row-v1"&&u.segmentedRow.groupId===o&&u.segmentedRow.componentCount===s&&u.segmentedRow.componentIndex===p&&u.segmentedRow.repeatLabelOnComponents===c.repeatLabelOnComponents&&(p===0?u.segmentedRow.boundaryBefore==="start":u.segmentedRow.boundaryBefore!=="start")&&u.segmentedRow.displayLabel===c.displayLabel)))continue;let y=i.reduce((u,p)=>u+p.seatCount,0),a=0,f=0;for(let u of i)u.segmentedRow.boundaryBefore==="break"&&(a+=1),t.set(u.id,{groupId:o,adjacencyOffset:a,displayOffset:f,displayLabel:c.displayLabel,totalSeats:y,canonical:i[0],viewFromSeatUrl:c.viewFromSeatUrl,viewFromSeatMeta:c.viewFromSeatMeta,confidenceEvidence:c.confidenceEvidence}),a+=u.seatCount,f+=u.seatCount}return t}var ft="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var ht="abcdefghijklmnopqrstuvwxyz";function dt(e,t){let n=t.length,o=e+1,r="";for(;o>0;){o-=1;let i=o%n;r=t[i]+r,o=Math.floor(o/n)}return r}function se(e,t=!1){let n=t?ht:ft;return dt(Math.max(0,Math.floor(e)-1),n)}var mt=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];function Ce(e){if(!Number.isFinite(e)||e<=0)return String(e);let t=Math.floor(e),n="";for(let[o,r]of mt)for(;t>=o;)n+=r,t-=o;return n}function yt(e){let t=new Array(e);return Array.from({length:e},(n,o)=>o).sort((n,o)=>Math.abs(2*n-(e-1))-Math.abs(2*o-(e-1))||n-o).forEach((n,o)=>t[n]=o),t}function ce(e,t){let n=e.seatLabelStart??1,o=e.seatNumbering?.direction??"ltr",r=e.seatNumbering?.step??1,i=e.seatNumbering?.scheme??"decimal",s=e.seatNumbering?.prefix??"",c=e.seatNumbering?.endAt,l=e.seatCount;if(i==="updown"||i==="updown-descending"){let p=Math.ceil(l/2),x=i==="updown"?t<p?n+2*t:n-1+2*(l-t):t<p?n+2*(p-1-t):n+1+2*(t-p);return`${s}${x}`}let y=i==="odd"||i==="even"?2:r,a=c!=null&&Number.isFinite(c)?c-(l-1)*y:n,f=o==="center"?yt(l)[t]:o==="rtl"?l-1-t:t,u;switch(i){case"odd":{let p=a%2===1?a:a+1;u=String(p+f*2);break}case"even":{let p=a%2===0?a:a+1;u=String(p+f*2);break}case"roman":u=Ce(a+f*r);break;case"letters-upper":u=se(a+f*r,!1);break;case"letters-lower":u=se(a+f*r,!0);break;default:u=String(a+f*r);break}return`${s}${u}`}function xt(e){return{...e.canonical,seatCount:e.totalSeats,label:e.displayLabel,displayLabel:e.displayLabel}}function Ee(e,t,n){return n?.label??`${e.label}-${ce(e,t)}`}function ae(e,t,n,o){if(o?.displayLabel)return o.displayLabel;if(!n)return`${e.displayLabel??e.label}-${ce(e,t)}`;let r=xt(n),i=n.displayOffset+t;return`${n.displayLabel}-${ce(r,i)}`}var z=.02291666666666667,Rn=1/z,pt=58,bt=pt*z;var gt=3,Oe=0,le=120,Mt=0,wt=45,St=7,Y=1.2;function ue(e,t,n,o){return Number.isFinite(e)?Math.max(t,Math.min(n,e)):o}function Pt(e){return!Number.isFinite(e)||!Number.isInteger(e)||e<0?0:e<=St?e:gt}function Re(e,t={}){let n=ue(t.floorBaseHeightM,Oe,le,0),o=Math.min(le,n+Pt(e.elevation)*bt),r=e.height===void 0?o:ue(e.height,Oe,le,o),i=ue(e.rake,Mt,wt,0);return{height:r,rake:i}}function Ae(e){let t=e.length;return t<=3?[...e]:[e[Math.floor(t*.25)],e[Math.floor(t*.5)],e[Math.floor(t*.75)]]}function Te(e,t,n){if(!e.length)return 1/0;if(e.length===1)return Math.hypot(t-e[0].x,n-e[0].y);let o=1/0;for(let r=0;r+1<e.length;r++){let i=e[r],s=e[r+1],c=s.x-i.x,l=s.y-i.y,y=c*c+l*l,a=y>1e-12?((t-i.x)*c+(n-i.y)*l)/y:0;a<0?a=0:a>1&&(a=1);let f=Math.hypot(t-(i.x+a*c),n-(i.y+a*l));f<o&&(o=f)}return o}function vt(e){let t=0,n=0;for(let i of e)t+=i.x,n+=i.y;let o=e.length||1;t/=o,n/=o;let r=0;for(let i of e){let s=Math.hypot(i.x-t,i.y-n);s>r&&(r=s)}return{cx:t,cy:n,r}}function ke(e,t){return Math.hypot(e.cx-t.cx,e.cy-t.cy)-e.r-t.r}function fe(e,t){let n=1/0;for(let o of Ae(e)){let r=Te(t,o.x,o.y);r<n&&(n=r)}for(let o of Ae(t)){let r=Te(e,o.x,o.y);r<n&&(n=r)}return n}function It(e,t){if(e.length<3)return{pts:e,seatIndices:t};let n=0,o=0;for(let a of e)n+=a.x,o+=a.y;n/=e.length,o/=e.length;let r=-1,i=e[0];for(let a of e){let f=Math.hypot(a.x-n,a.y-o);f>r&&(r=f,i=a)}let s=i.x-n,c=i.y-o,l=Math.hypot(s,c);l>1e-9?(s/=l,c/=l):(s=1,c=0);let y=e.map((a,f)=>({p:a,i:f,t:(a.x-n)*s+(a.y-o)*c})).sort((a,f)=>a.t-f.t);return{pts:y.map(a=>a.p),seatIndices:y.map(a=>t[a.i])}}function Ct(e){let t=e.length;if(t<3)return null;let n=0,o=0;for(let g of e)n+=g.x,o+=g.y;n/=t,o/=t;let r=0,i=0,s=0,c=0,l=0,y=0,a=0;for(let g of e){let b=g.x-n,M=g.y-o;r+=b*b,s+=M*M,i+=b*M,c+=b*b*b,l+=M*M*M,y+=b*M*M,a+=M*b*b}let f=r*s-i*i;if(Math.abs(f)<1e-9)return null;let u=(c+y)/2,p=(l+a)/2,x=(u*s-p*i)/f,m=(p*r-u*i)/f,h=x+n,d=m+o;return!Number.isFinite(h)||!Number.isFinite(d)?null:{cx:h,cy:d}}var Et=.15;function Ot(e){if(e.length<2)return null;let t=e.map(g=>{let b=0,M=0;for(let P of g.pts)b+=P.x,M+=P.y;return{x:b/g.pts.length,y:M/g.pts.length}}),n=0,o=0;for(let g of t)n+=g.x,o+=g.y;n/=t.length,o/=t.length;let r=0,i=0,s=0;for(let g of t){let b=g.x-n,M=g.y-o;r+=b*b,i+=b*M,s+=M*M}let c=r+s,l=r*s-i*i,y=c/2+Math.sqrt(Math.max(0,c*c/4-l)),a,f;Math.abs(i)>1e-12?(a=y-s,f=i):r>=s?(a=1,f=0):(a=0,f=1);let u=Math.hypot(a,f);if(!(u>1e-12))return null;a/=u,f/=u;let p=1/0,x=-1/0,m=[];for(let g of e){let b=1/0,M=-1/0;for(let P of g.pts){let w=P.x*a+P.y*f;w<b&&(b=w),w>M&&(M=w),w<p&&(p=w),w>x&&(x=w)}m.push(M-b)}let h=x-p;return h>1e-9?(m.sort((g,b)=>g-b),m[Math.min(m.length-1,Math.floor(m.length*.9))]/h<=Rt?{x:a,y:f}:null):null}var Rt=.35;function _e(e,t,n,o){let r=new Map;for(let h of n){let d=t[h],g=d.rowId||`__seat-${h}`,b=r.get(g);b||(b={pts:[],idx:[]},r.set(g,b)),b.pts.push({x:d.x,y:d.y}),b.idx.push(h)}if(!r.size)return{sectionId:e,rows:[],blockCount:0};let i=[];for(let[h,d]of r){let g=It(d.pts,d.idx),b=0;for(let M of g.pts)b+=Math.hypot(M.x-o.x,M.y-o.y);i.push({id:h,pts:g.pts,seatIndices:g.seatIndices,blockId:-1,ordinal:0,blockDepth:0,focalDistance:b/g.pts.length})}let s=i.map(h=>vt(h.pts)),c=[];for(let h=0;h<i.length;h++){let d=1/0;for(let g=0;g<i.length;g++){if(h===g||ke(s[h],s[g])>=d)continue;let b=fe(i[h].pts,i[g].pts);b<d&&(d=b)}Number.isFinite(d)&&c.push(d)}c.sort((h,d)=>h-d);let l=c.length?c[Math.floor(c.length/2)]:1,y=Math.max(l*1.8,1e-6),a=i.map(()=>[]);for(let h=0;h<i.length;h++)for(let d=h+1;d<i.length;d++)ke(s[h],s[d])>y||fe(i[h].pts,i[d].pts)<=y&&(a[h].push(d),a[d].push(h));let f=0;for(let h=0;h<i.length;h++){if(i[h].blockId!==-1)continue;let d=f++,g=[h];for(i[h].blockId=d;g.length;){let b=g.pop();for(let M of a[b])i[M].blockId===-1&&(i[M].blockId=d,g.push(M))}}let u=new Map;for(let h of i){let d=u.get(h.blockId)??[];d.push(h),u.set(h.blockId,d)}let p=[];for(let h of i){if(h.pts.length<4)continue;let d=Ct(h.pts);d&&(!Number.isFinite(d.cx)||!Number.isFinite(d.cy)||p.push({x:d.cx,y:d.cy}))}let x=p.length>=2?(()=>{let h=p.map(b=>b.x).sort((b,M)=>b-M),d=p.map(b=>b.y).sort((b,M)=>b-M),g=Math.floor(p.length/2);return{cx:h[g],cy:d[g]}})():null;if(x){let h=w=>Math.hypot(w.x-x.cx,w.y-x.cy),d=1/0,g=-1/0,b=[];for(let w of i){let S=1/0,E=-1/0;for(let I of w.pts){let v=h(I);v<S&&(S=v),v>E&&(E=v)}b.push(E-S),S<d&&(d=S),E>g&&(g=E)}let M=g-d;b.sort((w,S)=>w-S);let P=b[Math.min(b.length-1,Math.floor(b.length*.9))];if(M>1e-9&&P/M<=Et){let w=i.map(C=>{let B=0;for(let $e of C.pts)B+=h($e);return{row:C,radius:B/C.pts.length}}),S=0,E=0;for(let C of w)S+=C.radius,E+=C.row.focalDistance;S/=w.length,E/=w.length;let I=0;for(let C of w)I+=(C.radius-S)*(C.row.focalDistance-E);if(I<0)for(let C of w)C.radius=-C.radius;let T=1/0;for(let C of w)C.radius<T&&(T=C.radius);w.sort((C,B)=>C.radius-B.radius);let R=-1,O=-1/0,A=M/Math.max(1,w.length)*.5,Z=[];for(let C of w)C.radius-O>A&&(R++,O=C.radius),C.row.ordinal=R,C.row.blockDepth=C.radius-T,Z.push(C.row);return{sectionId:e,rows:Z,blockCount:f}}}let m=[];for(let[,h]of u){let d=Ot(h);if(d){let g=M=>{let P=0;for(let w of M.pts)P+=w.x*d.x+w.y*d.y;return P/M.pts.length};h.sort((M,P)=>g(M)-g(P)),h.length>=2&&h[0].focalDistance>h[h.length-1].focalDistance&&h.reverse();let b=0;for(let M=0;M<h.length;M++)M>0&&(b+=fe(h[M-1].pts,h[M].pts)),h[M].ordinal=M,h[M].blockDepth=b,m.push(h[M])}else{let g=1/0;for(let b of h)b.focalDistance<g&&(g=b.focalDistance);h.sort((b,M)=>b.focalDistance-M.focalDistance);for(let b=0;b<h.length;b++)h[b].ordinal=b,h[b].blockDepth=Math.max(0,h[b].focalDistance-g),m.push(h[b])}}return{sectionId:e,rows:m,blockCount:f}}function Ne(e){return e?e.accessibility&&e.accessibility.length?e.wheelchairSpaceType&&!e.accessibility.includes("wheelchair")?["wheelchair",...e.accessibility]:e.accessibility:e.wheelchairSpaceType?["wheelchair"]:e.accessible?["wheelchair"]:[]:[]}var $=Math.PI/180,At=9,F=16;function de(e,t,n,o){let r=n*$,i=Math.cos(r),s=Math.sin(r);return{x:o.x+e*i-t*s,y:o.y+e*s+t*i}}function ye(e){let{seatCount:t,seatSpacing:n,curve:o,rotation:r,origin:i}=e,s=[];if(e.path)return ee(e.path,t);if(t<=1)return t===1&&s.push({x:i.x,y:i.y}),s;if(o===0){for(let y=0;y<t;y++)s.push(de(y*n,0,r,i));return s}let c=o/(t-1)*$,l=n/(2*Math.sin(Math.abs(c)/2));for(let y=0;y<t;y++){let a=y*c,f=l*Math.sin(a),u=-l+l*Math.cos(a);s.push(de(f,u,r,i))}return s}function Tt(e){let t=new Map;if(e.overrides)for(let n of e.overrides)t.set(n.index,n);return t}function kt(e){let t=new Set((e.overrides??[]).filter(n=>n.skip&&Number.isInteger(n.index)&&n.index>=0&&n.index<e.seatCount).map(n=>n.index));return Math.max(0,e.seatCount-t.size)}function Fe(e,t){let n=Tt(e);return ye(e).map((o,r)=>{let i=n.get(r),s=Ne(i),c=Ee(e,r,i),l={...e.commercial,...i?.commercial};return{index:r,x:o.x+(i?.dx??0),y:o.y+(i?.dy??0),label:c,displayLabel:ae(e,r,t,i),categoryKey:i?.categoryKey??e.categoryKey,skipped:!!i?.skip,accessible:s.length>0,accessibility:s,wheelchairSpaceType:i?.wheelchairSpaceType,commercial:Object.values(l).some(y=>y!==void 0&&y!==!1&&y!=="")?l:void 0,viewUrl:i?.viewFromSeatUrl??e.viewFromSeatUrl,viewMeta:i?.viewFromSeatUrl?i.viewFromSeatMeta:e.viewFromSeatMeta,labelStyle:i?.labelStyle}})}function xe(e){let t=[];for(let n of Fe(e))n.skipped||t.push({id:`${e.id}:${n.index}`,label:n.label,displayLabel:n.displayLabel===n.label?void 0:n.displayLabel,x:n.x,y:n.y,rowId:e.id,categoryKey:n.categoryKey,accessible:n.accessible||void 0,accessibility:n.accessibility.length?n.accessibility:void 0,wheelchairSpaceType:n.wheelchairSpaceType,commercial:n.commercial,viewUrl:n.viewUrl,viewMeta:n.viewMeta,labelStyle:n.labelStyle});return t}function He(e){if(e.seatCountsBySide)return{...e.seatCountsBySide};let t=e.sides&&e.sides.length?e.sides:["top","bottom"],n=["top","bottom","left","right"].filter(i=>t.includes(i)),o={top:0,bottom:0,left:0,right:0};if(!n.length)return o;let r=Math.max(0,Math.round(e.seatCount));for(let i=0;i<r;i++)o[n[i%n.length]]+=1;return o}function pe(e){let t=[],n=Math.max(0,Math.round(e.seatCount));if(n===0)return t;let o=new Map((e.overrides??[]).map(a=>[a.index,a])),r=(a,f,u,p)=>{let x=o.get(a),m=Ne(x),h=x?.label??`${e.label}-${a+1}`,d=e.displayLabel??e.label;return{index:a,label:h,displayLabel:x?.displayLabel??`${d}-${a+1}`,x:f+(x?.dx??0),y:u+(x?.dy??0),categoryKey:x?.categoryKey??e.categoryKey,skipped:!!x?.skip,accessible:m.length>0,accessibility:m,wheelchairSpaceType:x?.wheelchairSpaceType,commercial:x?.commercial,viewUrl:x?.viewFromSeatUrl,viewMeta:x?.viewFromSeatUrl?x.viewFromSeatMeta:void 0,labelStyle:x?.labelStyle,...p?{side:p}:{}}};if(e.shape==="round"){let a=(e.radius??40)+F,f=e.rotation*$,u=Math.max(0,Math.min(360,e.seatArc??360));if(u>=360||n===1){for(let h=0;h<n;h++){let d=f+h/n*2*Math.PI;t.push(r(h,e.center.x+a*Math.cos(d),e.center.y+a*Math.sin(d)))}return t}let p=u*$,x=(2*Math.PI-p)/2,m=f+x;for(let h=0;h<n;h++){let d=m+h/(n-1)*p;t.push(r(h,e.center.x+a*Math.cos(d),e.center.y+a*Math.sin(d)))}return t}let i=e.width??80,s=e.height??50,c=He(e),l=["top","bottom","left","right"],y=0;for(let a of l){let f=c[a];for(let u=0;u<f;u++){let p,x;a==="top"?(p=-i/2+(u+.5)*i/f,x=-s/2-F):a==="bottom"?(p=-i/2+(u+.5)*i/f,x=s/2+F):a==="left"?(p=-i/2-F,x=-s/2+(u+.5)*s/f):(p=i/2+F,x=-s/2+(u+.5)*s/f);let m=de(p,x,e.rotation,e.center);t.push(r(y++,m.x,m.y,a))}}return t}function _t(e){return e.bookAsWhole||e.variableOccupancy?Math.max(0,Math.round(e.seatCount)):pe(e).filter(t=>!t.skipped).length}function Xe(e){return pe(e).filter(t=>!t.skipped).map(t=>({id:`${e.id}:${t.index}`,label:t.label,...t.displayLabel!==t.label?{displayLabel:t.displayLabel}:{},x:t.x,y:t.y,rowId:e.id,categoryKey:t.categoryKey,...t.accessible?{accessible:!0}:{},...t.accessibility.length?{accessibility:t.accessibility}:{},...t.wheelchairSpaceType?{wheelchairSpaceType:t.wheelchairSpaceType}:{},...t.commercial?{commercial:t.commercial}:{},...t.viewUrl?{viewUrl:t.viewUrl}:{},...t.viewUrl&&t.viewMeta?{viewMeta:t.viewMeta}:{},...t.labelStyle?{labelStyle:t.labelStyle}:{}}))}function Be(e){return[{id:`${e.id}:0`,label:e.label,...e.displayLabel&&e.displayLabel!==e.label?{displayLabel:e.displayLabel}:{},x:e.center.x,y:e.center.y,rowId:e.id,categoryKey:e.categoryKey,kind:"booth"}]}function me(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o].x,s=t[o].y,c=t[r].x,l=t[r].y;s>e.y!=l>e.y&&e.x<(c-i)*(e.y-s)/(l-s)+i&&(n=!n)}return n}function Lt(e,t){return t.some((n,o)=>{let r=t[(o+1)%t.length],i=(e.y-n.y)*(r.x-n.x)-(e.x-n.x)*(r.y-n.y);if(Math.abs(i)>1e-7)return!1;let s=(e.x-n.x)*(r.x-n.x)+(e.y-n.y)*(r.y-n.y),c=(r.x-n.x)**2+(r.y-n.y)**2;return s>=-1e-7&&s<=c+1e-7})}function W(e,t,n){return me(e,t)&&!(n??[]).some(o=>me(e,o)||Lt(e,o))}function jt(e,t){return re(e,t).point}function he(e){if(!e.length)return{x:0,y:0};let t=0,n=0;for(let o of e)t+=o.x,n+=o.y;return{x:t/e.length,y:n/e.length}}function X(e){switch(e.type){case"row":{let t=xe(e);if(!t.length)return{x:e.origin.x,y:e.origin.y};let n=0,o=0;for(let r of t)n+=r.x,o+=r.y;return{x:n/t.length,y:o/t.length}}case"table":case"booth":return{x:e.center.x,y:e.center.y};case"gaArea":return he(e.points);case"section":return he(e.outline);case"text":return{x:e.position.x,y:e.position.y};case"shape":return e.points&&e.points.length?he(e.points):e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null?{x:e.x+e.width/2,y:e.y+e.height/2}:{x:e.x??0,y:e.y??0};case"decorImage":return{x:e.x+e.width/2,y:e.y+e.height/2}}}function Le(e,t){return e.length===t.length&&e.every((n,o)=>n.x===t[o].x&&n.y===t[o].y)}function Dt(e,t){if(e.type!=="gaArea"||!Le(e.points,t.outline))return!1;let n=e.holes??[],o=t.holes??[];return n.length===o.length&&n.every((r,i)=>Le(r,o[i]))}function Ue(e,t){let n=e.filter(s=>s.type==="section"),o="referenceInventorySource"in t?t.referenceInventorySource?.logicalSectionId:void 0,r=X(t);return(o?n.find(s=>(s.logicalSectionId??s.id)===o&&(Dt(t,s)||W(r,s.outline,s.holes))):void 0)??n.find(s=>W(r,s.outline,s.holes))}function Ge(e){return e.floors&&e.floors.length?e.floors:[{id:"floor-0",name:"Main",objects:e.objects,focalPoint:e.focalPoint,referenceImage:e.referenceImage,backgroundImage:e.backgroundImage}]}function Nt(e,t){let n=Ge(e);return(t?n.find(o=>o.id===t):n[0])?.objects??[]}function ze(e){return e.floors&&e.floors.length?e.floors.flatMap(t=>t.objects):e.objects}function V(e,t,n){let o=i=>({x:i.x+t,y:i.y+n}),r=i=>i.map(o);switch(e.type){case"row":return{...e,origin:o(e.origin)};case"table":case"booth":return{...e,center:o(e.center)};case"gaArea":return{...e,points:r(e.points),...e.holes?{holes:e.holes.map(r)}:{}};case"section":return{...e,outline:r(e.outline),...e.outlinePath?{outlinePath:Ie(e.outlinePath,t,n)}:{},...e.holes?{holes:e.holes.map(r)}:{}};case"text":return{...e,position:o(e.position)};case"shape":return{...e,...e.points?{points:r(e.points)}:{},...e.x!=null?{x:e.x+t}:{},...e.y!=null?{y:e.y+n}:{}};case"decorImage":return{...e,x:e.x+t,y:e.y+n}}}function Ft(e,t=900){if(!e.floors||e.floors.length<2)return e;let n=[];return e.floors.forEach((o,r)=>{let i=-r*t;for(let s of o.objects)n.push(i===0?s:V(s,0,i))}),{...e,objects:n,floors:void 0}}function Ht(e){let t=e.floors;if(!t||t.length<2)return e;let n=Ye(e),o=[];return t.forEach((r,i)=>{let{x:s,y:c}=n[i];for(let l of r.objects)o.push(V(l,s,c))}),{...e,objects:o,floors:void 0,referenceImage:void 0,backgroundImage:void 0}}function Xt(e){let t=e.floors;if(!t||t.length<2)return!1;let n=t.map(l=>q({...e,objects:l.objects,floors:void 0,focalPoint:l.focalPoint,referenceImage:void 0,backgroundImage:void 0}));if(n.some(l=>l.width<=0||l.height<=0))return!1;let[o,...r]=n;if(!r.every(l=>{let y=Math.min(o.x+o.width,l.x+l.width)-Math.max(o.x,l.x),a=Math.min(o.y+o.height,l.y+l.height)-Math.max(o.y,l.y);return y<=0||a<=0?!1:y>=Math.min(o.width,l.width)*.7&&a>=Math.min(o.height,l.height)*.7}))return!1;let s={x:o.x+o.width/2,y:o.y+o.height/2},c=Math.hypot(o.width,o.height)/2;return t.every(l=>l.objects.length?l.objects.filter(a=>{let f=X(a);return Math.hypot(f.x-s.x,f.y-s.y)>=c*.25}).length>=l.objects.length*.6:!1)}function Bt(e){let t=e.floors;if(!t||t.length<2)return e;let n=t.map((l,y)=>({floor:l,index:y,height:l.baseHeightM??0})).sort((l,y)=>l.height-y.height||l.index-y.index),o=q({...e,objects:n[0].floor.objects,floors:void 0,focalPoint:n[0].floor.focalPoint,referenceImage:void 0,backgroundImage:void 0}),r={x:o.x+o.width/2,y:o.y+o.height/2},i=Math.max(48,Math.min(200,Math.max(o.width,o.height)*.06)),s=[],c=0;return n.forEach((l,y)=>{let a=l.floor.objects.map(m=>{let h=X(m);return Math.hypot(h.x-r.x,h.y-r.y)}),f=a.filter(m=>Number.isFinite(m)),u=f.length?Math.min(...f):0,p=f.length?Math.max(...f):0,x=y===0?0:Math.max(0,c+i-u);c=p+x,l.floor.objects.forEach((m,h)=>{if(y>0&&m.type==="shape"&&m.role==="stage")return;if(x===0){s.push(m);return}let d=a[h];if(!Number.isFinite(d)||d<1e-6){s.push(m);return}let g=X(m);s.push(V(m,(g.x-r.x)/d*x,(g.y-r.y)/d*x))})}),{...e,objects:s,floors:void 0,referenceImage:void 0,backgroundImage:void 0}}function Ye(e){let t=e.floors;if(!t?.length)return[{x:0,y:0}];if(t.length<2)return t.map(()=>({x:0,y:0}));let n=t.map(u=>q({...e,objects:u.objects,floors:void 0,focalPoint:u.focalPoint,referenceImage:void 0,backgroundImage:void 0})),o=Math.max(1,...n.map(u=>Math.max(u.width,u.height))),r=Math.max(64,Math.min(240,o*.08)),i=16/10,s=null;for(let u=1;u<=t.length;u+=1){let p=Math.ceil(t.length/u),x=new Array(u).fill(0),m=new Array(p).fill(0);n.forEach((M,P)=>{let w=P%u,S=Math.floor(P/u);x[w]=Math.max(x[w],M.width),m[S]=Math.max(m[S],M.height)});let h=x.reduce((M,P)=>M+P,0)+r*(u-1),d=m.reduce((M,P)=>M+P,0)+r*(p-1),g=u*p-t.length,b=Math.abs(Math.log(h/Math.max(1,d)/i))+g*.04;(!s||b<s.score)&&(s={columns:u,columnWidths:x,rowHeights:m,score:b})}let{columns:c,columnWidths:l,rowHeights:y}=s,a=[],f=[];return l.reduce((u,p,x)=>(a[x]=u,u+p+r),0),y.reduce((u,p,x)=>(f[x]=u,u+p+r),0),t.map((u,p)=>{let x=n[p],m=p%c,h=Math.floor(p/c),d=a[m]+(l[m]-x.width)/2,g=f[h]+(y[h]-x.height)/2;return{x:d-x.x,y:g-x.y}})}function je(e,t,n,o,r,i){let s=[],c=ie(e),l=f=>!f?.eventConfigurationId||f.eventConfigurationId===o,y=f=>!!f&&(!f.eventConfigurationId||f.eventConfigurationId===o),a=(f,u)=>y(f)?{...f,coverage:u}:void 0;for(let f of e){let u=[];if(f.type==="row"?u=xe(f):f.type==="table"?u=Xe(f):f.type==="booth"&&(u=Be(f)),!u.length)continue;for(let d of u)d.viewUrl&&!l(d.viewMeta)&&(d.viewUrl=void 0,d.viewMeta=void 0);if(f.type==="row"){let d=c.get(f.id);if(d){let g=new Map((f.overrides??[]).map(b=>[b.index,b]));for(let b of u){let M=Number(b.id.slice(b.id.lastIndexOf(":")+1));if(!Number.isInteger(M))continue;b.logicalRowId=d.groupId,b.logicalSeatIndex=d.adjacencyOffset+M,g.get(M)?.displayLabel||(b.displayLabel=ae(f,M,d)),!b.viewUrl&&d.viewFromSeatUrl&&l(d.viewFromSeatMeta)&&(b.viewUrl=d.viewFromSeatUrl,b.viewMeta=d.viewFromSeatMeta);let P=g.get(M)?.confidenceEvidence;b.confidenceEvidence=a(P,"exact-seat")??a(f.confidenceEvidence,"row-representative")??a(d.confidenceEvidence,"row-representative")}}}let p=Ue(e,f),x=p?.viewFromSeatUrl,h=(p?.zone?t?.find(d=>d.id===p.zone):void 0)?.focalPoint??n;for(let d of u){if(!d.confidenceEvidence){let g=Number(d.id.slice(d.id.lastIndexOf(":")+1)),b=(f.type==="row"||f.type==="table")&&Number.isInteger(g)?f.overrides?.find(M=>M.index===g)?.confidenceEvidence:void 0;d.confidenceEvidence=a(b,"exact-seat")??(f.type==="row"?a(f.confidenceEvidence,"row-representative"):void 0)}d.confidenceEvidence??=a(p?.confidenceEvidence,"section-representative")??(i?a(i.evidence,i.coverage):void 0),!d.viewUrl&&x&&l(p?.viewFromSeatMeta)&&(d.viewUrl=x,d.viewMeta=p?.viewFromSeatMeta),!d.viewUrl&&r&&l(r.meta)&&(d.viewUrl=r.url,d.viewMeta=r.meta),p&&(d.sectionId=p.logicalSectionId??p.id),p?.zone&&(d.zoneId=p.zone),h&&(d.focalPoint={...h})}s.push(...u)}return s}function Ut(e,t={}){if(e.floors?.length){let o=[];for(let r of e.floors){let i=r.focalPoint??e.focalPoint,s=r.viewFromSeatUrl?{url:r.viewFromSeatUrl,meta:r.viewFromSeatMeta}:e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,c=r.confidenceEvidence?{evidence:r.confidenceEvidence,coverage:"floor-representative"}:e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0,l=je(r.objects,e.zones,i,e.eventConfigurationId,s,c);t.resolveEyeHeights!==!1&&De(r.objects,r.focalPoint??e.focalPoint,r.baseHeightM??0,l),o.push(...l)}return o}let n=je(e.objects,e.zones,e.focalPoint,e.eventConfigurationId,e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0);return t.resolveEyeHeights!==!1&&De(e.objects,e.focalPoint,t.floorBaseHeightM??0,n),n}function De(e,t,n,o){let r=e.filter(a=>a.type==="section"),i=n>0||r.some(a=>a.height!==void 0||a.rake!==void 0||(a.elevation??0)>0);if(!r.length||!i||!t){for(let a of o)a.eyeHeightM=n+Y;return}let s=new Array(o.length),c=new Map,l=new Map;for(let a=0;a<o.length;a++){let f=o[a],u=r.find(x=>W({x:f.x,y:f.y},x.outline,x.holes))??null;if(s[a]=u,!u)continue;c.has(u.id)||c.set(u.id,Re(u,{floorBaseHeightM:n}));let p=l.get(u.id);p?p.push(a):l.set(u.id,[a])}let y=new Array(o.length).fill(void 0);for(let[a,f]of l){let u=c.get(a);if(!u)continue;let p=u.rake>0?Math.tan(u.rake*Math.PI/180):0,x=_e(a,o,f,t);for(let m of x.rows){let h=m.blockDepth*z*p,d=u.height+h;for(let g of m.seatIndices)y[g]=d}}for(let a=0;a<o.length;a++){let f=o[a],u=s[a];if(!u){f.eyeHeightM=n+Y;continue}let p=c.get(u.id);f.eyeHeightM=(y[a]??p.height)+Y}}var K=40;function q(e){let t=1/0,n=1/0,o=-1/0,r=-1/0,i=(s,c)=>{s<t&&(t=s),c<n&&(n=c),s>o&&(o=s),c>r&&(r=c)};for(let s of ze(e))if(s.type==="row"){let c=new Map((s.overrides??[]).map(l=>[l.index,l]));ye(s).forEach((l,y)=>{let a=c.get(y);a?.skip||i(l.x+(a?.dx??0),l.y+(a?.dy??0))})}else if(s.type==="gaArea")for(let c of s.points)i(c.x,c.y);else if(s.type==="section")for(let c of s.outline)i(c.x,c.y);else if(s.type==="decorImage")i(s.x,s.y),i(s.x+s.width,s.y+s.height);else if(s.type==="shape")if(s.points&&s.points.length)for(let c of s.points)i(c.x,c.y);else s.x!=null&&s.y!=null&&s.width!=null&&s.height!=null&&(i(s.x,s.y),i(s.x+s.width,s.y+s.height));else if(s.type==="table"){let c=F+At,l=s.shape==="round"?(s.radius??40)+c:Math.max((s.width??80)/2,(s.height??50)/2)+c;i(s.center.x-l,s.center.y-l),i(s.center.x+l,s.center.y+l)}else if(s.type==="booth"){let c=Math.max(s.width,s.height)/2;i(s.center.x-c,s.center.y-c),i(s.center.x+c,s.center.y+c)}else if(s.type==="text"){let c=te(s);i(s.position.x,s.position.y),i(s.position.x+c.width,s.position.y+c.height)}for(let s of[e.referenceImage,e.backgroundImage]){if(!s)continue;let{center:c,width:l}=s,y=l*3/4;i(c.x-l/2,c.y-y/2),i(c.x+l/2,c.y+y/2)}if(!isFinite(t)){let s=e.focalPoint??{x:0,y:0};return{x:s.x-200,y:s.y-200,width:400,height:400}}return{x:t-K,y:n-K,width:o-t+K*2,height:r-n+K*2}}function Gt(e,t=0){let n=Math.max(1,e.width,e.height),o={x:e.x+e.width/2,y:e.y+e.height/2},r=n*1.55,i=Math.max(n*.82,Math.max(0,t)+n*.45);return{target:o,distance:r,height:i,focalLength:Math.hypot(r,i),yawRad:-8*Math.PI/180}}function Q(e,t,n=0){let o=t.x-e.target.x,r=t.y-e.target.y,i=Math.cos(e.yawRad),s=Math.sin(e.yawRad),c=o*i-r*s,y=o*s+r*i-e.distance,a=n-e.height,f=Math.hypot(e.distance,e.height),u=(-e.distance*y-e.height*a)/f,p=(-e.height*y+e.distance*a)/f,x=Math.max(f*.08,u),m=e.focalLength/x;return{x:e.target.x+c*m,y:e.target.y-p*m,depth:x,scale:m}}function zt(e,t){return{x:e.a*t.x+e.c*t.y+e.e,y:e.b*t.x+e.d*t.y+e.f}}function Yt(e){let t=e.a*e.d-e.b*e.c;if(!Number.isFinite(t)||Math.abs(t)<1e-9)throw new Error("perspective projection produced a singular affine");let n=e.d/t,o=-e.b/t,r=-e.c/t,i=e.a/t;return{a:n,b:o,c:r,d:i,e:-(n*e.e+r*e.f),f:-(o*e.e+i*e.f)}}function Kt(e,t){return{a:e.a*t.a+e.c*t.b,b:e.b*t.a+e.d*t.b,c:e.a*t.c+e.c*t.d,d:e.b*t.c+e.d*t.d,e:e.a*t.e+e.c*t.f+e.e,f:e.b*t.e+e.d*t.f+e.f}}function $t(e,t,n=()=>0){let o=Q(e,t,n(t)),r={x:t.x+1,y:t.y},i={x:t.x,y:t.y+1},s=Q(e,r,n(r)),c=Q(e,i,n(i)),l=s.x-o.x,y=s.y-o.y,a=c.x-o.x,f=c.y-o.y;return{a:l,b:y,c:a,d:f,e:o.x-l*t.x-a*t.y,f:o.y-y*t.x-f*t.y}}function Wt(e){let t=Math.hypot(e.a,e.b),n=e.a*e.d-e.b*e.c;return{rotationDeg:Math.atan2(e.b,e.a)*180/Math.PI,scaleX:t,scaleY:n/Math.max(t,1e-9),skewX:(e.a*e.c+e.b*e.d)/Math.max(n,1e-9)}}var Ke=9;function Vt(e){if(e.kind==="circle")return{hx:e.r,hy:e.r};let t=e.width/2,n=e.height/2,o=e.rotation??0;if(!o)return{hx:t,hy:n};let r=o*Math.PI/180,i=Math.abs(Math.cos(r)),s=Math.abs(Math.sin(r));return{hx:t*i+n*s,hy:t*s+n*i}}function qt(e,t,n){let o=t-e.seat.x,r=n-e.seat.y;if(e.shape.kind==="circle")return o*o+r*r<=e.shape.r*e.shape.r;let i=e.shape.rotation??0,s=o,c=r;if(i){let l=-i*Math.PI/180,y=Math.cos(l),a=Math.sin(l);s=o*y-r*a,c=o*a+r*y}return Math.abs(s)<=e.shape.width/2&&Math.abs(c)<=e.shape.height/2}function Qt(e,t,n,o,r){if(e.shape.kind==="circle"){let x=Math.min(Math.max(e.seat.x,t),o),m=Math.min(Math.max(e.seat.y,n),r),h=e.seat.x-x,d=e.seat.y-m;return h*h+d*d<=e.shape.r*e.shape.r}let i=e.shape.rotation??0;if(!i)return e.seat.x-e.hx<=o&&e.seat.x+e.hx>=t&&e.seat.y-e.hy<=r&&e.seat.y+e.hy>=n;let s=i*Math.PI/180,c=Math.cos(s),l=Math.sin(s),y=e.shape.width/2,a=e.shape.height/2,f=[[-y,-a],[y,-a],[y,a],[-y,a]].map(([x,m])=>[e.seat.x+x*c-m*l,e.seat.y+x*l+m*c]),u=[[t,n],[o,n],[o,r],[t,r]],p=[[1,0],[0,1],[c,l],[-l,c]];for(let[x,m]of p){let h=1/0,d=-1/0;for(let[M,P]of f){let w=M*x+P*m;w<h&&(h=w),w>d&&(d=w)}let g=1/0,b=-1/0;for(let[M,P]of u){let w=M*x+P*m;w<g&&(g=w),w>b&&(b=w)}if(d<g||b<h)return!1}return!0}function Zt(e,t={}){let n=t.seatRadius??Ke,o=e.length,r=new Array(o),i=1/0,s=1/0,c=-1/0,l=-1/0,y=0;for(let w=0;w<o;w++){let S=e[w],E=t.shapeOf?.(S)??{kind:"circle",r:n},{hx:I,hy:v}=Vt(E);r[w]={seat:S,shape:E,hx:I,hy:v},S.x-I<i&&(i=S.x-I),S.y-v<s&&(s=S.y-v),S.x+I>c&&(c=S.x+I),S.y+v>l&&(l=S.y+v),I>y&&(y=I),v>y&&(y=v)}o===0&&(i=0,s=0,c=0,l=0);let a=y>0?y*4:1,f=Math.max(c-i,0),u=Math.max(l-s,0),p=Math.max(64,t.maxCells??o*4),x=a,m=Math.max(1,Math.ceil(f/x)||1),h=Math.max(1,Math.ceil(u/x)||1);for(;m*h>p&&(m>1||h>1);)x*=2,m=Math.max(1,Math.ceil(f/x)||1),h=Math.max(1,Math.ceil(u/x)||1);let d=m*h,g=new Int32Array(d+1),b=0;for(let w=0;w<o;w++){let S=r[w],E=L(Math.floor((S.seat.x-S.hx-i)/x),0,m-1),I=L(Math.floor((S.seat.x+S.hx-i)/x),0,m-1),v=L(Math.floor((S.seat.y-S.hy-s)/x),0,h-1),T=L(Math.floor((S.seat.y+S.hy-s)/x),0,h-1);for(let R=v;R<=T;R++)for(let O=E;O<=I;O++)g[R*m+O+1]++,b++}for(let w=0;w<d;w++)g[w+1]+=g[w];let M=new Int32Array(b),P=g.slice(0,d);for(let w=0;w<o;w++){let S=r[w],E=L(Math.floor((S.seat.x-S.hx-i)/x),0,m-1),I=L(Math.floor((S.seat.x+S.hx-i)/x),0,m-1),v=L(Math.floor((S.seat.y-S.hy-s)/x),0,h-1),T=L(Math.floor((S.seat.y+S.hy-s)/x),0,h-1);for(let R=v;R<=T;R++)for(let O=E;O<=I;O++){let A=R*m+O;M[P[A]++]=w}}return{seats:e,entries:r,minX:i,minY:s,cell:x,cols:m,rows:h,cellStart:g,items:M,stamp:new Int32Array(o),epoch:0}}function Jt(e,t,n={}){let{cols:o,rows:r,cell:i,minX:s,minY:c,cellStart:l,items:y,entries:a}=e,f=Math.floor((t.x-s)/i),u=Math.floor((t.y-c)/i);if(f<0||u<0||f>=o||u>=r)return null;let p=u*o+f,x=l[p+1],m=-1,h=1/0;for(let d=l[p];d<x;d++){let g=y[d],b=a[g];if(n.filter&&!n.filter(b.seat.id,b.seat)||!qt(b,t.x,t.y))continue;let M=t.x-b.seat.x,P=t.y-b.seat.y,w=M*M+P*P;(w<h||w===h&&g<m)&&(h=w,m=g)}return m<0?null:a[m].seat.id}function en(e,t,n,o={}){if(!(n>0))return null;let{cols:r,rows:i,cell:s,minX:c,minY:l,cellStart:y,items:a,entries:f}=e,u=Math.max(0,Math.floor((t.x-n-c)/s)),p=Math.min(r-1,Math.floor((t.x+n-c)/s)),x=Math.max(0,Math.floor((t.y-n-l)/s)),m=Math.min(i-1,Math.floor((t.y+n-l)/s));if(u>p||x>m)return null;let h=-1,d=n*n,g=e.stamp,b=++e.epoch;for(let M=x;M<=m;M++){let P=M*r;for(let w=u;w<=p;w++){let S=P+w,E=y[S+1];for(let I=y[S];I<E;I++){let v=a[I];if(g[v]===b)continue;g[v]=b;let T=f[v];if(o.filter&&!o.filter(T.seat.id,T.seat))continue;let R=t.x-T.seat.x,O=t.y-T.seat.y,A=R*R+O*O;(A<d||A===d&&v<h)&&(d=A,h=v)}}}return h<0?null:f[h].seat.id}function tn(e,t,n={}){let o=Math.min(t.x,t.x+t.width),r=Math.max(t.x,t.x+t.width),i=Math.min(t.y,t.y+t.height),s=Math.max(t.y,t.y+t.height),c=n.mode??"center",{cols:l,rows:y,cell:a,minX:f,minY:u,cellStart:p,items:x,entries:m}=e,h=Math.max(0,Math.floor((o-f)/a)),d=Math.min(l-1,Math.floor((r-f)/a)),g=Math.max(0,Math.floor((i-u)/a)),b=Math.min(y-1,Math.floor((s-u)/a));if(h>d||g>b)return[];let M=[],P=e.stamp,w=++e.epoch;for(let S=g;S<=b;S++){let E=S*l;for(let I=h;I<=d;I++){let v=E+I,T=p[v+1];for(let R=p[v];R<T;R++){let O=x[R];if(P[O]===w)continue;P[O]=w;let A=m[O];if(n.filter&&!n.filter(A.seat.id,A.seat))continue;(c==="center"?A.seat.x>=o&&A.seat.x<=r&&A.seat.y>=i&&A.seat.y<=s:Qt(A,o,i,r,s))&&M.push(O)}}}return M.sort((S,E)=>S-E),M.map(S=>m[S].seat.id)}function nn(e){let t=e.cols*e.rows,n=0,o=0;for(let i=0;i<t;i++){let s=e.cellStart[i+1]-e.cellStart[i];s>0&&n++,s>o&&(o=s)}let r=e.items.length;return{cell:e.cell,cols:e.cols,rows:e.rows,cells:t,occupiedCells:n,refs:r,maxPerCell:o,meanPerOccupiedCell:n?r/n:0}}0&&(module.exports={DEFAULT_SEAT_RADIUS,TEXT_BACKGROUND_PADDING_MAX,TEXT_BACKGROUND_RADIUS_MAX,TEXT_LETTER_SPACING_MAX,TEXT_LETTER_SPACING_MIN,TEXT_LINE_HEIGHT_MAX,TEXT_LINE_HEIGHT_MIN,TEXT_OPACITY_MIN,TEXT_WIDTH_MAX,TEXT_WIDTH_MIN,allObjects,applyAffine,buildAisleHoles,buildSeatIndex,buildSectionShell,chartBounds,composeAffine,createPerspectiveCamera,cubicPoint,decomposeAffineLinear,distanceToRings,distributeAlongCubic,expandBooth,expandChart,expandRow,expandRowSlots,expandTable,expandTableSlots,floorObjects,floorOverviewTranslations,floorsOf,floorsShareFootprint,gridStats,hitTest,invertAffine,layoutFloorOverview,layoutFloorRings,nearestWithin,objectCenter,owningSectionForObject,perspectiveTangentAffine,pointInPolygon,pointInPolygonWithHoles,polygonArea,polygonInscribedAnchor,polygonLabelPoint,polygonNetArea,projectPerspectivePoint,queryRect,resolveSegmentedRowGroups,rowInventoryCount,rowSeatPositions,segmentedRowComponentSeats,segmentedRowComponents,segmentedRowSeatTotal,smoothCubicThroughMiddle,stackFloors,tableInventoryCount,tableSeatCountsBySide,textLayoutMetrics,translateObject});
|
|
1
|
+
"use strict";var J=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var qe=Object.prototype.hasOwnProperty;var Qe=(e,t)=>{for(var n in t)J(e,n,{get:t[n],enumerable:!0})},Ze=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ve(t))!qe.call(e,r)&&r!==n&&J(e,r,{get:()=>t[r],enumerable:!(o=We(t,r))||o.enumerable});return e};var Je=e=>Ze(J({},"__esModule",{value:!0}),e);var on={};Qe(on,{DEFAULT_SEAT_RADIUS:()=>Ye,TABLE_SEAT_OFFSET:()=>N,TEXT_BACKGROUND_PADDING_MAX:()=>xn,TEXT_BACKGROUND_RADIUS_MAX:()=>bn,TEXT_LETTER_SPACING_MAX:()=>yn,TEXT_LETTER_SPACING_MIN:()=>mn,TEXT_LINE_HEIGHT_MAX:()=>dn,TEXT_LINE_HEIGHT_MIN:()=>hn,TEXT_OPACITY_MIN:()=>pn,TEXT_WIDTH_MAX:()=>fn,TEXT_WIDTH_MIN:()=>un,allObjects:()=>ze,applyAffine:()=>zt,buildAisleHoles:()=>nt,buildSeatIndex:()=>Zt,buildSectionShell:()=>tt,chartBounds:()=>q,composeAffine:()=>Yt,createPerspectiveCamera:()=>Gt,cubicPoint:()=>B,decomposeAffineLinear:()=>Wt,distanceToRings:()=>ve,distributeAlongCubic:()=>ee,expandBooth:()=>Xe,expandChart:()=>Bt,expandRow:()=>pe,expandRowSlots:()=>Fe,expandTable:()=>Ue,expandTableSlots:()=>xe,floorObjects:()=>Nt,floorOverviewTranslations:()=>Ke,floorsOf:()=>Ge,floorsShareFootprint:()=>Ut,gridStats:()=>nn,hitTest:()=>Jt,invertAffine:()=>Kt,layoutFloorOverview:()=>Ht,layoutFloorRings:()=>Xt,nearestWithin:()=>en,objectCenter:()=>U,owningSectionForObject:()=>Be,perspectiveTangentAffine:()=>$t,pointInPolygon:()=>me,pointInPolygonWithHoles:()=>W,polygonArea:()=>oe,polygonInscribedAnchor:()=>re,polygonLabelPoint:()=>jt,polygonNetArea:()=>st,projectPerspectivePoint:()=>Q,queryRect:()=>tn,resolveSegmentedRowGroups:()=>ie,rowInventoryCount:()=>_t,rowSeatPositions:()=>ye,segmentedRowComponentSeats:()=>lt,segmentedRowComponents:()=>at,segmentedRowSeatTotal:()=>ut,smoothCubicThroughMiddle:()=>et,stackFloors:()=>Ft,tableInventoryCount:()=>kt,tableSeatCountsBySide:()=>He,textLayoutMetrics:()=>te,translateObject:()=>V});module.exports=Je(on);var sn=Math.PI/180;function D(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function j(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function B(e,t){let n=1-t,o=n*n*n,r=3*n*n*t,i=3*n*t*t,s=t*t*t;return{x:o*e.start.x+r*e.control1.x+i*e.control2.x+s*e.end.x,y:o*e.start.y+r*e.control1.y+i*e.control2.y+s*e.end.y}}function et(e,t,n){let o={x:(e.x+t.x)/2,y:(e.y+t.y)/2},r={x:(n.x-o.x)*4/3,y:(n.y-o.y)*4/3};return{start:{...e},control1:{x:e.x+(t.x-e.x)/3+r.x,y:e.y+(t.y-e.y)/3+r.y},control2:{x:e.x+(t.x-e.x)*2/3+r.x,y:e.y+(t.y-e.y)*2/3+r.y},end:{...t}}}function ee(e,t,n=192){if(!Number.isInteger(t)||t<1)throw new Error("Path point count must be a positive integer");if(t===1)return[B(e,.5)];let o=Array.from({length:n+1},(l,y)=>B(e,y/n)),r=new Float64Array(o.length);for(let l=1;l<o.length;l+=1){let y=o[l].x-o[l-1].x,a=o[l].y-o[l-1].y;r[l]=r[l-1]+Math.hypot(y,a)}let i=r[r.length-1];if(i<=1e-9)return Array.from({length:t},()=>({...e.start}));let s=[],c=1;for(let l=0;l<t;l+=1){let y=i*l/(t-1);for(;c<r.length-1&&r[c]<y;)c+=1;let a=r[c-1],f=r[c],u=f===a?0:(y-a)/(f-a);s.push({x:o[c-1].x+(o[c].x-o[c-1].x)*u,y:o[c-1].y+(o[c].y-o[c-1].y)*u})}return s}function _(e,t){return{x:e.x+t.x,y:e.y+t.y}}function H(e,t){return{x:e.x-t.x,y:e.y-t.y}}function k(e,t){return{x:e.x*t,y:e.y*t}}function G(e,t=13){return Array.from({length:t},(n,o)=>B(e,o/(t-1)))}function be(e,t){let n=Math.max(0,Math.min(1,t))*(e.length-1),o=Math.min(e.length-2,Math.floor(n));return j(e[o],e[o+1],n-o)}function ge(e,t,n){let o=Math.max(0,Math.min(1,t)),r=Math.max(o,Math.min(1,n)),i=[be(e,o)];for(let s=1;s<e.length-1;s+=1){let c=s/(e.length-1);c>o+1e-9&&c<r-1e-9&&i.push(e[s])}return i.push(be(e,r)),i}function Me(e,t){let n=[[0,1],[1,2],[2,3],[3,0]],o=0,r=Number.POSITIVE_INFINITY;n.forEach(([u,x],p)=>{let m=D(j(e[u],e[x],.5),t);m<r&&(r=m,o=p)});let i=e[o],s=e[(o+1)%4],c=e[(o+2)%4],l=e[(o+3)%4],y=j(i,s,.5),a=H(t,y),f=Math.max(1e-9,Math.hypot(a.x,a.y));return{p0:i,p1:s,p2:c,p3:l,normal:k(a,1/f),depth:(D(i,l)+D(s,c))/2}}function we(e){let{p0:t,p1:n,p2:o,p3:r,normal:i,depth:s}=e,c=H(n,t),l=H(o,r),y=s*.22,a=s*.12;return{nearPath:{start:t,control1:_(_(t,k(c,1/3)),k(i,y)),control2:_(_(t,k(c,2/3)),k(i,y)),end:n},farPath:{start:o,control1:_(_(r,k(l,2/3)),k(i,a)),control2:_(_(r,k(l,1/3)),k(i,a)),end:r}}}function tt(e,t,n){if(e.length!==4)throw new Error("A section shell requires four mapped bounds corners");let o=e.reduce((p,m)=>_(p,m),{x:0,y:0});o.x/=4,o.y/=4;let r=D(e[0],e[1]),i=D(e[0],e[3]),s=n==="auto"?r>i*1.25&&D(o,t)>i?"bezier":"tapered":n;if(s==="rectangle")return{mode:s,outline:e.map(p=>({...p}))};let c=Me(e,t),{p0:l,p1:y,p2:a,p3:f}=c;if(s==="tapered")return{mode:s,outline:[_(l,k(H(y,l),.14)),_(l,k(H(y,l),1-.14)),a,f]};let{nearPath:u,farPath:x}=we(c);return{mode:s,outline:[...G(u),...G(x).slice(1)]}}function nt(e,t,n,o){if(e.length!==4)throw new Error("Aisle generation requires four mapped bounds corners");if(!Number.isInteger(n)||n<0||n>3)throw new Error("Aisle count must be an integer from 0 to 3");if(n===0)return[];let r=Me(e,t),{p0:i,p1:s,p2:c,p3:l}=r,y=o==="bezier"?we(r):null,a=y?G(y.nearPath):null,f=y?G(y.farPath).reverse():null,u=Math.min(.055,.18/(n+1));return Array.from({length:n},(x,p)=>{let m=(p+1)/(n+1),h=m-u/2,d=m+u/2;return a&&f?[...ge(a,h,d),...ge(f,h,d).reverse()]:[j(i,s,h),j(i,s,d),j(l,c,d),j(l,c,h)]})}var un=40,fn=1200,hn=.8,dn=3,mn=-2,yn=20,pn=.1,xn=40,bn=40,Se=e=>Math.max(1,e.fontSize*.6+(e.letterSpacing??0));function ot(e,t){let n=e.text.split(/\r?\n/);if(!e.width)return Math.max(1,n.length);let o=Math.max(1,Math.floor(t/Se(e))),r=0;for(let i of n){if(!i.length){r+=1;continue}let s=0;for(let c of i.split(/\s+/)){let l=c.length;s&&s+1+l<=o?s+=1+l:(r+=Math.max(1,Math.ceil(l/o)),s=l%o)}}return Math.max(1,r)}function te(e){let t=e.background?.padding??0,n=e.text.split(/\r?\n/),o=Math.max(1,...n.map(c=>c.length))*Se(e),r=e.width??o+t*2,i=Math.max(1,r-t*2),s=ot(e,i);return{width:r,height:s*e.fontSize*(e.lineHeight??1.2)+t*2,lineCount:s,padding:t}}function rt(e,t,n){let o=n.x-t.x,r=n.y-t.y,i=o*o+r*r,s=i?Math.max(0,Math.min(1,((e.x-t.x)*o+(e.y-t.y)*r)/i)):0;return Math.hypot(e.x-(t.x+s*o),e.y-(t.y+s*r))}function ve(e,t){let n=1/0;for(let o of t)if(!(o.length<2))for(let r=0,i=o.length-1;r<o.length;i=r++){let s=rt(e,o[i],o[r]);s<n&&(n=s)}return n}function Pe(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o].x,s=t[o].y,c=t[r].x,l=t[r].y;s>e.y!=l>e.y&&e.x<(c-i)*(e.y-s)/(l-s)+i&&(n=!n)}return n}function it(e,t,n){let o=Pe(e,t)&&!n.some(i=>Pe(e,i)),r=ve(e,[t,...n]);return o?r:-r}function F(e,t,n,o,r){let i=it({x:e,y:t},o,r);return{x:e,y:t,h:n,d:i,max:i+n*Math.SQRT2}}var ne=class{constructor(){this.items=[]}get size(){return this.items.length}push(t){let n=this.items;n.push(t);let o=n.length-1;for(;o>0;){let r=o-1>>1;if(n[r].max>=n[o].max)break;[n[r],n[o]]=[n[o],n[r]],o=r}}pop(){let t=this.items,n=t[0],o=t.pop();if(t.length&&o){t[0]=o;let r=0;for(;;){let i=r*2+1,s=i+1,c=r;if(i<t.length&&t[i].max>t[c].max&&(c=i),s<t.length&&t[s].max>t[c].max&&(c=s),c===r)break;[t[c],t[r]]=[t[r],t[c]],r=c}}return n}};function oe(e){if(e.length<3)return 0;let t=0;for(let n=0,o=e.length-1;n<e.length;o=n++)t+=(e[o].x+e[n].x)*(e[o].y-e[n].y);return Math.abs(t)/2}function st(e,t){return Math.max(0,oe(e)-(t??[]).reduce((n,o)=>n+oe(o),0))}function re(e,t){let n=t??[];if(!e.length)return{point:{x:0,y:0},radius:0};if(e.length<3){let m=e.reduce((d,g)=>d+g.x,0)/e.length,h=e.reduce((d,g)=>d+g.y,0)/e.length;return{point:{x:m,y:h},radius:0}}let o=1/0,r=1/0,i=-1/0,s=-1/0;for(let m of e)m.x<o&&(o=m.x),m.y<r&&(r=m.y),m.x>i&&(i=m.x),m.y>s&&(s=m.y);let c=i-o,l=s-r,y=Math.min(c,l);if(!(y>0))return{point:{x:(o+i)/2,y:(r+s)/2},radius:0};let a=Math.max(c,l)/150,f=new ne,u=y/2;for(let m=o;m<i;m+=y)for(let h=r;h<s;h+=y)f.push(F(m+u,h+u,u,e,n));let x=F(o+c/2,r+l/2,0,e,n),p=0;for(;f.size;){let m=f.pop();if(!m)break;m.d>x.d&&(x=m),!(m.max-x.d<=a)&&(p>=4e3||(p+=1,u=m.h/2,f.push(F(m.x-u,m.y-u,u,e,n)),f.push(F(m.x+u,m.y-u,u,e,n)),f.push(F(m.x-u,m.y+u,u,e,n)),f.push(F(m.x+u,m.y+u,u,e,n))))}return{point:{x:x.x,y:x.y},radius:Math.max(0,x.d)}}function L(e,t,n){return e<t?t:e>n?n:e}var Sn=Math.PI*2;function Ie(e,t,n){return ct(e,r=>({x:r.x+t,y:r.y+n}))}function ct(e,t,n=1,o=!1){return{...e,start:t(e.start),segments:e.segments.map(r=>r.kind==="line"?{...r,end:t(r.end)}:r.kind==="arc"?{...r,center:t(r.center),radius:r.radius*Math.abs(n),clockwise:o?!r.clockwise:r.clockwise,end:t(r.end)}:{...r,control1:t(r.control1),control2:t(r.control2),end:t(r.end)})}}var Pn=4/3;function at(e,t,n){let o=[];for(let r=0;r<e.length-1;r+=1){let i=e[r],s=e[r+1],c=Math.hypot(s.x-i.x,s.y-i.y);if(c<=0)continue;let l=Math.max(1,Math.round(c/n)),y=c/l,a=Math.atan2(s.y-i.y,s.x-i.x),f=r===0,x=(r>0?t[r-1]:void 0)==="break"?2:1,p=f?{...i}:{x:i.x+Math.cos(a)*y*x,y:i.y+Math.sin(a)*y*x},m=f?l+1:Math.max(1,l-(x-1));o.push({origin:p,rotation:a*180/Math.PI,seatCount:m,seatSpacing:y})}return o}function lt(e){let t=e.rotation*Math.PI/180,n={x:Math.cos(t),y:Math.sin(t)};return Array.from({length:e.seatCount},(o,r)=>({x:e.origin.x+n.x*r*e.seatSpacing,y:e.origin.y+n.y*r*e.seatSpacing}))}function ut(e){return e.reduce((t,n)=>t+n.seatCount,0)}function ie(e){let t=new Map,n=new Map;for(let o of e){if(o.type!=="row"||!o.segmentedRow)continue;let r=n.get(o.segmentedRow.groupId)??[];r.push(o),n.set(o.segmentedRow.groupId,r)}for(let[o,r]of n){let i=r.slice().sort((u,x)=>u.segmentedRow.componentIndex-x.segmentedRow.componentIndex),s=i[0]?.segmentedRow?.componentCount??0,c=i[0]?.segmentedRow;if(!c||!(s>=2&&i.length===s&&c?.boundaryBefore==="start"&&i.every((u,x)=>u.segmentedRow?.kind==="segmented-row-v1"&&u.segmentedRow.groupId===o&&u.segmentedRow.componentCount===s&&u.segmentedRow.componentIndex===x&&u.segmentedRow.repeatLabelOnComponents===c.repeatLabelOnComponents&&(x===0?u.segmentedRow.boundaryBefore==="start":u.segmentedRow.boundaryBefore!=="start")&&u.segmentedRow.displayLabel===c.displayLabel)))continue;let y=i.reduce((u,x)=>u+x.seatCount,0),a=0,f=0;for(let u of i)u.segmentedRow.boundaryBefore==="break"&&(a+=1),t.set(u.id,{groupId:o,adjacencyOffset:a,displayOffset:f,displayLabel:c.displayLabel,totalSeats:y,canonical:i[0],viewFromSeatUrl:c.viewFromSeatUrl,viewFromSeatMeta:c.viewFromSeatMeta,confidenceEvidence:c.confidenceEvidence}),a+=u.seatCount,f+=u.seatCount}return t}var ft="ABCDEFGHIJKLMNOPQRSTUVWXYZ";var ht="abcdefghijklmnopqrstuvwxyz";function dt(e,t){let n=t.length,o=e+1,r="";for(;o>0;){o-=1;let i=o%n;r=t[i]+r,o=Math.floor(o/n)}return r}function se(e,t=!1){let n=t?ht:ft;return dt(Math.max(0,Math.floor(e)-1),n)}var mt=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]];function Ce(e){if(!Number.isFinite(e)||e<=0)return String(e);let t=Math.floor(e),n="";for(let[o,r]of mt)for(;t>=o;)n+=r,t-=o;return n}function yt(e){let t=new Array(e);return Array.from({length:e},(n,o)=>o).sort((n,o)=>Math.abs(2*n-(e-1))-Math.abs(2*o-(e-1))||n-o).forEach((n,o)=>t[n]=o),t}function ce(e,t){let n=e.seatLabelStart??1,o=e.seatNumbering?.direction??"ltr",r=e.seatNumbering?.step??1,i=e.seatNumbering?.scheme??"decimal",s=e.seatNumbering?.prefix??"",c=e.seatNumbering?.endAt,l=e.seatCount;if(i==="updown"||i==="updown-descending"){let x=Math.ceil(l/2),p=i==="updown"?t<x?n+2*t:n-1+2*(l-t):t<x?n+2*(x-1-t):n+1+2*(t-x);return`${s}${p}`}let y=i==="odd"||i==="even"?2:r,a=c!=null&&Number.isFinite(c)?c-(l-1)*y:n,f=o==="center"?yt(l)[t]:o==="rtl"?l-1-t:t,u;switch(i){case"odd":{let x=a%2===1?a:a+1;u=String(x+f*2);break}case"even":{let x=a%2===0?a:a+1;u=String(x+f*2);break}case"roman":u=Ce(a+f*r);break;case"letters-upper":u=se(a+f*r,!1);break;case"letters-lower":u=se(a+f*r,!0);break;default:u=String(a+f*r);break}return`${s}${u}`}function pt(e){return{...e.canonical,seatCount:e.totalSeats,label:e.displayLabel,displayLabel:e.displayLabel}}function Ee(e,t,n){return n?.label??`${e.label}-${ce(e,t)}`}function ae(e,t,n,o){if(o?.displayLabel)return o.displayLabel;if(!n)return`${e.displayLabel??e.label}-${ce(e,t)}`;let r=pt(n),i=n.displayOffset+t;return`${n.displayLabel}-${ce(r,i)}`}var z=.02291666666666667,Rn=1/z,xt=58,bt=xt*z;var gt=3,Oe=0,le=120,Mt=0,wt=45,St=7,K=1.2;function ue(e,t,n,o){return Number.isFinite(e)?Math.max(t,Math.min(n,e)):o}function Pt(e){return!Number.isFinite(e)||!Number.isInteger(e)||e<0?0:e<=St?e:gt}function Re(e,t={}){let n=ue(t.floorBaseHeightM,Oe,le,0),o=Math.min(le,n+Pt(e.elevation)*bt),r=e.height===void 0?o:ue(e.height,Oe,le,o),i=ue(e.rake,Mt,wt,0);return{height:r,rake:i}}function Te(e){let t=e.length;return t<=3?[...e]:[e[Math.floor(t*.25)],e[Math.floor(t*.5)],e[Math.floor(t*.75)]]}function Ae(e,t,n){if(!e.length)return 1/0;if(e.length===1)return Math.hypot(t-e[0].x,n-e[0].y);let o=1/0;for(let r=0;r+1<e.length;r++){let i=e[r],s=e[r+1],c=s.x-i.x,l=s.y-i.y,y=c*c+l*l,a=y>1e-12?((t-i.x)*c+(n-i.y)*l)/y:0;a<0?a=0:a>1&&(a=1);let f=Math.hypot(t-(i.x+a*c),n-(i.y+a*l));f<o&&(o=f)}return o}function vt(e){let t=0,n=0;for(let i of e)t+=i.x,n+=i.y;let o=e.length||1;t/=o,n/=o;let r=0;for(let i of e){let s=Math.hypot(i.x-t,i.y-n);s>r&&(r=s)}return{cx:t,cy:n,r}}function _e(e,t){return Math.hypot(e.cx-t.cx,e.cy-t.cy)-e.r-t.r}function fe(e,t){let n=1/0;for(let o of Te(e)){let r=Ae(t,o.x,o.y);r<n&&(n=r)}for(let o of Te(t)){let r=Ae(e,o.x,o.y);r<n&&(n=r)}return n}function It(e,t){if(e.length<3)return{pts:e,seatIndices:t};let n=0,o=0;for(let a of e)n+=a.x,o+=a.y;n/=e.length,o/=e.length;let r=-1,i=e[0];for(let a of e){let f=Math.hypot(a.x-n,a.y-o);f>r&&(r=f,i=a)}let s=i.x-n,c=i.y-o,l=Math.hypot(s,c);l>1e-9?(s/=l,c/=l):(s=1,c=0);let y=e.map((a,f)=>({p:a,i:f,t:(a.x-n)*s+(a.y-o)*c})).sort((a,f)=>a.t-f.t);return{pts:y.map(a=>a.p),seatIndices:y.map(a=>t[a.i])}}function Ct(e){let t=e.length;if(t<3)return null;let n=0,o=0;for(let g of e)n+=g.x,o+=g.y;n/=t,o/=t;let r=0,i=0,s=0,c=0,l=0,y=0,a=0;for(let g of e){let b=g.x-n,M=g.y-o;r+=b*b,s+=M*M,i+=b*M,c+=b*b*b,l+=M*M*M,y+=b*M*M,a+=M*b*b}let f=r*s-i*i;if(Math.abs(f)<1e-9)return null;let u=(c+y)/2,x=(l+a)/2,p=(u*s-x*i)/f,m=(x*r-u*i)/f,h=p+n,d=m+o;return!Number.isFinite(h)||!Number.isFinite(d)?null:{cx:h,cy:d}}var Et=.15;function Ot(e){if(e.length<2)return null;let t=e.map(g=>{let b=0,M=0;for(let P of g.pts)b+=P.x,M+=P.y;return{x:b/g.pts.length,y:M/g.pts.length}}),n=0,o=0;for(let g of t)n+=g.x,o+=g.y;n/=t.length,o/=t.length;let r=0,i=0,s=0;for(let g of t){let b=g.x-n,M=g.y-o;r+=b*b,i+=b*M,s+=M*M}let c=r+s,l=r*s-i*i,y=c/2+Math.sqrt(Math.max(0,c*c/4-l)),a,f;Math.abs(i)>1e-12?(a=y-s,f=i):r>=s?(a=1,f=0):(a=0,f=1);let u=Math.hypot(a,f);if(!(u>1e-12))return null;a/=u,f/=u;let x=1/0,p=-1/0,m=[];for(let g of e){let b=1/0,M=-1/0;for(let P of g.pts){let w=P.x*a+P.y*f;w<b&&(b=w),w>M&&(M=w),w<x&&(x=w),w>p&&(p=w)}m.push(M-b)}let h=p-x;return h>1e-9?(m.sort((g,b)=>g-b),m[Math.min(m.length-1,Math.floor(m.length*.9))]/h<=Rt?{x:a,y:f}:null):null}var Rt=.35;function ke(e,t,n,o){let r=new Map;for(let h of n){let d=t[h],g=d.rowId||`__seat-${h}`,b=r.get(g);b||(b={pts:[],idx:[]},r.set(g,b)),b.pts.push({x:d.x,y:d.y}),b.idx.push(h)}if(!r.size)return{sectionId:e,rows:[],blockCount:0};let i=[];for(let[h,d]of r){let g=It(d.pts,d.idx),b=0;for(let M of g.pts)b+=Math.hypot(M.x-o.x,M.y-o.y);i.push({id:h,pts:g.pts,seatIndices:g.seatIndices,blockId:-1,ordinal:0,blockDepth:0,focalDistance:b/g.pts.length})}let s=i.map(h=>vt(h.pts)),c=[];for(let h=0;h<i.length;h++){let d=1/0;for(let g=0;g<i.length;g++){if(h===g||_e(s[h],s[g])>=d)continue;let b=fe(i[h].pts,i[g].pts);b<d&&(d=b)}Number.isFinite(d)&&c.push(d)}c.sort((h,d)=>h-d);let l=c.length?c[Math.floor(c.length/2)]:1,y=Math.max(l*1.8,1e-6),a=i.map(()=>[]);for(let h=0;h<i.length;h++)for(let d=h+1;d<i.length;d++)_e(s[h],s[d])>y||fe(i[h].pts,i[d].pts)<=y&&(a[h].push(d),a[d].push(h));let f=0;for(let h=0;h<i.length;h++){if(i[h].blockId!==-1)continue;let d=f++,g=[h];for(i[h].blockId=d;g.length;){let b=g.pop();for(let M of a[b])i[M].blockId===-1&&(i[M].blockId=d,g.push(M))}}let u=new Map;for(let h of i){let d=u.get(h.blockId)??[];d.push(h),u.set(h.blockId,d)}let x=[];for(let h of i){if(h.pts.length<4)continue;let d=Ct(h.pts);d&&(!Number.isFinite(d.cx)||!Number.isFinite(d.cy)||x.push({x:d.cx,y:d.cy}))}let p=x.length>=2?(()=>{let h=x.map(b=>b.x).sort((b,M)=>b-M),d=x.map(b=>b.y).sort((b,M)=>b-M),g=Math.floor(x.length/2);return{cx:h[g],cy:d[g]}})():null;if(p){let h=w=>Math.hypot(w.x-p.cx,w.y-p.cy),d=1/0,g=-1/0,b=[];for(let w of i){let S=1/0,E=-1/0;for(let I of w.pts){let v=h(I);v<S&&(S=v),v>E&&(E=v)}b.push(E-S),S<d&&(d=S),E>g&&(g=E)}let M=g-d;b.sort((w,S)=>w-S);let P=b[Math.min(b.length-1,Math.floor(b.length*.9))];if(M>1e-9&&P/M<=Et){let w=i.map(C=>{let X=0;for(let $e of C.pts)X+=h($e);return{row:C,radius:X/C.pts.length}}),S=0,E=0;for(let C of w)S+=C.radius,E+=C.row.focalDistance;S/=w.length,E/=w.length;let I=0;for(let C of w)I+=(C.radius-S)*(C.row.focalDistance-E);if(I<0)for(let C of w)C.radius=-C.radius;let A=1/0;for(let C of w)C.radius<A&&(A=C.radius);w.sort((C,X)=>C.radius-X.radius);let R=-1,O=-1/0,T=M/Math.max(1,w.length)*.5,Z=[];for(let C of w)C.radius-O>T&&(R++,O=C.radius),C.row.ordinal=R,C.row.blockDepth=C.radius-A,Z.push(C.row);return{sectionId:e,rows:Z,blockCount:f}}}let m=[];for(let[,h]of u){let d=Ot(h);if(d){let g=M=>{let P=0;for(let w of M.pts)P+=w.x*d.x+w.y*d.y;return P/M.pts.length};h.sort((M,P)=>g(M)-g(P)),h.length>=2&&h[0].focalDistance>h[h.length-1].focalDistance&&h.reverse();let b=0;for(let M=0;M<h.length;M++)M>0&&(b+=fe(h[M-1].pts,h[M].pts)),h[M].ordinal=M,h[M].blockDepth=b,m.push(h[M])}else{let g=1/0;for(let b of h)b.focalDistance<g&&(g=b.focalDistance);h.sort((b,M)=>b.focalDistance-M.focalDistance);for(let b=0;b<h.length;b++)h[b].ordinal=b,h[b].blockDepth=Math.max(0,h[b].focalDistance-g),m.push(h[b])}}return{sectionId:e,rows:m,blockCount:f}}function Ne(e){return e?e.accessibility&&e.accessibility.length?e.wheelchairSpaceType&&!e.accessibility.includes("wheelchair")?["wheelchair",...e.accessibility]:e.accessibility:e.wheelchairSpaceType?["wheelchair"]:e.accessible?["wheelchair"]:[]:[]}var $=Math.PI/180,Tt=9,N=16;function de(e,t,n,o){let r=n*$,i=Math.cos(r),s=Math.sin(r);return{x:o.x+e*i-t*s,y:o.y+e*s+t*i}}function ye(e){let{seatCount:t,seatSpacing:n,curve:o,rotation:r,origin:i}=e,s=[];if(e.path)return ee(e.path,t);if(t<=1)return t===1&&s.push({x:i.x,y:i.y}),s;if(o===0){for(let y=0;y<t;y++)s.push(de(y*n,0,r,i));return s}let c=o/(t-1)*$,l=n/(2*Math.sin(Math.abs(c)/2));for(let y=0;y<t;y++){let a=y*c,f=l*Math.sin(a),u=-l+l*Math.cos(a);s.push(de(f,u,r,i))}return s}function At(e){let t=new Map;if(e.overrides)for(let n of e.overrides)t.set(n.index,n);return t}function _t(e){let t=new Set((e.overrides??[]).filter(n=>n.skip&&Number.isInteger(n.index)&&n.index>=0&&n.index<e.seatCount).map(n=>n.index));return Math.max(0,e.seatCount-t.size)}function Fe(e,t){let n=At(e);return ye(e).map((o,r)=>{let i=n.get(r),s=Ne(i),c=Ee(e,r,i),l={...e.commercial,...i?.commercial};return{index:r,x:o.x+(i?.dx??0),y:o.y+(i?.dy??0),label:c,displayLabel:ae(e,r,t,i),categoryKey:i?.categoryKey??e.categoryKey,skipped:!!i?.skip,accessible:s.length>0,accessibility:s,wheelchairSpaceType:i?.wheelchairSpaceType,commercial:Object.values(l).some(y=>y!==void 0&&y!==!1&&y!=="")?l:void 0,glyph:i?.glyph,viewUrl:i?.viewFromSeatUrl??e.viewFromSeatUrl,viewMeta:i?.viewFromSeatUrl?i.viewFromSeatMeta:e.viewFromSeatMeta,labelStyle:i?.labelStyle}})}function pe(e){let t=[];for(let n of Fe(e))n.skipped||t.push({id:`${e.id}:${n.index}`,label:n.label,displayLabel:n.displayLabel===n.label?void 0:n.displayLabel,x:n.x,y:n.y,rowId:e.id,categoryKey:n.categoryKey,accessible:n.accessible||void 0,accessibility:n.accessibility.length?n.accessibility:void 0,wheelchairSpaceType:n.wheelchairSpaceType,commercial:n.commercial,glyph:n.glyph,viewUrl:n.viewUrl,viewMeta:n.viewMeta,labelStyle:n.labelStyle});return t}function He(e){if(e.seatCountsBySide)return{...e.seatCountsBySide};let t=e.sides&&e.sides.length?e.sides:["top","bottom"],n=["top","bottom","left","right"].filter(i=>t.includes(i)),o={top:0,bottom:0,left:0,right:0};if(!n.length)return o;let r=Math.max(0,Math.round(e.seatCount));for(let i=0;i<r;i++)o[n[i%n.length]]+=1;return o}function xe(e){let t=[],n=Math.max(0,Math.round(e.seatCount));if(n===0)return t;let o=new Map((e.overrides??[]).map(a=>[a.index,a])),r=(a,f,u,x)=>{let p=o.get(a),m=Ne(p),h=p?.label??`${e.label}-${a+1}`,d=e.displayLabel??e.label;return{index:a,label:h,displayLabel:p?.displayLabel??`${d}-${a+1}`,x:f+(p?.dx??0),y:u+(p?.dy??0),categoryKey:p?.categoryKey??e.categoryKey,skipped:!!p?.skip,accessible:m.length>0,accessibility:m,wheelchairSpaceType:p?.wheelchairSpaceType,commercial:p?.commercial,glyph:p?.glyph,viewUrl:p?.viewFromSeatUrl,viewMeta:p?.viewFromSeatUrl?p.viewFromSeatMeta:void 0,labelStyle:p?.labelStyle,...x?{side:x}:{}}};if(e.shape==="round"){let a=(e.radius??40)+N,f=e.rotation*$,u=Math.max(0,Math.min(360,e.seatArc??360));if(u>=360||n===1){for(let h=0;h<n;h++){let d=f+h/n*2*Math.PI;t.push(r(h,e.center.x+a*Math.cos(d),e.center.y+a*Math.sin(d)))}return t}let x=u*$,p=(2*Math.PI-x)/2,m=f+p;for(let h=0;h<n;h++){let d=m+h/(n-1)*x;t.push(r(h,e.center.x+a*Math.cos(d),e.center.y+a*Math.sin(d)))}return t}let i=e.width??80,s=e.height??50,c=He(e),l=["top","bottom","left","right"],y=0;for(let a of l){let f=c[a];for(let u=0;u<f;u++){let x,p;a==="top"?(x=-i/2+(u+.5)*i/f,p=-s/2-N):a==="bottom"?(x=-i/2+(u+.5)*i/f,p=s/2+N):a==="left"?(x=-i/2-N,p=-s/2+(u+.5)*s/f):(x=i/2+N,p=-s/2+(u+.5)*s/f);let m=de(x,p,e.rotation,e.center);t.push(r(y++,m.x,m.y,a))}}return t}function kt(e){return e.bookAsWhole||e.variableOccupancy?Math.max(0,Math.round(e.seatCount)):xe(e).filter(t=>!t.skipped).length}function Ue(e){return xe(e).filter(t=>!t.skipped).map(t=>({id:`${e.id}:${t.index}`,label:t.label,...t.displayLabel!==t.label?{displayLabel:t.displayLabel}:{},x:t.x,y:t.y,rowId:e.id,categoryKey:t.categoryKey,...t.accessible?{accessible:!0}:{},...t.accessibility.length?{accessibility:t.accessibility}:{},...t.wheelchairSpaceType?{wheelchairSpaceType:t.wheelchairSpaceType}:{},...t.commercial?{commercial:t.commercial}:{},...t.glyph?{glyph:t.glyph}:{},...t.viewUrl?{viewUrl:t.viewUrl}:{},...t.viewUrl&&t.viewMeta?{viewMeta:t.viewMeta}:{},...t.labelStyle?{labelStyle:t.labelStyle}:{}}))}function Xe(e){return[{id:`${e.id}:0`,label:e.label,...e.displayLabel&&e.displayLabel!==e.label?{displayLabel:e.displayLabel}:{},x:e.center.x,y:e.center.y,rowId:e.id,categoryKey:e.categoryKey,kind:"booth"}]}function me(e,t){let n=!1;for(let o=0,r=t.length-1;o<t.length;r=o++){let i=t[o].x,s=t[o].y,c=t[r].x,l=t[r].y;s>e.y!=l>e.y&&e.x<(c-i)*(e.y-s)/(l-s)+i&&(n=!n)}return n}function Lt(e,t){return t.some((n,o)=>{let r=t[(o+1)%t.length],i=(e.y-n.y)*(r.x-n.x)-(e.x-n.x)*(r.y-n.y);if(Math.abs(i)>1e-7)return!1;let s=(e.x-n.x)*(r.x-n.x)+(e.y-n.y)*(r.y-n.y),c=(r.x-n.x)**2+(r.y-n.y)**2;return s>=-1e-7&&s<=c+1e-7})}function W(e,t,n){return me(e,t)&&!(n??[]).some(o=>me(e,o)||Lt(e,o))}function jt(e,t){return re(e,t).point}function he(e){if(!e.length)return{x:0,y:0};let t=0,n=0;for(let o of e)t+=o.x,n+=o.y;return{x:t/e.length,y:n/e.length}}function U(e){switch(e.type){case"row":{let t=pe(e);if(!t.length)return{x:e.origin.x,y:e.origin.y};let n=0,o=0;for(let r of t)n+=r.x,o+=r.y;return{x:n/t.length,y:o/t.length}}case"table":case"booth":return{x:e.center.x,y:e.center.y};case"gaArea":return he(e.points);case"section":return he(e.outline);case"text":return{x:e.position.x,y:e.position.y};case"shape":return e.points&&e.points.length?he(e.points):e.x!=null&&e.y!=null&&e.width!=null&&e.height!=null?{x:e.x+e.width/2,y:e.y+e.height/2}:{x:e.x??0,y:e.y??0};case"decorImage":return{x:e.x+e.width/2,y:e.y+e.height/2}}}function Le(e,t){return e.length===t.length&&e.every((n,o)=>n.x===t[o].x&&n.y===t[o].y)}function Dt(e,t){if(e.type!=="gaArea"||!Le(e.points,t.outline))return!1;let n=e.holes??[],o=t.holes??[];return n.length===o.length&&n.every((r,i)=>Le(r,o[i]))}function Be(e,t){let n=e.filter(s=>s.type==="section"),o="referenceInventorySource"in t?t.referenceInventorySource?.logicalSectionId:void 0,r=U(t);return(o?n.find(s=>(s.logicalSectionId??s.id)===o&&(Dt(t,s)||W(r,s.outline,s.holes))):void 0)??n.find(s=>W(r,s.outline,s.holes))}function Ge(e){return e.floors&&e.floors.length?e.floors:[{id:"floor-0",name:"Main",objects:e.objects,focalPoint:e.focalPoint,referenceImage:e.referenceImage,backgroundImage:e.backgroundImage}]}function Nt(e,t){let n=Ge(e);return(t?n.find(o=>o.id===t):n[0])?.objects??[]}function ze(e){return e.floors&&e.floors.length?e.floors.flatMap(t=>t.objects):e.objects}function V(e,t,n){let o=i=>({x:i.x+t,y:i.y+n}),r=i=>i.map(o);switch(e.type){case"row":return{...e,origin:o(e.origin)};case"table":case"booth":return{...e,center:o(e.center)};case"gaArea":return{...e,points:r(e.points),...e.holes?{holes:e.holes.map(r)}:{}};case"section":return{...e,outline:r(e.outline),...e.outlinePath?{outlinePath:Ie(e.outlinePath,t,n)}:{},...e.holes?{holes:e.holes.map(r)}:{}};case"text":return{...e,position:o(e.position)};case"shape":return{...e,...e.points?{points:r(e.points)}:{},...e.x!=null?{x:e.x+t}:{},...e.y!=null?{y:e.y+n}:{}};case"decorImage":return{...e,x:e.x+t,y:e.y+n}}}function Ft(e,t=900){if(!e.floors||e.floors.length<2)return e;let n=[];return e.floors.forEach((o,r)=>{let i=-r*t;for(let s of o.objects)n.push(i===0?s:V(s,0,i))}),{...e,objects:n,floors:void 0}}function Ht(e){let t=e.floors;if(!t||t.length<2)return e;let n=Ke(e),o=[];return t.forEach((r,i)=>{let{x:s,y:c}=n[i];for(let l of r.objects)o.push(V(l,s,c))}),{...e,objects:o,floors:void 0,referenceImage:void 0,backgroundImage:void 0}}function Ut(e){let t=e.floors;if(!t||t.length<2)return!1;let n=t.map(l=>q({...e,objects:l.objects,floors:void 0,focalPoint:l.focalPoint,referenceImage:void 0,backgroundImage:void 0}));if(n.some(l=>l.width<=0||l.height<=0))return!1;let[o,...r]=n;if(!r.every(l=>{let y=Math.min(o.x+o.width,l.x+l.width)-Math.max(o.x,l.x),a=Math.min(o.y+o.height,l.y+l.height)-Math.max(o.y,l.y);return y<=0||a<=0?!1:y>=Math.min(o.width,l.width)*.7&&a>=Math.min(o.height,l.height)*.7}))return!1;let s={x:o.x+o.width/2,y:o.y+o.height/2},c=Math.hypot(o.width,o.height)/2;return t.every(l=>l.objects.length?l.objects.filter(a=>{let f=U(a);return Math.hypot(f.x-s.x,f.y-s.y)>=c*.25}).length>=l.objects.length*.6:!1)}function Xt(e){let t=e.floors;if(!t||t.length<2)return e;let n=t.map((l,y)=>({floor:l,index:y,height:l.baseHeightM??0})).sort((l,y)=>l.height-y.height||l.index-y.index),o=q({...e,objects:n[0].floor.objects,floors:void 0,focalPoint:n[0].floor.focalPoint,referenceImage:void 0,backgroundImage:void 0}),r={x:o.x+o.width/2,y:o.y+o.height/2},i=Math.max(48,Math.min(200,Math.max(o.width,o.height)*.06)),s=[],c=0;return n.forEach((l,y)=>{let a=l.floor.objects.map(m=>{let h=U(m);return Math.hypot(h.x-r.x,h.y-r.y)}),f=a.filter(m=>Number.isFinite(m)),u=f.length?Math.min(...f):0,x=f.length?Math.max(...f):0,p=y===0?0:Math.max(0,c+i-u);c=x+p,l.floor.objects.forEach((m,h)=>{if(y>0&&m.type==="shape"&&m.role==="stage")return;if(p===0){s.push(m);return}let d=a[h];if(!Number.isFinite(d)||d<1e-6){s.push(m);return}let g=U(m);s.push(V(m,(g.x-r.x)/d*p,(g.y-r.y)/d*p))})}),{...e,objects:s,floors:void 0,referenceImage:void 0,backgroundImage:void 0}}function Ke(e){let t=e.floors;if(!t?.length)return[{x:0,y:0}];if(t.length<2)return t.map(()=>({x:0,y:0}));let n=t.map(u=>q({...e,objects:u.objects,floors:void 0,focalPoint:u.focalPoint,referenceImage:void 0,backgroundImage:void 0})),o=Math.max(1,...n.map(u=>Math.max(u.width,u.height))),r=Math.max(64,Math.min(240,o*.08)),i=16/10,s=null;for(let u=1;u<=t.length;u+=1){let x=Math.ceil(t.length/u),p=new Array(u).fill(0),m=new Array(x).fill(0);n.forEach((M,P)=>{let w=P%u,S=Math.floor(P/u);p[w]=Math.max(p[w],M.width),m[S]=Math.max(m[S],M.height)});let h=p.reduce((M,P)=>M+P,0)+r*(u-1),d=m.reduce((M,P)=>M+P,0)+r*(x-1),g=u*x-t.length,b=Math.abs(Math.log(h/Math.max(1,d)/i))+g*.04;(!s||b<s.score)&&(s={columns:u,columnWidths:p,rowHeights:m,score:b})}let{columns:c,columnWidths:l,rowHeights:y}=s,a=[],f=[];return l.reduce((u,x,p)=>(a[p]=u,u+x+r),0),y.reduce((u,x,p)=>(f[p]=u,u+x+r),0),t.map((u,x)=>{let p=n[x],m=x%c,h=Math.floor(x/c),d=a[m]+(l[m]-p.width)/2,g=f[h]+(y[h]-p.height)/2;return{x:d-p.x,y:g-p.y}})}function je(e,t,n,o,r,i){let s=[],c=ie(e),l=f=>!f?.eventConfigurationId||f.eventConfigurationId===o,y=f=>!!f&&(!f.eventConfigurationId||f.eventConfigurationId===o),a=(f,u)=>y(f)?{...f,coverage:u}:void 0;for(let f of e){let u=[];if(f.type==="row"?u=pe(f):f.type==="table"?u=Ue(f):f.type==="booth"&&(u=Xe(f)),!u.length)continue;for(let d of u)d.viewUrl&&!l(d.viewMeta)&&(d.viewUrl=void 0,d.viewMeta=void 0);if(f.type==="row"){let d=c.get(f.id);if(d){let g=new Map((f.overrides??[]).map(b=>[b.index,b]));for(let b of u){let M=Number(b.id.slice(b.id.lastIndexOf(":")+1));if(!Number.isInteger(M))continue;b.logicalRowId=d.groupId,b.logicalSeatIndex=d.adjacencyOffset+M,g.get(M)?.displayLabel||(b.displayLabel=ae(f,M,d)),!b.viewUrl&&d.viewFromSeatUrl&&l(d.viewFromSeatMeta)&&(b.viewUrl=d.viewFromSeatUrl,b.viewMeta=d.viewFromSeatMeta);let P=g.get(M)?.confidenceEvidence;b.confidenceEvidence=a(P,"exact-seat")??a(f.confidenceEvidence,"row-representative")??a(d.confidenceEvidence,"row-representative")}}}let x=Be(e,f),p=x?.viewFromSeatUrl,h=(x?.zone?t?.find(d=>d.id===x.zone):void 0)?.focalPoint??n;for(let d of u){if(!d.confidenceEvidence){let g=Number(d.id.slice(d.id.lastIndexOf(":")+1)),b=(f.type==="row"||f.type==="table")&&Number.isInteger(g)?f.overrides?.find(M=>M.index===g)?.confidenceEvidence:void 0;d.confidenceEvidence=a(b,"exact-seat")??(f.type==="row"?a(f.confidenceEvidence,"row-representative"):void 0)}d.confidenceEvidence??=a(x?.confidenceEvidence,"section-representative")??(i?a(i.evidence,i.coverage):void 0),!d.viewUrl&&p&&l(x?.viewFromSeatMeta)&&(d.viewUrl=p,d.viewMeta=x?.viewFromSeatMeta),!d.viewUrl&&r&&l(r.meta)&&(d.viewUrl=r.url,d.viewMeta=r.meta),x&&(d.sectionId=x.logicalSectionId??x.id),x?.zone&&(d.zoneId=x.zone),h&&(d.focalPoint={...h})}s.push(...u)}return s}function Bt(e,t={}){if(e.floors?.length){let o=[];for(let r of e.floors){let i=r.focalPoint??e.focalPoint,s=r.viewFromSeatUrl?{url:r.viewFromSeatUrl,meta:r.viewFromSeatMeta}:e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,c=r.confidenceEvidence?{evidence:r.confidenceEvidence,coverage:"floor-representative"}:e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0,l=je(r.objects,e.zones,i,e.eventConfigurationId,s,c);t.resolveEyeHeights!==!1&&De(r.objects,r.focalPoint??e.focalPoint,r.baseHeightM??0,l),o.push(...l)}return o}let n=je(e.objects,e.zones,e.focalPoint,e.eventConfigurationId,e.viewFromSeatUrl?{url:e.viewFromSeatUrl,meta:e.viewFromSeatMeta}:void 0,e.confidenceEvidence?{evidence:e.confidenceEvidence,coverage:"venue-representative"}:void 0);return t.resolveEyeHeights!==!1&&De(e.objects,e.focalPoint,t.floorBaseHeightM??0,n),n}function De(e,t,n,o){let r=e.filter(a=>a.type==="section"),i=n>0||r.some(a=>a.height!==void 0||a.rake!==void 0||(a.elevation??0)>0);if(!r.length||!i||!t){for(let a of o)a.eyeHeightM=n+K;return}let s=new Array(o.length),c=new Map,l=new Map;for(let a=0;a<o.length;a++){let f=o[a],u=r.find(p=>W({x:f.x,y:f.y},p.outline,p.holes))??null;if(s[a]=u,!u)continue;c.has(u.id)||c.set(u.id,Re(u,{floorBaseHeightM:n}));let x=l.get(u.id);x?x.push(a):l.set(u.id,[a])}let y=new Array(o.length).fill(void 0);for(let[a,f]of l){let u=c.get(a);if(!u)continue;let x=u.rake>0?Math.tan(u.rake*Math.PI/180):0,p=ke(a,o,f,t);for(let m of p.rows){let h=m.blockDepth*z*x,d=u.height+h;for(let g of m.seatIndices)y[g]=d}}for(let a=0;a<o.length;a++){let f=o[a],u=s[a];if(!u){f.eyeHeightM=n+K;continue}let x=c.get(u.id);f.eyeHeightM=(y[a]??x.height)+K}}var Y=40;function q(e){let t=1/0,n=1/0,o=-1/0,r=-1/0,i=(s,c)=>{s<t&&(t=s),c<n&&(n=c),s>o&&(o=s),c>r&&(r=c)};for(let s of ze(e))if(s.type==="row"){let c=new Map((s.overrides??[]).map(l=>[l.index,l]));ye(s).forEach((l,y)=>{let a=c.get(y);a?.skip||i(l.x+(a?.dx??0),l.y+(a?.dy??0))})}else if(s.type==="gaArea")for(let c of s.points)i(c.x,c.y);else if(s.type==="section")for(let c of s.outline)i(c.x,c.y);else if(s.type==="decorImage")i(s.x,s.y),i(s.x+s.width,s.y+s.height);else if(s.type==="shape")if(s.points&&s.points.length)for(let c of s.points)i(c.x,c.y);else s.x!=null&&s.y!=null&&s.width!=null&&s.height!=null&&(i(s.x,s.y),i(s.x+s.width,s.y+s.height));else if(s.type==="table"){let c=N+Tt,l=s.shape==="round"?(s.radius??40)+c:Math.max((s.width??80)/2,(s.height??50)/2)+c;i(s.center.x-l,s.center.y-l),i(s.center.x+l,s.center.y+l)}else if(s.type==="booth"){let c=Math.max(s.width,s.height)/2;i(s.center.x-c,s.center.y-c),i(s.center.x+c,s.center.y+c)}else if(s.type==="text"){let c=te(s);i(s.position.x,s.position.y),i(s.position.x+c.width,s.position.y+c.height)}for(let s of[e.referenceImage,e.backgroundImage]){if(!s)continue;let{center:c,width:l}=s,y=l*3/4;i(c.x-l/2,c.y-y/2),i(c.x+l/2,c.y+y/2)}if(!isFinite(t)){let s=e.focalPoint??{x:0,y:0};return{x:s.x-200,y:s.y-200,width:400,height:400}}return{x:t-Y,y:n-Y,width:o-t+Y*2,height:r-n+Y*2}}function Gt(e,t=0){let n=Math.max(1,e.width,e.height),o={x:e.x+e.width/2,y:e.y+e.height/2},r=n*1.55,i=Math.max(n*.82,Math.max(0,t)+n*.45);return{target:o,distance:r,height:i,focalLength:Math.hypot(r,i),yawRad:-8*Math.PI/180}}function Q(e,t,n=0){let o=t.x-e.target.x,r=t.y-e.target.y,i=Math.cos(e.yawRad),s=Math.sin(e.yawRad),c=o*i-r*s,y=o*s+r*i-e.distance,a=n-e.height,f=Math.hypot(e.distance,e.height),u=(-e.distance*y-e.height*a)/f,x=(-e.height*y+e.distance*a)/f,p=Math.max(f*.08,u),m=e.focalLength/p;return{x:e.target.x+c*m,y:e.target.y-x*m,depth:p,scale:m}}function zt(e,t){return{x:e.a*t.x+e.c*t.y+e.e,y:e.b*t.x+e.d*t.y+e.f}}function Kt(e){let t=e.a*e.d-e.b*e.c;if(!Number.isFinite(t)||Math.abs(t)<1e-9)throw new Error("perspective projection produced a singular affine");let n=e.d/t,o=-e.b/t,r=-e.c/t,i=e.a/t;return{a:n,b:o,c:r,d:i,e:-(n*e.e+r*e.f),f:-(o*e.e+i*e.f)}}function Yt(e,t){return{a:e.a*t.a+e.c*t.b,b:e.b*t.a+e.d*t.b,c:e.a*t.c+e.c*t.d,d:e.b*t.c+e.d*t.d,e:e.a*t.e+e.c*t.f+e.e,f:e.b*t.e+e.d*t.f+e.f}}function $t(e,t,n=()=>0){let o=Q(e,t,n(t)),r={x:t.x+1,y:t.y},i={x:t.x,y:t.y+1},s=Q(e,r,n(r)),c=Q(e,i,n(i)),l=s.x-o.x,y=s.y-o.y,a=c.x-o.x,f=c.y-o.y;return{a:l,b:y,c:a,d:f,e:o.x-l*t.x-a*t.y,f:o.y-y*t.x-f*t.y}}function Wt(e){let t=Math.hypot(e.a,e.b),n=e.a*e.d-e.b*e.c;return{rotationDeg:Math.atan2(e.b,e.a)*180/Math.PI,scaleX:t,scaleY:n/Math.max(t,1e-9),skewX:(e.a*e.c+e.b*e.d)/Math.max(n,1e-9)}}var Ye=9;function Vt(e){if(e.kind==="circle")return{hx:e.r,hy:e.r};let t=e.width/2,n=e.height/2,o=e.rotation??0;if(!o)return{hx:t,hy:n};let r=o*Math.PI/180,i=Math.abs(Math.cos(r)),s=Math.abs(Math.sin(r));return{hx:t*i+n*s,hy:t*s+n*i}}function qt(e,t,n){let o=t-e.seat.x,r=n-e.seat.y;if(e.shape.kind==="circle")return o*o+r*r<=e.shape.r*e.shape.r;let i=e.shape.rotation??0,s=o,c=r;if(i){let l=-i*Math.PI/180,y=Math.cos(l),a=Math.sin(l);s=o*y-r*a,c=o*a+r*y}return Math.abs(s)<=e.shape.width/2&&Math.abs(c)<=e.shape.height/2}function Qt(e,t,n,o,r){if(e.shape.kind==="circle"){let p=Math.min(Math.max(e.seat.x,t),o),m=Math.min(Math.max(e.seat.y,n),r),h=e.seat.x-p,d=e.seat.y-m;return h*h+d*d<=e.shape.r*e.shape.r}let i=e.shape.rotation??0;if(!i)return e.seat.x-e.hx<=o&&e.seat.x+e.hx>=t&&e.seat.y-e.hy<=r&&e.seat.y+e.hy>=n;let s=i*Math.PI/180,c=Math.cos(s),l=Math.sin(s),y=e.shape.width/2,a=e.shape.height/2,f=[[-y,-a],[y,-a],[y,a],[-y,a]].map(([p,m])=>[e.seat.x+p*c-m*l,e.seat.y+p*l+m*c]),u=[[t,n],[o,n],[o,r],[t,r]],x=[[1,0],[0,1],[c,l],[-l,c]];for(let[p,m]of x){let h=1/0,d=-1/0;for(let[M,P]of f){let w=M*p+P*m;w<h&&(h=w),w>d&&(d=w)}let g=1/0,b=-1/0;for(let[M,P]of u){let w=M*p+P*m;w<g&&(g=w),w>b&&(b=w)}if(d<g||b<h)return!1}return!0}function Zt(e,t={}){let n=t.seatRadius??Ye,o=e.length,r=new Array(o),i=1/0,s=1/0,c=-1/0,l=-1/0,y=0;for(let w=0;w<o;w++){let S=e[w],E=t.shapeOf?.(S)??{kind:"circle",r:n},{hx:I,hy:v}=Vt(E);r[w]={seat:S,shape:E,hx:I,hy:v},S.x-I<i&&(i=S.x-I),S.y-v<s&&(s=S.y-v),S.x+I>c&&(c=S.x+I),S.y+v>l&&(l=S.y+v),I>y&&(y=I),v>y&&(y=v)}o===0&&(i=0,s=0,c=0,l=0);let a=y>0?y*4:1,f=Math.max(c-i,0),u=Math.max(l-s,0),x=Math.max(64,t.maxCells??o*4),p=a,m=Math.max(1,Math.ceil(f/p)||1),h=Math.max(1,Math.ceil(u/p)||1);for(;m*h>x&&(m>1||h>1);)p*=2,m=Math.max(1,Math.ceil(f/p)||1),h=Math.max(1,Math.ceil(u/p)||1);let d=m*h,g=new Int32Array(d+1),b=0;for(let w=0;w<o;w++){let S=r[w],E=L(Math.floor((S.seat.x-S.hx-i)/p),0,m-1),I=L(Math.floor((S.seat.x+S.hx-i)/p),0,m-1),v=L(Math.floor((S.seat.y-S.hy-s)/p),0,h-1),A=L(Math.floor((S.seat.y+S.hy-s)/p),0,h-1);for(let R=v;R<=A;R++)for(let O=E;O<=I;O++)g[R*m+O+1]++,b++}for(let w=0;w<d;w++)g[w+1]+=g[w];let M=new Int32Array(b),P=g.slice(0,d);for(let w=0;w<o;w++){let S=r[w],E=L(Math.floor((S.seat.x-S.hx-i)/p),0,m-1),I=L(Math.floor((S.seat.x+S.hx-i)/p),0,m-1),v=L(Math.floor((S.seat.y-S.hy-s)/p),0,h-1),A=L(Math.floor((S.seat.y+S.hy-s)/p),0,h-1);for(let R=v;R<=A;R++)for(let O=E;O<=I;O++){let T=R*m+O;M[P[T]++]=w}}return{seats:e,entries:r,minX:i,minY:s,cell:p,cols:m,rows:h,cellStart:g,items:M,stamp:new Int32Array(o),epoch:0}}function Jt(e,t,n={}){let{cols:o,rows:r,cell:i,minX:s,minY:c,cellStart:l,items:y,entries:a}=e,f=Math.floor((t.x-s)/i),u=Math.floor((t.y-c)/i);if(f<0||u<0||f>=o||u>=r)return null;let x=u*o+f,p=l[x+1],m=-1,h=1/0;for(let d=l[x];d<p;d++){let g=y[d],b=a[g];if(n.filter&&!n.filter(b.seat.id,b.seat)||!qt(b,t.x,t.y))continue;let M=t.x-b.seat.x,P=t.y-b.seat.y,w=M*M+P*P;(w<h||w===h&&g<m)&&(h=w,m=g)}return m<0?null:a[m].seat.id}function en(e,t,n,o={}){if(!(n>0))return null;let{cols:r,rows:i,cell:s,minX:c,minY:l,cellStart:y,items:a,entries:f}=e,u=Math.max(0,Math.floor((t.x-n-c)/s)),x=Math.min(r-1,Math.floor((t.x+n-c)/s)),p=Math.max(0,Math.floor((t.y-n-l)/s)),m=Math.min(i-1,Math.floor((t.y+n-l)/s));if(u>x||p>m)return null;let h=-1,d=n*n,g=e.stamp,b=++e.epoch;for(let M=p;M<=m;M++){let P=M*r;for(let w=u;w<=x;w++){let S=P+w,E=y[S+1];for(let I=y[S];I<E;I++){let v=a[I];if(g[v]===b)continue;g[v]=b;let A=f[v];if(o.filter&&!o.filter(A.seat.id,A.seat))continue;let R=t.x-A.seat.x,O=t.y-A.seat.y,T=R*R+O*O;(T<d||T===d&&v<h)&&(d=T,h=v)}}}return h<0?null:f[h].seat.id}function tn(e,t,n={}){let o=Math.min(t.x,t.x+t.width),r=Math.max(t.x,t.x+t.width),i=Math.min(t.y,t.y+t.height),s=Math.max(t.y,t.y+t.height),c=n.mode??"center",{cols:l,rows:y,cell:a,minX:f,minY:u,cellStart:x,items:p,entries:m}=e,h=Math.max(0,Math.floor((o-f)/a)),d=Math.min(l-1,Math.floor((r-f)/a)),g=Math.max(0,Math.floor((i-u)/a)),b=Math.min(y-1,Math.floor((s-u)/a));if(h>d||g>b)return[];let M=[],P=e.stamp,w=++e.epoch;for(let S=g;S<=b;S++){let E=S*l;for(let I=h;I<=d;I++){let v=E+I,A=x[v+1];for(let R=x[v];R<A;R++){let O=p[R];if(P[O]===w)continue;P[O]=w;let T=m[O];if(n.filter&&!n.filter(T.seat.id,T.seat))continue;(c==="center"?T.seat.x>=o&&T.seat.x<=r&&T.seat.y>=i&&T.seat.y<=s:Qt(T,o,i,r,s))&&M.push(O)}}}return M.sort((S,E)=>S-E),M.map(S=>m[S].seat.id)}function nn(e){let t=e.cols*e.rows,n=0,o=0;for(let i=0;i<t;i++){let s=e.cellStart[i+1]-e.cellStart[i];s>0&&n++,s>o&&(o=s)}let r=e.items.length;return{cell:e.cell,cols:e.cols,rows:e.rows,cells:t,occupiedCells:n,refs:r,maxPerCell:o,meanPerOccupiedCell:n?r/n:0}}0&&(module.exports={DEFAULT_SEAT_RADIUS,TABLE_SEAT_OFFSET,TEXT_BACKGROUND_PADDING_MAX,TEXT_BACKGROUND_RADIUS_MAX,TEXT_LETTER_SPACING_MAX,TEXT_LETTER_SPACING_MIN,TEXT_LINE_HEIGHT_MAX,TEXT_LINE_HEIGHT_MIN,TEXT_OPACITY_MIN,TEXT_WIDTH_MAX,TEXT_WIDTH_MIN,allObjects,applyAffine,buildAisleHoles,buildSeatIndex,buildSectionShell,chartBounds,composeAffine,createPerspectiveCamera,cubicPoint,decomposeAffineLinear,distanceToRings,distributeAlongCubic,expandBooth,expandChart,expandRow,expandRowSlots,expandTable,expandTableSlots,floorObjects,floorOverviewTranslations,floorsOf,floorsShareFootprint,gridStats,hitTest,invertAffine,layoutFloorOverview,layoutFloorRings,nearestWithin,objectCenter,owningSectionForObject,perspectiveTangentAffine,pointInPolygon,pointInPolygonWithHoles,polygonArea,polygonInscribedAnchor,polygonLabelPoint,polygonNetArea,projectPerspectivePoint,queryRect,resolveSegmentedRowGroups,rowInventoryCount,rowSeatPositions,segmentedRowComponentSeats,segmentedRowComponents,segmentedRowSeatTotal,smoothCubicThroughMiddle,stackFloors,tableInventoryCount,tableSeatCountsBySide,textLayoutMetrics,translateObject});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as Point,
|
|
2
|
-
export { E as ExpandChartOptions, R as RowSeatSlot, T as
|
|
3
|
-
export { a as SegmentedRowComponent, S as SegmentedRowPlacement, r as resolveSegmentedRowGroups, s as segmentedRowComponentSeats, b as segmentedRowComponents, c as segmentedRowSeatTotal } from '../../segmentedRowModel-
|
|
4
|
-
import { E as ExpandedSeat } from '../../renderer-
|
|
1
|
+
import { P as Point, t as CubicPath, u as TextObject } from '../../types-D_pq-iqz.cjs';
|
|
2
|
+
export { E as ExpandChartOptions, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, a as TableSeatSlot, b as allObjects, c as chartBounds, e as expandBooth, d as expandChart, f as expandRow, g as expandRowSlots, h as expandTable, i as expandTableSlots, j as floorObjects, k as floorOverviewTranslations, l as floorsOf, m as floorsShareFootprint, n as layoutFloorOverview, o as layoutFloorRings, p as objectCenter, q as owningSectionForObject, r as pointInPolygon, s as pointInPolygonWithHoles, t as polygonLabelPoint, u as rowInventoryCount, v as rowSeatPositions, w as stackFloors, x as tableInventoryCount, y as tableSeatCountsBySide, z as translateObject } from '../../layout-CGKQ3Pi2.cjs';
|
|
3
|
+
export { a as SegmentedRowComponent, S as SegmentedRowPlacement, r as resolveSegmentedRowGroups, s as segmentedRowComponentSeats, b as segmentedRowComponents, c as segmentedRowSeatTotal } from '../../segmentedRowModel-Cgp4cK2q.cjs';
|
|
4
|
+
import { E as ExpandedSeat } from '../../renderer-Bq6tKuUD.cjs';
|
|
5
5
|
|
|
6
6
|
type SectionShellMode = 'auto' | 'rectangle' | 'tapered' | 'bezier';
|
|
7
7
|
declare function cubicPoint(path: CubicPath, t: number): Point;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as Point,
|
|
2
|
-
export { E as ExpandChartOptions, R as RowSeatSlot, T as
|
|
3
|
-
export { a as SegmentedRowComponent, S as SegmentedRowPlacement, r as resolveSegmentedRowGroups, s as segmentedRowComponentSeats, b as segmentedRowComponents, c as segmentedRowSeatTotal } from '../../segmentedRowModel-
|
|
4
|
-
import { E as ExpandedSeat } from '../../renderer-
|
|
1
|
+
import { P as Point, t as CubicPath, u as TextObject } from '../../types-D_pq-iqz.js';
|
|
2
|
+
export { E as ExpandChartOptions, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, a as TableSeatSlot, b as allObjects, c as chartBounds, e as expandBooth, d as expandChart, f as expandRow, g as expandRowSlots, h as expandTable, i as expandTableSlots, j as floorObjects, k as floorOverviewTranslations, l as floorsOf, m as floorsShareFootprint, n as layoutFloorOverview, o as layoutFloorRings, p as objectCenter, q as owningSectionForObject, r as pointInPolygon, s as pointInPolygonWithHoles, t as polygonLabelPoint, u as rowInventoryCount, v as rowSeatPositions, w as stackFloors, x as tableInventoryCount, y as tableSeatCountsBySide, z as translateObject } from '../../layout-CVumqAiR.js';
|
|
3
|
+
export { a as SegmentedRowComponent, S as SegmentedRowPlacement, r as resolveSegmentedRowGroups, s as segmentedRowComponentSeats, b as segmentedRowComponents, c as segmentedRowSeatTotal } from '../../segmentedRowModel-lcp9clIL.js';
|
|
4
|
+
import { E as ExpandedSeat } from '../../renderer-DwYiuiuC.js';
|
|
5
5
|
|
|
6
6
|
type SectionShellMode = 'auto' | 'rectangle' | 'tapered' | 'bezier';
|
|
7
7
|
declare function cubicPoint(path: CubicPath, t: number): Point;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as X,b as Y,c as Z,d as _,e as $,f as oo,g as ro,h as eo,i as fo,j as mo,k as po,l as to,m as xo}from"../../chunk-DFNYIQY3.js";import{Aa as N,Ba as O,Ca as P,Da as Q,Ea as R,Fa as S,Ga as T,Ha as U,Ia as V,J as q,Ja as W,K as s,L as u,M as v,a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,ka as w,la as y,ma as z,n as c,na as A,o as d,oa as B,p as g,pa as C,q as h,qa as D,r as i,ra as E,s as j,sa as F,t as k,ta as G,u as l,ua as H,v as n,va as I,wa as J,xa as K,ya as L,za as M}from"../../chunk-RZLIIQDP.js";export{X as DEFAULT_SEAT_RADIUS,w as TABLE_SEAT_OFFSET,x as TEXT_BACKGROUND_PADDING_MAX,a as TEXT_BACKGROUND_RADIUS_MAX,p as TEXT_LETTER_SPACING_MAX,m as TEXT_LETTER_SPACING_MIN,f as TEXT_LINE_HEIGHT_MAX,e as TEXT_LINE_HEIGHT_MIN,t as TEXT_OPACITY_MIN,r as TEXT_WIDTH_MAX,o as TEXT_WIDTH_MIN,O as allObjects,fo as applyAffine,i as buildAisleHoles,Y as buildSeatIndex,h as buildSectionShell,W as chartBounds,po as composeAffine,ro as createPerspectiveCamera,c as cubicPoint,xo as decomposeAffineLinear,j as distanceToRings,g as distributeAlongCubic,G as expandBooth,V as expandChart,B as expandRow,A as expandRowSlots,F as expandTable,D as expandTableSlots,N as floorObjects,U as floorOverviewTranslations,M as floorsOf,S as floorsShareFootprint,oo as gridStats,Z as hitTest,mo as invertAffine,R as layoutFloorOverview,T as layoutFloorRings,_ as nearestWithin,K as objectCenter,L as owningSectionForObject,to as perspectiveTangentAffine,H as pointInPolygon,I as pointInPolygonWithHoles,k as polygonArea,n as polygonInscribedAnchor,J as polygonLabelPoint,l as polygonNetArea,eo as projectPerspectivePoint,$ as queryRect,v as resolveSegmentedRowGroups,z as rowInventoryCount,y as rowSeatPositions,s as segmentedRowComponentSeats,q as segmentedRowComponents,u as segmentedRowSeatTotal,d as smoothCubicThroughMiddle,Q as stackFloors,E as tableInventoryCount,C as tableSeatCountsBySide,b as textLayoutMetrics,P as translateObject};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var V=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var he=Object.prototype.hasOwnProperty;var Le=(t,n)=>{for(var o in n)V(t,o,{get:n[o],enumerable:!0})},ye=(t,n,o,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of fe(n))!he.call(t,a)&&a!==o&&V(t,a,{get:()=>n[a],enumerable:!(s=pe(n,a))||s.enumerable});return t};var xe=t=>ye(V({},"__esModule",{value:!0}),t);var Ge={};Le(Ge,{ACCESS_GLYPH_PATH:()=>Ee,ACCESS_GLYPH_VIEWBOX:()=>Ce,ACCESS_TYPE_GLYPH_PATHS:()=>K,AUTHORED_LABEL_MIN_CONTRAST:()=>Ne,BOOTH_LABEL_FONT_SIZE:()=>Ie,DARK_BOOKABLE_LABEL_INK:()=>S,DARK_NEUTRAL_SECTION_FILL:()=>ae,GA_CAPACITY_LABEL_FONT_SIZE:()=>Se,GA_FILL_OPACITY:()=>we,GA_LABEL_FONT_SIZE:()=>ke,LARGE_TEXT_CONTRAST:()=>re,LIGHT_BOOKABLE_LABEL_INK:()=>w,LIGHT_NEUTRAL_SECTION_FILL:()=>se,MIN_VISIBLE_BOOKABLE_LABEL_PX:()=>T,RENDERED_QUALITY_REPORT_VERSION:()=>ue,SEAT_LABEL_FONT_SIZE:()=>Re,SMALL_TEXT_CONTRAST:()=>P,accessGlyphInk:()=>Oe,accessGlyphPath:()=>_e,bookableMarkerLabel:()=>Fe,compositeHexOver:()=>Pe,inspectRenderedQualityEvidence:()=>Ve,isBookableLabelLegibleAtScale:()=>Be,isLightFill:()=>oe,minimumTextContrast:()=>Me,neutralSectionFill:()=>He,renderedTextContrast:()=>d,stateAwareBookableLabelInk:()=>ie,summarizeLabelInkContrast:()=>Ze});module.exports=xe(Ge);var ve=/^#?([\da-f]{3}|[\da-f]{6})$/i;function x(t){let n=ve.exec((t??"").trim());if(!n)return null;let o=n[1].length===3?n[1].split("").map(a=>a+a).join(""):n[1],s=parseInt(o,16);return[s>>16&255,s>>8&255,s&255]}function G(t){let n=t/255;return n<=.04045?n/12.92:((n+.055)/1.055)**2.4}function F(t){return .2126*G(t[0])+.7152*G(t[1])+.0722*G(t[2])}function te(t,n){let o=x(t),s=x(n);if(!o||!s)return null;let a=F(o),u=F(s);return(Math.max(a,u)+.05)/(Math.min(a,u)+.05)}var Re=7,Ie=10,ke=15,Se=11,we=.85,T=12,P=4.5,re=3,S="#000000",w="#ffffff",Te=24,Ae=18.67;function Me(t,n=400){return t>=Te||n>=700&&t>=Ae?re:P}function Be(t,n){return t*n>=T}var Ce=24,K={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"},Ee=K.wheelchair;function _e(t){if(!t?.length)return null;let n=t.includes("wheelchair")?"wheelchair":t[0];return K[n]??null}function Fe(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var d=te;function Pe(t,n,o){let s=x(t),a=x(n);if(!s||!a)return n;let u=Math.max(0,Math.min(1,o));return`#${s.map((p,A)=>Math.round(p*u+a[A]*(1-u))).map(p=>p.toString(16).padStart(2,"0")).join("")}`}var Ne=3;function ie(t,n,o=P){let s=d(n,t);if(s!=null&&s>=o)return n;let a=d(S,t)??0,u=d(w,t)??0;return a===0&&u===0?n:a>=u?S:w}var ze=3;function Oe(t){let n=d("#ffffff",t);if(n!=null&&n>=ze)return"#ffffff";let o=d(S,t)??0,s=d(w,t)??0;return o===0&&s===0?"#ffffff":o>=s?S:w}var ne=/^#[0-9a-f]{6}$/i;function oe(t){let n=x(t);return n!=null&&F(n)>.5}var se="#e5e7eb",ae="#273142";function He(t){return oe(t)?se:ae}function Ze(t,n,o=P){let s=ne.test(t.trim()),a=t.trim().toLowerCase(),u=0,m=0,p=null;for(let M of n){if(!s||!ne.test(M.trim()))continue;u+=1;let B=ie(M,t,o);B.toLowerCase()!==a&&(m+=1,p=B)}return{total:u,overridden:m,status:u===0?"none":m===0?"applies":m===u?"overridden":"mixed",overrideInk:p}}var ue=3,v=4.5,N=3,le=24,Qe=20;function $(t){return t.filter(n=>n.visible&&!!n.screenBox)}function R(t,n){return t.x<n.x+n.width&&t.x+t.width>n.x&&t.y<n.y+n.height&&t.y+t.height>n.y}function g(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function c(t,n,o){return o.length?{code:t,message:n,count:o.length,samples:o.slice(0,Qe)}:null}function z(t,n,o){return{primaryId:t.seatId,primaryLabel:t.label,...n==null?{}:{measured:Math.round(n*100)/100},...o==null?{}:{minimum:o}}}function U(t,n,o){return{primaryId:t.id,primaryLabel:t.label,...n==null?{}:{measured:Math.round(n*100)/100},...o==null?{}:{minimum:o}}}function ce(t,n,o){return{primaryId:t.objectId,primaryLabel:t.text,...n==null?{}:{measured:Math.round(n*100)/100},...o==null?{}:{minimum:o}}}function I(t,n,o,s){return{primaryId:t,primaryLabel:n,secondaryId:o,secondaryLabel:s}}function Ve(t,n="overview",o=null){let s=$(t.labels),a=$(t.hierarchyLabels),u=$(t.freeTextLabels),m=t.gaAreas.filter(e=>e.visible),p=s.map(e=>d(e.ink,e.fill)??0),A=a.map(e=>d(e.ink,e.fill)??0),M=u.map(e=>d(e.ink,e.background)??0),B=m.map(e=>d(e.effectiveBackground,t.canvasBackground)??0),b=o?t.labels.filter(e=>e.categoryKey===o):t.labels,h=o?t.gaAreas.filter(e=>e.categoryKey===o):t.gaAreas,f=b.filter(e=>e.selected),L=b.filter(e=>e.status==="held"),y=b.filter(e=>e.status==="booked"),C=b.filter(e=>e.pointerTarget.active),j=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)]),E=f.length?g(f.flatMap(e=>[d(t.selectionRingColor,t.canvasBackground)??0,d(t.selectionRingColor,e.fill)??0])):null,l=[],k=(e,r)=>Array.from({length:e},(O,_)=>({primaryId:`overview:${_+1}`,primaryLabel:r}));if(n==="overview"&&t.rung==="sections"&&(l.push(c("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",k(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),l.push(c("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",k(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),l.push(c("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",k(t.overviewStyle.visibleSectionRowHints,"section row hint"))),l.push(c("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),l.push(c("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")))),l.push(c("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",s.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>z(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),n==="interaction"){let e=b.length>0,r=h.length>0,O=e||r,_=h.filter(i=>i.visible),de=new Set([...b.flatMap(i=>i.sectionId?[i.sectionId]:[]),...h.flatMap(i=>i.sectionId?[i.sectionId]:[])]),be=new Set([...t.labels.map(i=>i.categoryKey),...t.gaAreas.map(i=>i.categoryKey)]),H=i=>i.screenCenter.x>=0&&i.screenCenter.x<=t.viewport.width&&i.screenCenter.y>=0&&i.screenCenter.y<=t.viewport.height;l.push(c("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",O&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),l.push(c("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",O&&!b.some(H)&&!_.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),l.push(c("pointer-target-inactive","Interaction evidence must expose a live production pointer target",e&&!C.some(H)||!e&&r&&!_.some(i=>i.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),l.push(c("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",C.filter(i=>H(i)&&i.pointerTarget.effectiveMinimumPx<le).map(i=>z(i,i.pointerTarget.effectiveMinimumPx,le)))),l.push(c("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",e&&(!f.length||!f.some(i=>t.selectionRingSeatIds.includes(i.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),l.push(c("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the canvas",f.length&&(E??0)<N?[{primaryId:f[0].seatId,primaryLabel:f[0].label,measured:Math.round((E??0)*100)/100,minimum:N}]:[])),l.push(c("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",b.length>=2&&!L.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),l.push(c("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",b.length>=3&&!y.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let me=new Set(L.map(i=>`${i.fill.toLowerCase()}:${i.opacity}`)),ge=new Set(y.map(i=>`${i.fill.toLowerCase()}:${i.opacity}`));l.push(c("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",L.length&&y.length&&[...me].some(i=>ge.has(i))?[{primaryId:L[0].seatId,primaryLabel:L[0].label,secondaryId:y[0].seatId,secondaryLabel:y[0].label}]:[])),l.push(c("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",de.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),l.push(c("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",be.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let Z=t.labels.filter(i=>i.status==="free"&&!i.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(i.categoryKey)),Q=t.gaAreas.filter(i=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(i.categoryKey));l.push(c("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(Z.length||Q.length)&&!Z.some(i=>i.opacity<=.25)&&!Q.some(i=>i.opacity<=.1)?[...Z.map(i=>z(i,i.opacity)),...Q.map(i=>({primaryId:i.areaId,primaryLabel:i.label,measured:i.opacity}))]:[])),l.push(c("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",o&&!j.has(o)?[{primaryId:o,primaryLabel:o}]:[])),l.push(c("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",o&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==o)?[{primaryId:o,primaryLabel:o}]:[]))}l.push(c("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",s.flatMap(e=>{let r=d(e.ink,e.fill)??0;return r<v?[z(e,r,v)]:[]})));let X=[];for(let e=0;e<s.length;e+=1)for(let r=0;r<e;r+=1)R(s[e].screenBox,s[r].screenBox)&&X.push(I(s[r].seatId,s[r].label,s[e].seatId,s[e].label));l.push(c("bookable-label-collision","Visible bookable labels must not overlap",X)),l.push(c("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",a.filter(e=>e.renderedFontPx<T).map(e=>U(e,e.renderedFontPx,T)))),l.push(c("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",a.flatMap(e=>{let r=d(e.ink,e.fill)??0;return r<v?[U(e,r,v)]:[]}))),l.push(c("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",a.filter(e=>e.kind==="section"&&e.fitsContainer===!1).map(e=>U(e))));let D=[];for(let e=0;e<a.length;e+=1)for(let r=0;r<e;r+=1)R(a[e].screenBox,a[r].screenBox)&&D.push(I(a[r].id,a[r].label,a[e].id,a[e].label));l.push(c("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",D));let Y=[];for(let e of a)for(let r of s)R(e.screenBox,r.screenBox)&&Y.push(I(e.id,e.label,r.seatId,r.label));l.push(c("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",Y)),l.push(c("free-text-undersized","Visible chart text must meet the rendered small-text size floor",u.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>ce(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),l.push(c("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",u.flatMap(e=>{let r=d(e.ink,e.background)??0;return r<v?[ce(e,r,v)]:[]})));let W=[];for(let e=0;e<u.length;e+=1)for(let r=0;r<e;r+=1)R(u[e].screenBox,u[r].screenBox)&&W.push(I(u[r].objectId,u[r].text,u[e].objectId,u[e].text));l.push(c("free-text-collision","Visible chart text labels must not overlap each other",W));let J=[];for(let e of u)for(let r of s)R(e.screenBox,r.screenBox)&&J.push(I(e.objectId,e.text,r.seatId,r.label));l.push(c("free-text-bookable-collision","Visible chart text must not overlap bookable labels",J));let q=[];for(let e of u)for(let r of a)R(e.screenBox,r.screenBox)&&q.push(I(e.objectId,e.text,r.id,r.label));l.push(c("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",q)),l.push(c("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",m.flatMap(e=>{let r=d(e.effectiveBackground,t.canvasBackground)??0;return r<N?[{primaryId:e.areaId,primaryLabel:e.label,measured:Math.round(r*100)/100,minimum:N}]:[]})));let ee=l.filter(e=>!!e);return{version:ue,passed:ee.length===0,state:n,targetCategoryKey:o,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...n==="interaction"?["rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:s.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:a.length,visibleFreeTextLabels:u.length,visibleGAAreas:m.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,r)=>e.kind.localeCompare(r.kind)||e.id.localeCompare(r.id)),labelledObjects:t.freeTextLabels.map(e=>({objectId:e.objectId,kind:e.kind,text:e.text,visible:e.visible})).sort((e,r)=>e.objectId.localeCompare(r.objectId)||e.kind.localeCompare(r.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,r)=>e.areaId.localeCompare(r.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:[...j].sort()},metrics:{minimumRenderedBookableLabelPx:g(s.map(e=>e.renderedFontPx)),minimumBookableLabelContrast:g(p),minimumRenderedHierarchyLabelPx:g(a.map(e=>e.renderedFontPx)),minimumHierarchyLabelContrast:g(A),minimumRenderedFreeTextPx:g(u.map(e=>e.renderedFontPx)),minimumFreeTextContrast:g(M),minimumGAContrast:g(B),minimumEffectivePointerTargetPx:g(C.map(e=>e.pointerTarget.effectiveMinimumPx)),selectedRingContrast:E==null?null:Math.round(E*100)/100},interaction:{applicable:{detail:b.length>0||h.length>0,pointer:b.length>0||h.length>0,held:b.length>=2,booked:b.length>=3,sectionFocus:b.some(e=>!!e.sectionId)||h.some(e=>!!e.sectionId),categoryFilter:new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)]).size>=2},selectedUnits:f.length,heldUnits:L.length,bookedUnits:y.length,activePointerTargets:C.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:ee}}0&&(module.exports={ACCESS_GLYPH_PATH,ACCESS_GLYPH_VIEWBOX,ACCESS_TYPE_GLYPH_PATHS,AUTHORED_LABEL_MIN_CONTRAST,BOOTH_LABEL_FONT_SIZE,DARK_BOOKABLE_LABEL_INK,DARK_NEUTRAL_SECTION_FILL,GA_CAPACITY_LABEL_FONT_SIZE,GA_FILL_OPACITY,GA_LABEL_FONT_SIZE,LARGE_TEXT_CONTRAST,LIGHT_BOOKABLE_LABEL_INK,LIGHT_NEUTRAL_SECTION_FILL,MIN_VISIBLE_BOOKABLE_LABEL_PX,RENDERED_QUALITY_REPORT_VERSION,SEAT_LABEL_FONT_SIZE,SMALL_TEXT_CONTRAST,accessGlyphInk,accessGlyphPath,bookableMarkerLabel,compositeHexOver,inspectRenderedQualityEvidence,isBookableLabelLegibleAtScale,isLightFill,minimumTextContrast,neutralSectionFill,renderedTextContrast,stateAwareBookableLabelInk,summarizeLabelInkContrast});
|
|
1
|
+
"use strict";var V=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var he=Object.prototype.hasOwnProperty;var Le=(t,n)=>{for(var o in n)V(t,o,{get:n[o],enumerable:!0})},ye=(t,n,o,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of fe(n))!he.call(t,a)&&a!==o&&V(t,a,{get:()=>n[a],enumerable:!(s=pe(n,a))||s.enumerable});return t};var xe=t=>ye(V({},"__esModule",{value:!0}),t);var Ke={};Le(Ke,{ACCESS_GLYPH_PATH:()=>Ee,ACCESS_GLYPH_VIEWBOX:()=>_e,ACCESS_TYPE_GLYPH_PATHS:()=>K,AUTHORED_LABEL_MIN_CONTRAST:()=>ze,BOOTH_LABEL_FONT_SIZE:()=>ke,DARK_BOOKABLE_LABEL_INK:()=>S,DARK_NEUTRAL_SECTION_FILL:()=>ae,GA_CAPACITY_LABEL_FONT_SIZE:()=>Te,GA_FILL_OPACITY:()=>we,GA_LABEL_FONT_SIZE:()=>Se,LARGE_TEXT_CONTRAST:()=>re,LIGHT_BOOKABLE_LABEL_INK:()=>T,LIGHT_NEUTRAL_SECTION_FILL:()=>se,MIN_VISIBLE_BOOKABLE_LABEL_PX:()=>w,RENDERED_QUALITY_REPORT_VERSION:()=>ue,ROW_LABEL_FONT_SIZE:()=>Ie,SEAT_LABEL_FONT_SIZE:()=>Re,SMALL_TEXT_CONTRAST:()=>P,accessGlyphInk:()=>Ze,accessGlyphPath:()=>Fe,bookableMarkerLabel:()=>Pe,compositeHexOver:()=>Ne,inspectRenderedQualityEvidence:()=>Ge,isBookableLabelLegibleAtScale:()=>Ce,isLightFill:()=>oe,minimumTextContrast:()=>Be,neutralSectionFill:()=>He,renderedTextContrast:()=>d,stateAwareBookableLabelInk:()=>ie,summarizeLabelInkContrast:()=>Qe});module.exports=xe(Ke);var ve=/^#?([\da-f]{3}|[\da-f]{6})$/i;function x(t){let n=ve.exec((t??"").trim());if(!n)return null;let o=n[1].length===3?n[1].split("").map(a=>a+a).join(""):n[1],s=parseInt(o,16);return[s>>16&255,s>>8&255,s&255]}function G(t){let n=t/255;return n<=.04045?n/12.92:((n+.055)/1.055)**2.4}function F(t){return .2126*G(t[0])+.7152*G(t[1])+.0722*G(t[2])}function te(t,n){let o=x(t),s=x(n);if(!o||!s)return null;let a=F(o),u=F(s);return(Math.max(a,u)+.05)/(Math.min(a,u)+.05)}var Re=7,Ie=10,ke=10,Se=15,Te=11,we=.85,w=12,P=4.5,re=3,S="#000000",T="#ffffff",Ae=24,Me=18.67;function Be(t,n=400){return t>=Ae||n>=700&&t>=Me?re:P}function Ce(t,n){return t*n>=w}var _e=24,K={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"},Ee=K.wheelchair;function Fe(t){if(!t?.length)return null;let n=t.includes("wheelchair")?"wheelchair":t[0];return K[n]??null}function Pe(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var d=te;function Ne(t,n,o){let s=x(t),a=x(n);if(!s||!a)return n;let u=Math.max(0,Math.min(1,o));return`#${s.map((p,A)=>Math.round(p*u+a[A]*(1-u))).map(p=>p.toString(16).padStart(2,"0")).join("")}`}var ze=3;function ie(t,n,o=P){let s=d(n,t);if(s!=null&&s>=o)return n;let a=d(S,t)??0,u=d(T,t)??0;return a===0&&u===0?n:a>=u?S:T}var Oe=3;function Ze(t){let n=d("#ffffff",t);if(n!=null&&n>=Oe)return"#ffffff";let o=d(S,t)??0,s=d(T,t)??0;return o===0&&s===0?"#ffffff":o>=s?S:T}var ne=/^#[0-9a-f]{6}$/i;function oe(t){let n=x(t);return n!=null&&F(n)>.5}var se="#e5e7eb",ae="#273142";function He(t){return oe(t)?se:ae}function Qe(t,n,o=P){let s=ne.test(t.trim()),a=t.trim().toLowerCase(),u=0,m=0,p=null;for(let M of n){if(!s||!ne.test(M.trim()))continue;u+=1;let B=ie(M,t,o);B.toLowerCase()!==a&&(m+=1,p=B)}return{total:u,overridden:m,status:u===0?"none":m===0?"applies":m===u?"overridden":"mixed",overrideInk:p}}var ue=3,v=4.5,N=3,le=24,Ve=20;function $(t){return t.filter(n=>n.visible&&!!n.screenBox)}function R(t,n){return t.x<n.x+n.width&&t.x+t.width>n.x&&t.y<n.y+n.height&&t.y+t.height>n.y}function g(t){return t.length?Math.round(Math.min(...t)*100)/100:null}function c(t,n,o){return o.length?{code:t,message:n,count:o.length,samples:o.slice(0,Ve)}:null}function z(t,n,o){return{primaryId:t.seatId,primaryLabel:t.label,...n==null?{}:{measured:Math.round(n*100)/100},...o==null?{}:{minimum:o}}}function U(t,n,o){return{primaryId:t.id,primaryLabel:t.label,...n==null?{}:{measured:Math.round(n*100)/100},...o==null?{}:{minimum:o}}}function ce(t,n,o){return{primaryId:t.objectId,primaryLabel:t.text,...n==null?{}:{measured:Math.round(n*100)/100},...o==null?{}:{minimum:o}}}function I(t,n,o,s){return{primaryId:t,primaryLabel:n,secondaryId:o,secondaryLabel:s}}function Ge(t,n="overview",o=null){let s=$(t.labels),a=$(t.hierarchyLabels),u=$(t.freeTextLabels),m=t.gaAreas.filter(e=>e.visible),p=s.map(e=>d(e.ink,e.fill)??0),A=a.map(e=>d(e.ink,e.fill)??0),M=u.map(e=>d(e.ink,e.background)??0),B=m.map(e=>d(e.effectiveBackground,t.canvasBackground)??0),b=o?t.labels.filter(e=>e.categoryKey===o):t.labels,h=o?t.gaAreas.filter(e=>e.categoryKey===o):t.gaAreas,f=b.filter(e=>e.selected),L=b.filter(e=>e.status==="held"),y=b.filter(e=>e.status==="booked"),C=b.filter(e=>e.pointerTarget.active),j=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)]),_=f.length?g(f.flatMap(e=>[d(t.selectionRingColor,t.canvasBackground)??0,d(t.selectionRingColor,e.fill)??0])):null,l=[],k=(e,r)=>Array.from({length:e},(O,E)=>({primaryId:`overview:${E+1}`,primaryLabel:r}));if(n==="overview"&&t.rung==="sections"&&(l.push(c("overview-section-category-paint","Section overview shells must use the neutral hierarchy palette, not category paint",k(t.overviewStyle.categoryPaintedSectionShells,"category-painted section shell"))),l.push(c("overview-category-detail-visible","Category-tinted section detail must wait until section focus or seat zoom",k(t.overviewStyle.visibleCategoryDetailOutlines,"category detail outline"))),l.push(c("overview-row-hints-visible","Row and seat patterns must not clutter the section overview",k(t.overviewStyle.visibleSectionRowHints,"section row hint"))),l.push(c("overview-availability-clutter","Live availability counts belong in focused detail, not on section overview shells",k(t.overviewStyle.visibleSectionAvailabilityLabels,"section availability label"))),l.push(c("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")))),l.push(c("bookable-label-undersized","Visible bookable labels must meet the rendered small-text size floor",s.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>z(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),n==="interaction"){let e=b.length>0,r=h.length>0,O=e||r,E=h.filter(i=>i.visible),de=new Set([...b.flatMap(i=>i.sectionId?[i.sectionId]:[]),...h.flatMap(i=>i.sectionId?[i.sectionId]:[])]),be=new Set([...t.labels.map(i=>i.categoryKey),...t.gaAreas.map(i=>i.categoryKey)]),Z=i=>i.screenCenter.x>=0&&i.screenCenter.x<=t.viewport.width&&i.screenCenter.y>=0&&i.screenCenter.y<=t.viewport.height;l.push(c("detail-rung-missing","Interaction evidence with bookable inventory must render the seat-detail rung",O&&t.rung!=="seats"?[{primaryId:"renderer",primaryLabel:t.rung}]:[])),l.push(c("detail-inventory-not-visible","Interaction evidence must frame at least one real bookable unit",O&&!b.some(Z)&&!E.length?[{primaryId:"renderer",primaryLabel:"no target inventory in viewport"}]:[])),l.push(c("pointer-target-inactive","Interaction evidence must expose a live production pointer target",e&&!C.some(Z)||!e&&r&&!E.some(i=>i.interactive)?[{primaryId:"renderer",primaryLabel:"no active pointer target in viewport"}]:[])),l.push(c("pointer-target-undersized","Every active production pointer target must reach at least 24 CSS pixels",C.filter(i=>Z(i)&&i.pointerTarget.effectiveMinimumPx<le).map(i=>z(i,i.pointerTarget.effectiveMinimumPx,le)))),l.push(c("selected-state-missing","Interaction evidence must paint a selected unit and its renderer-owned ring",e&&(!f.length||!f.some(i=>t.selectionRingSeatIds.includes(i.seatId)))?[{primaryId:"renderer",primaryLabel:"selected state"}]:[])),l.push(c("selected-state-contrast-low","The selected-state ring must maintain 3:1 graphical contrast with the canvas",f.length&&(_??0)<N?[{primaryId:f[0].seatId,primaryLabel:f[0].label,measured:Math.round((_??0)*100)/100,minimum:N}]:[])),l.push(c("held-state-missing","Interaction evidence must paint a held state when the floor has at least two status-managed units",b.length>=2&&!L.length?[{primaryId:"renderer",primaryLabel:"held state"}]:[])),l.push(c("booked-state-missing","Interaction evidence must paint a taken state when the floor has at least three status-managed units",b.length>=3&&!y.length?[{primaryId:"renderer",primaryLabel:"booked state"}]:[]));let me=new Set(L.map(i=>`${i.fill.toLowerCase()}:${i.opacity}`)),ge=new Set(y.map(i=>`${i.fill.toLowerCase()}:${i.opacity}`));l.push(c("status-state-indistinct","Held and taken evidence must resolve to distinct renderer paint",L.length&&y.length&&[...me].some(i=>ge.has(i))?[{primaryId:L[0].seatId,primaryLabel:L[0].label,secondaryId:y[0].seatId,secondaryLabel:y[0].label}]:[])),l.push(c("section-focus-missing","Interaction evidence must exercise section focus and its backdrop when section membership exists",de.size&&(!t.focusedSectionId||!t.focusBackdropVisible)?[{primaryId:"renderer",primaryLabel:"section focus"}]:[])),l.push(c("category-filter-missing","Interaction evidence must exercise a category filter when multiple categories exist",be.size>=2&&(!t.categoryFilterKeys||!t.categoryFilterKeys.length)?[{primaryId:"renderer",primaryLabel:"category filter"}]:[]));let H=t.labels.filter(i=>i.status==="free"&&!i.selected&&t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(i.categoryKey)),Q=t.gaAreas.filter(i=>t.categoryFilterKeys!=null&&!t.categoryFilterKeys.includes(i.categoryKey));l.push(c("category-filter-ineffective","The active category filter must visibly dim excluded free inventory",(H.length||Q.length)&&!H.some(i=>i.opacity<=.25)&&!Q.some(i=>i.opacity<=.1)?[...H.map(i=>z(i,i.opacity)),...Q.map(i=>({primaryId:i.areaId,primaryLabel:i.label,measured:i.opacity}))]:[])),l.push(c("target-category-not-visible","A category-specific interaction scene must visibly paint its exact target category",o&&!j.has(o)?[{primaryId:o,primaryLabel:o}]:[])),l.push(c("target-category-filter-mismatch","A category-specific interaction scene must bind its filter to only the exact target category",o&&(t.categoryFilterKeys?.length!==1||t.categoryFilterKeys[0]!==o)?[{primaryId:o,primaryLabel:o}]:[]))}l.push(c("bookable-label-contrast-low","Visible bookable labels must meet 4.5:1 contrast against their actual paint",s.flatMap(e=>{let r=d(e.ink,e.fill)??0;return r<v?[z(e,r,v)]:[]})));let X=[];for(let e=0;e<s.length;e+=1)for(let r=0;r<e;r+=1)R(s[e].screenBox,s[r].screenBox)&&X.push(I(s[r].seatId,s[r].label,s[e].seatId,s[e].label));l.push(c("bookable-label-collision","Visible bookable labels must not overlap",X)),l.push(c("hierarchy-label-undersized","Visible section and zone labels must meet the rendered small-text size floor",a.filter(e=>e.renderedFontPx<w).map(e=>U(e,e.renderedFontPx,w)))),l.push(c("hierarchy-label-contrast-low","Visible section and zone labels must meet 4.5:1 contrast against their backing paint",a.flatMap(e=>{let r=d(e.ink,e.fill)??0;return r<v?[U(e,r,v)]:[]}))),l.push(c("hierarchy-label-outside-section","Visible section labels must remain inside the filled section surface and outside holes",a.filter(e=>e.kind==="section"&&e.fitsContainer===!1).map(e=>U(e))));let D=[];for(let e=0;e<a.length;e+=1)for(let r=0;r<e;r+=1)R(a[e].screenBox,a[r].screenBox)&&D.push(I(a[r].id,a[r].label,a[e].id,a[e].label));l.push(c("hierarchy-label-collision","Visible hierarchy labels must not overlap each other",D));let Y=[];for(let e of a)for(let r of s)R(e.screenBox,r.screenBox)&&Y.push(I(e.id,e.label,r.seatId,r.label));l.push(c("hierarchy-bookable-collision","Visible hierarchy labels must not overlap bookable labels",Y)),l.push(c("free-text-undersized","Visible chart text must meet the rendered small-text size floor",u.filter(e=>e.renderedFontPx<t.minimumVisibleLabelPx).map(e=>ce(e,e.renderedFontPx,t.minimumVisibleLabelPx)))),l.push(c("free-text-contrast-low","Visible chart text must meet 4.5:1 contrast against its measured background",u.flatMap(e=>{let r=d(e.ink,e.background)??0;return r<v?[ce(e,r,v)]:[]})));let W=[];for(let e=0;e<u.length;e+=1)for(let r=0;r<e;r+=1)R(u[e].screenBox,u[r].screenBox)&&W.push(I(u[r].objectId,u[r].text,u[e].objectId,u[e].text));l.push(c("free-text-collision","Visible chart text labels must not overlap each other",W));let J=[];for(let e of u)for(let r of s)R(e.screenBox,r.screenBox)&&J.push(I(e.objectId,e.text,r.seatId,r.label));l.push(c("free-text-bookable-collision","Visible chart text must not overlap bookable labels",J));let q=[];for(let e of u)for(let r of a)R(e.screenBox,r.screenBox)&&q.push(I(e.objectId,e.text,r.id,r.label));l.push(c("free-text-hierarchy-collision","Visible chart text must not overlap hierarchy labels",q)),l.push(c("ga-contrast-low","Visible GA surfaces must maintain 3:1 graphical contrast with the canvas",m.flatMap(e=>{let r=d(e.effectiveBackground,t.canvasBackground)??0;return r<N?[{primaryId:e.areaId,primaryLabel:e.label,measured:Math.round(r*100)/100,minimum:N}]:[]})));let ee=l.filter(e=>!!e);return{version:ue,passed:ee.length===0,state:n,targetCategoryKey:o,resolvedRules:["rendered-overview-label-size","rendered-overview-label-contrast","rendered-overview-label-collision","rendered-overview-hierarchy-containment","rendered-overview-section-first-style","rendered-overview-ga-contrast",...n==="interaction"?["rendered-detail-inventory","rendered-pointer-target","rendered-selected-held-taken-states","rendered-section-focus","rendered-category-filter"]:[]],viewport:t.viewport,canvasBackground:t.canvasBackground,effectiveScale:t.effectiveScale,rung:t.rung,inventory:{totalBookableUnits:t.totalBookableUnits,totalLabelledBookableUnits:t.totalLabelledBookableUnits,visibleBookableLabels:s.length,hiddenBookableLabels:t.hiddenLabels,visibleHierarchyLabels:a.length,visibleFreeTextLabels:u.length,visibleGAAreas:m.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,r)=>e.kind.localeCompare(r.kind)||e.id.localeCompare(r.id)),labelledObjects:t.freeTextLabels.map(e=>({objectId:e.objectId,kind:e.kind,text:e.text,visible:e.visible})).sort((e,r)=>e.objectId.localeCompare(r.objectId)||e.kind.localeCompare(r.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,r)=>e.areaId.localeCompare(r.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:[...j].sort()},metrics:{minimumRenderedBookableLabelPx:g(s.map(e=>e.renderedFontPx)),minimumBookableLabelContrast:g(p),minimumRenderedHierarchyLabelPx:g(a.map(e=>e.renderedFontPx)),minimumHierarchyLabelContrast:g(A),minimumRenderedFreeTextPx:g(u.map(e=>e.renderedFontPx)),minimumFreeTextContrast:g(M),minimumGAContrast:g(B),minimumEffectivePointerTargetPx:g(C.map(e=>e.pointerTarget.effectiveMinimumPx)),selectedRingContrast:_==null?null:Math.round(_*100)/100},interaction:{applicable:{detail:b.length>0||h.length>0,pointer:b.length>0||h.length>0,held:b.length>=2,booked:b.length>=3,sectionFocus:b.some(e=>!!e.sectionId)||h.some(e=>!!e.sectionId),categoryFilter:new Set([...t.labels.map(e=>e.categoryKey),...t.gaAreas.map(e=>e.categoryKey)]).size>=2},selectedUnits:f.length,heldUnits:L.length,bookedUnits:y.length,activePointerTargets:C.length,focusedSectionId:t.focusedSectionId,focusBackdropVisible:t.focusBackdropVisible,categoryFilterKeys:t.categoryFilterKeys},findings:ee}}0&&(module.exports={ACCESS_GLYPH_PATH,ACCESS_GLYPH_VIEWBOX,ACCESS_TYPE_GLYPH_PATHS,AUTHORED_LABEL_MIN_CONTRAST,BOOTH_LABEL_FONT_SIZE,DARK_BOOKABLE_LABEL_INK,DARK_NEUTRAL_SECTION_FILL,GA_CAPACITY_LABEL_FONT_SIZE,GA_FILL_OPACITY,GA_LABEL_FONT_SIZE,LARGE_TEXT_CONTRAST,LIGHT_BOOKABLE_LABEL_INK,LIGHT_NEUTRAL_SECTION_FILL,MIN_VISIBLE_BOOKABLE_LABEL_PX,RENDERED_QUALITY_REPORT_VERSION,ROW_LABEL_FONT_SIZE,SEAT_LABEL_FONT_SIZE,SMALL_TEXT_CONTRAST,accessGlyphInk,accessGlyphPath,bookableMarkerLabel,compositeHexOver,inspectRenderedQualityEvidence,isBookableLabelLegibleAtScale,isLightFill,minimumTextContrast,neutralSectionFill,renderedTextContrast,stateAwareBookableLabelInk,summarizeLabelInkContrast});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A as AccessibilityType } from '../../types-
|
|
1
|
+
import { A as AccessibilityType } from '../../types-D_pq-iqz.cjs';
|
|
2
2
|
import { contrastRatioOrNull } from '../color.cjs';
|
|
3
|
-
export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-
|
|
4
|
-
import '../../renderer-
|
|
3
|
+
export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-Bvj_f4Ep.cjs';
|
|
4
|
+
import '../../renderer-Bq6tKuUD.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Rendering constants that quality inspection must agree with.
|
|
@@ -10,8 +10,15 @@ import '../../renderer-QnB3a1yh.cjs';
|
|
|
10
10
|
* API, and MCP checks can evaluate the text that the buyer/designer will see.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
/** Seat and table-seat labels are authored at this many chart units.
|
|
13
|
+
/** Seat and table-seat labels are authored at this many chart units.
|
|
14
|
+
* Deliberately NOT smaller: labels are hidden until they reach
|
|
15
|
+
* MIN_VISIBLE_BOOKABLE_LABEL_PX on screen, so a smaller authored size would
|
|
16
|
+
* only hide the numbers at more zoom levels — never draw them smaller. */
|
|
14
17
|
declare const SEAT_LABEL_FONT_SIZE = 7;
|
|
18
|
+
/** Row letters (A, B, C…) when the row has no explicit label style size. Shared
|
|
19
|
+
* by the designer and the buyer renderer so the two stay WYSIWYG.
|
|
20
|
+
* 12 → 10 on 2026-08-19 (owner): the letter out-weighed the seats it named. */
|
|
21
|
+
declare const ROW_LABEL_FONT_SIZE = 10;
|
|
15
22
|
/** Booth labels are authored at this many chart units. */
|
|
16
23
|
declare const BOOTH_LABEL_FONT_SIZE = 10;
|
|
17
24
|
/** GA area captions and their capacity sublabels. */
|
|
@@ -129,4 +136,4 @@ interface LabelInkContrastSummary {
|
|
|
129
136
|
*/
|
|
130
137
|
declare function summarizeLabelInkContrast(preferred: string, backgrounds: Iterable<string>, minContrast?: number): LabelInkContrastSummary;
|
|
131
138
|
|
|
132
|
-
export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, compositeHexOver, isBookableLabelLegibleAtScale, isLightFill, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
|
|
139
|
+
export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, ROW_LABEL_FONT_SIZE, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, compositeHexOver, isBookableLabelLegibleAtScale, isLightFill, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A as AccessibilityType } from '../../types-
|
|
1
|
+
import { A as AccessibilityType } from '../../types-D_pq-iqz.js';
|
|
2
2
|
import { contrastRatioOrNull } from '../color.js';
|
|
3
|
-
export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-
|
|
4
|
-
import '../../renderer-
|
|
3
|
+
export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from '../../renderedQuality-C86YHszi.js';
|
|
4
|
+
import '../../renderer-DwYiuiuC.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Rendering constants that quality inspection must agree with.
|
|
@@ -10,8 +10,15 @@ import '../../renderer-Bo9JzqMA.js';
|
|
|
10
10
|
* API, and MCP checks can evaluate the text that the buyer/designer will see.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
/** Seat and table-seat labels are authored at this many chart units.
|
|
13
|
+
/** Seat and table-seat labels are authored at this many chart units.
|
|
14
|
+
* Deliberately NOT smaller: labels are hidden until they reach
|
|
15
|
+
* MIN_VISIBLE_BOOKABLE_LABEL_PX on screen, so a smaller authored size would
|
|
16
|
+
* only hide the numbers at more zoom levels — never draw them smaller. */
|
|
14
17
|
declare const SEAT_LABEL_FONT_SIZE = 7;
|
|
18
|
+
/** Row letters (A, B, C…) when the row has no explicit label style size. Shared
|
|
19
|
+
* by the designer and the buyer renderer so the two stay WYSIWYG.
|
|
20
|
+
* 12 → 10 on 2026-08-19 (owner): the letter out-weighed the seats it named. */
|
|
21
|
+
declare const ROW_LABEL_FONT_SIZE = 10;
|
|
15
22
|
/** Booth labels are authored at this many chart units. */
|
|
16
23
|
declare const BOOTH_LABEL_FONT_SIZE = 10;
|
|
17
24
|
/** GA area captions and their capacity sublabels. */
|
|
@@ -129,4 +136,4 @@ interface LabelInkContrastSummary {
|
|
|
129
136
|
*/
|
|
130
137
|
declare function summarizeLabelInkContrast(preferred: string, backgrounds: Iterable<string>, minContrast?: number): LabelInkContrastSummary;
|
|
131
138
|
|
|
132
|
-
export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, compositeHexOver, isBookableLabelLegibleAtScale, isLightFill, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
|
|
139
|
+
export { ACCESS_GLYPH_PATH, ACCESS_GLYPH_VIEWBOX, ACCESS_TYPE_GLYPH_PATHS, AUTHORED_LABEL_MIN_CONTRAST, BOOTH_LABEL_FONT_SIZE, DARK_BOOKABLE_LABEL_INK, DARK_NEUTRAL_SECTION_FILL, GA_CAPACITY_LABEL_FONT_SIZE, GA_FILL_OPACITY, GA_LABEL_FONT_SIZE, LARGE_TEXT_CONTRAST, LIGHT_BOOKABLE_LABEL_INK, LIGHT_NEUTRAL_SECTION_FILL, type LabelInkContrastSummary, MIN_VISIBLE_BOOKABLE_LABEL_PX, ROW_LABEL_FONT_SIZE, SEAT_LABEL_FONT_SIZE, SMALL_TEXT_CONTRAST, accessGlyphInk, accessGlyphPath, bookableMarkerLabel, compositeHexOver, isBookableLabelLegibleAtScale, isLightFill, minimumTextContrast, neutralSectionFill, renderedTextContrast, stateAwareBookableLabelInk, summarizeLabelInkContrast };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as C,b as D}from"../../chunk-LVUGIKHG.js";import{A,B,a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"../../chunk-GXMGOWKB.js";import"../../chunk-CXF32VPG.js";export{j as ACCESS_GLYPH_PATH,h as ACCESS_GLYPH_VIEWBOX,i as ACCESS_TYPE_GLYPH_PATHS,s as AUTHORED_LABEL_MIN_CONTRAST,e as BOOTH_LABEL_FONT_SIZE,b as DARK_BOOKABLE_LABEL_INK,z as DARK_NEUTRAL_SECTION_FILL,m as GA_CAPACITY_LABEL_FONT_SIZE,p as GA_FILL_OPACITY,f as GA_LABEL_FONT_SIZE,a as LARGE_TEXT_CONTRAST,c as LIGHT_BOOKABLE_LABEL_INK,y as LIGHT_NEUTRAL_SECTION_FILL,t as MIN_VISIBLE_BOOKABLE_LABEL_PX,C as RENDERED_QUALITY_REPORT_VERSION,r as ROW_LABEL_FONT_SIZE,o as SEAT_LABEL_FONT_SIZE,x as SMALL_TEXT_CONTRAST,v as accessGlyphInk,k as accessGlyphPath,l as bookableMarkerLabel,q as compositeHexOver,D as inspectRenderedQualityEvidence,g as isBookableLabelLegibleAtScale,w as isLightFill,d as minimumTextContrast,A as neutralSectionFill,n as renderedTextContrast,u as stateAwareBookableLabelInk,B as summarizeLabelInkContrast};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var o=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var m=(e,n)=>{for(var a in n)o(e,a,{get:n[a],enumerable:!0})},I=(e,n,a,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of v(n))!y.call(e,t)&&t!==a&&o(e,t,{get:()=>n[t],enumerable:!(r=k(n,t))||r.enumerable});return e};var E=e=>I(o({},"__esModule",{value:!0}),e);var F={};m(F,{DECOR_STAMP_ICON_PATHS:()=>H,DEFAULT_SHAPE_LINE_CAP:()=>d,DEFAULT_SHAPE_LINE_ENDING:()=>c,DEFAULT_SHAPE_LINE_JOIN:()=>M,SHAPE_LINE_CAPS:()=>Z,SHAPE_LINE_ENDINGS:()=>j,SHAPE_LINE_JOINS:()=>R,VENUE_ICONS:()=>i,VENUE_ICON_GROUP_LABELS:()=>L,VENUE_ICON_GROUP_ORDER:()=>O,VENUE_ICON_KEYS:()=>P,VENUE_ICON_STROKE:()=>w,VENUE_ICON_VIEWBOX:()=>T,buyerBackgroundImage:()=>u,buyerFacingChartDoc:()=>V,hasConflictingLegacyTrace:()=>_,isOpenShapeKind:()=>f,isPointShapeKind:()=>B,isVenueIconKey:()=>A,migrateLegacyBackgroundLayersInPlace:()=>C,resolvedShapeLineStyle:()=>D,shapeArrowMetrics:()=>U,traceReferenceImage:()=>S,venueIcon:()=>h,venueIconPath:()=>N});module.exports=E(F);function S(e){return e.referenceImage??(e.backgroundImage?.assetId?e.backgroundImage:void 0)}function u(e){let n=e.backgroundImage;return n?.url&&!n.assetId?n:void 0}function s(e){let n=u(e);if(!n?.url)return;let{calibration:a,derivedScale:r,assetId:t,...b}=n;return b}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 l(e){let n={...e};return delete n.referenceScan,delete n.referenceInventorySource,delete n.referenceSource,delete n.referenceInventoryExclusion,delete n.editor,n}function x(e){let n={...e};return delete n.referenceCategorySource,n}function V(e){let n=s(e),a=e.floors?.map(r=>({...r,objects:r.objects.map(l),referenceImage:void 0,backgroundImage:s(r)}));return{...e,categories:e.categories.map(x),objects:e.objects.map(l),referenceImage:void 0,backgroundImage:n,...a?{floors:a}:{}}}function _(e){return!!e.referenceImage?.assetId&&!!e.backgroundImage?.assetId&&e.referenceImage.assetId!==e.backgroundImage.assetId}var T=24,w=2,L={facilities:"Facilities","food-drink":"Food & drink",navigation:"Getting around",accessibility:"Accessibility"},O=["facilities","food-drink","navigation","accessibility"],g="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",i=[{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:g},{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:g},{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"}],H={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"},p=new Map(i.map(e=>[e.key,e]));function h(e){return e?p.get(e):void 0}function N(e){return h(e)?.path}function A(e){return typeof e=="string"&&p.has(e)}var P=i.map(e=>e.key);var Z=["butt","round","square"],R=["miter","round","bevel"],j=["none","arrow"],d="round",M="round",c="none";function f(e){return e==="line"||e==="polyline"}function B(e){return e==="polygon"||f(e)}function D(e){return{lineCap:e.lineCap??d,lineJoin:e.lineJoin??M,startEnding:e.startEnding??c,endEnding:e.endEnding??c}}function U(e){return{pointerLength:Math.min(48,Math.max(8,e*3)),pointerWidth:Math.min(40,Math.max(8,e*2.25))}}0&&(module.exports={DECOR_STAMP_ICON_PATHS,DEFAULT_SHAPE_LINE_CAP,DEFAULT_SHAPE_LINE_ENDING,DEFAULT_SHAPE_LINE_JOIN,SHAPE_LINE_CAPS,SHAPE_LINE_ENDINGS,SHAPE_LINE_JOINS,VENUE_ICONS,VENUE_ICON_GROUP_LABELS,VENUE_ICON_GROUP_ORDER,VENUE_ICON_KEYS,VENUE_ICON_STROKE,VENUE_ICON_VIEWBOX,buyerBackgroundImage,buyerFacingChartDoc,hasConflictingLegacyTrace,isOpenShapeKind,isPointShapeKind,isVenueIconKey,migrateLegacyBackgroundLayersInPlace,resolvedShapeLineStyle,shapeArrowMetrics,traceReferenceImage,venueIcon,venueIconPath});
|
|
1
|
+
"use strict";var i=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var E=(e,n)=>{for(var t in n)i(e,t,{get:n[t],enumerable:!0})},x=(e,n,t,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of S(n))!v.call(e,r)&&r!==t&&i(e,r,{get:()=>n[r],enumerable:!(a=I(n,r))||a.enumerable});return e};var _=e=>x(i({},"__esModule",{value:!0}),e);var X={};E(X,{DECOR_STAMP_ICON_PATHS:()=>N,DEFAULT_SHAPE_LINE_CAP:()=>b,DEFAULT_SHAPE_LINE_ENDING:()=>p,DEFAULT_SHAPE_LINE_JOIN:()=>m,SEAT_GLYPHS:()=>h,SEAT_GLYPH_DETAIL_MIN_PX:()=>ae,SEAT_GLYPH_INSET:()=>re,SEAT_GLYPH_ORDER:()=>w,SEAT_GLYPH_VIEWBOX:()=>te,SHAPE_LINE_CAPS:()=>j,SHAPE_LINE_ENDINGS:()=>U,SHAPE_LINE_JOINS:()=>Y,VENUE_ICONS:()=>o,VENUE_ICON_GROUP_LABELS:()=>Q,VENUE_ICON_GROUP_ORDER:()=>P,VENUE_ICON_KEYS:()=>B,VENUE_ICON_STROKE:()=>ee,VENUE_ICON_VIEWBOX:()=>$,buyerBackgroundImage:()=>g,buyerFacingChartDoc:()=>H,hasConflictingLegacyTrace:()=>O,isOpenShapeKind:()=>k,isPointShapeKind:()=>F,isSeatGlyphKind:()=>l,isVenueIconKey:()=>Z,migrateLegacyBackgroundLayersInPlace:()=>G,resolveSeatGlyph:()=>D,resolvedShapeLineStyle:()=>J,seatGlyph:()=>s,seatGlyphFit:()=>R,seatGlyphLabel:()=>K,seatGlyphPath:()=>T,shapeArrowMetrics:()=>W,traceReferenceImage:()=>C,venueIcon:()=>y,venueIconPath:()=>A});module.exports=_(X);function C(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 u(e){let n=g(e);if(!n?.url)return;let{calibration:t,derivedScale:a,assetId:r,...L}=n;return L}function G(e){let n=t=>{let a=t.backgroundImage;a?.assetId&&(t.referenceImage||(t.referenceImage=a,t.backgroundImage=void 0))};n(e);for(let t of e.floors??[])n(t);return e}function d(e){let n={...e};return delete n.referenceScan,delete n.referenceInventorySource,delete n.referenceSource,delete n.referenceInventoryExclusion,delete n.editor,n}function V(e){let n={...e};return delete n.referenceCategorySource,n}function H(e){let n=u(e),t=e.floors?.map(a=>({...a,objects:a.objects.map(d),referenceImage:void 0,backgroundImage:u(a)}));return{...e,categories:e.categories.map(V),objects:e.objects.map(d),referenceImage:void 0,backgroundImage:n,...t?{floors:t}:{}}}function O(e){return!!e.referenceImage?.assetId&&!!e.backgroundImage?.assetId&&e.referenceImage.assetId!==e.backgroundImage.assetId}var $=24,ee=2,Q={facilities:"Facilities","food-drink":"Food & drink",navigation:"Getting around",accessibility:"Accessibility"},P=["facilities","food-drink","navigation","accessibility"],M="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",o=[{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:M},{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:M},{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"}],N={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"},f=new Map(o.map(e=>[e.key,e]));function y(e){return e?f.get(e):void 0}function A(e){return y(e)?.path}function Z(e){return typeof e=="string"&&f.has(e)}var B=o.map(e=>e.key);var te=24,ae=16,re=.14,h=[{key:"circle",label:"Circle",hint:"The standard seat dot.",path:null,bounds:null},{key:"theatre",label:"Theatre chair",hint:"Upright chair with a tall back \u2014 auditorium and theatre seating.",path:"M4.5 3.5 Q4.5 1.5 6.5 1.5 L17.5 1.5 Q19.5 1.5 19.5 3.5 L19.5 13 L4.5 13 Z M3.5 12 L20.5 12 Q22.5 12 22.5 14 L22.5 21 Q22.5 22.5 21 22.5 Q19.5 22.5 19.5 21 L19.5 17.5 L4.5 17.5 L4.5 21 Q4.5 22.5 3 22.5 Q1.5 22.5 1.5 21 L1.5 14 Q1.5 12 3.5 12 Z",bounds:{x:1.5,y:1.5,width:21,height:21}},{key:"armchair",label:"Armchair",hint:"Padded chair with wide arms \u2014 premium and box seating.",path:"M3.5 4 Q3.5 1.5 6 1.5 L18 1.5 Q20.5 1.5 20.5 4 L20.5 13 L3.5 13 Z M1.5 12.5 Q1.5 10 3.25 10 Q5 10 5 12.5 L5 13.5 L19 13.5 L19 12.5 Q19 10 20.75 10 Q22.5 10 22.5 12.5 L22.5 19.5 Q22.5 22 20 22 L4 22 Q1.5 22 1.5 19.5 Z",bounds:{x:1.5,y:1.5,width:21,height:20.5}},{key:"stool",label:"Stool",hint:"Backless perch \u2014 bar tops, high tables and standing rails.",path:"M6 2.5 L18 2.5 Q22 2.5 22 6.5 L22 12 Q22 16 18 16 L6 16 Q2 16 2 12 L2 6.5 Q2 2.5 6 2.5 Z M6 15.5 L9.5 15.5 L7.5 22.5 L3 22.5 Z M14.5 15.5 L18 15.5 L20.5 22.5 L16 22.5 Z",bounds:{x:2,y:2.5,width:20,height:20}},{key:"bench",label:"Bench slot",hint:"One place on a shared bench \u2014 pews, bleachers and terraces.",path:"M2.5 0.5 L21.5 0.5 Q23 0.5 23 2 L23 5 Q23 6.5 21.5 6.5 L2.5 6.5 Q1 6.5 1 5 L1 2 Q1 0.5 2.5 0.5 Z M2 7.5 L22 7.5 Q23.5 7.5 23.5 9 L23.5 15.5 Q23.5 17 22 17 L18 17 L18 21.5 Q18 22.5 16.75 22.5 Q15.5 22.5 15.5 21.5 L15.5 17 L8.5 17 L8.5 21.5 Q8.5 22.5 7.25 22.5 Q6 22.5 6 21.5 L6 17 L2 17 Q0.5 17 0.5 15.5 L0.5 9 Q0.5 7.5 2 7.5 Z",bounds:{x:.5,y:.5,width:23,height:22}}],w=h.map(e=>e.key),c=new Map(h.map(e=>[e.key,e]));function s(e){return c.get(e)??c.get("circle")}function K(e){return s(e).label}function T(e){return s(e).path}function R(e,n){return{scale:n*2*(1-.14)/Math.max(e.width,e.height),centreX:e.x+e.width/2,centreY:e.y+e.height/2}}function l(e){return typeof e=="string"&&c.has(e)}function D(e,n){return l(e)?e:l(n?.seatGlyph)?n.seatGlyph:"circle"}var j=["butt","round","square"],Y=["miter","round","bevel"],U=["none","arrow"],b="round",m="round",p="none";function k(e){return e==="line"||e==="polyline"}function F(e){return e==="polygon"||k(e)}function J(e){return{lineCap:e.lineCap??b,lineJoin:e.lineJoin??m,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))}}0&&(module.exports={DECOR_STAMP_ICON_PATHS,DEFAULT_SHAPE_LINE_CAP,DEFAULT_SHAPE_LINE_ENDING,DEFAULT_SHAPE_LINE_JOIN,SEAT_GLYPHS,SEAT_GLYPH_DETAIL_MIN_PX,SEAT_GLYPH_INSET,SEAT_GLYPH_ORDER,SEAT_GLYPH_VIEWBOX,SHAPE_LINE_CAPS,SHAPE_LINE_ENDINGS,SHAPE_LINE_JOINS,VENUE_ICONS,VENUE_ICON_GROUP_LABELS,VENUE_ICON_GROUP_ORDER,VENUE_ICON_KEYS,VENUE_ICON_STROKE,VENUE_ICON_VIEWBOX,buyerBackgroundImage,buyerFacingChartDoc,hasConflictingLegacyTrace,isOpenShapeKind,isPointShapeKind,isSeatGlyphKind,isVenueIconKey,migrateLegacyBackgroundLayersInPlace,resolveSeatGlyph,resolvedShapeLineStyle,seatGlyph,seatGlyphFit,seatGlyphLabel,seatGlyphPath,shapeArrowMetrics,traceReferenceImage,venueIcon,venueIconPath});
|