@seatlayer/core 0.52.0 → 0.54.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/LICENSE +16 -17
- package/README.md +8 -18
- package/dist/categoryInventory-B4xo7hE2.d.ts +109 -0
- package/dist/categoryInventory-lRtu3VjD.d.cts +109 -0
- package/dist/chunk-3QLFGEQY.js +1 -0
- package/dist/chunk-55NOSZK5.js +1 -0
- package/dist/chunk-6LIPQU4G.js +1 -0
- package/dist/chunk-6VTTBC5F.js +1 -0
- package/dist/chunk-7PT7OQUO.js +1 -0
- package/dist/chunk-AQKYUJBX.js +1 -0
- package/dist/chunk-CXF32VPG.js +1 -0
- package/dist/chunk-DDE7IOFT.js +1 -0
- package/dist/chunk-EQM4FFN5.js +1 -0
- package/dist/chunk-EYROIZGQ.js +1 -0
- package/dist/chunk-IJI4WU57.js +1 -0
- package/dist/chunk-QUKWJQLR.js +1 -0
- package/dist/chunk-VDZ24QVV.js +1 -0
- package/dist/chunk-XPPT3OGQ.js +1 -0
- package/dist/core/chart-ops/index.cjs +1 -0
- package/dist/core/chart-ops/index.d.cts +1235 -0
- package/dist/core/chart-ops/index.d.ts +1235 -0
- package/dist/core/chart-ops/index.js +1 -0
- package/dist/core/color.cjs +1 -0
- package/dist/core/color.d.cts +192 -0
- package/dist/core/color.d.ts +192 -0
- package/dist/core/color.js +1 -0
- package/dist/core/inventory/index.cjs +1 -0
- package/dist/core/inventory/index.d.cts +209 -0
- package/dist/core/inventory/index.d.ts +209 -0
- package/dist/core/inventory/index.js +1 -0
- package/dist/core/layout/index.cjs +1 -0
- package/dist/core/layout/index.d.cts +376 -0
- package/dist/core/layout/index.d.ts +376 -0
- package/dist/core/layout/index.js +1 -0
- package/dist/core/quality/index.cjs +1 -0
- package/dist/core/quality/index.d.cts +132 -0
- package/dist/core/quality/index.d.ts +132 -0
- package/dist/core/quality/index.js +1 -0
- package/dist/core/render-assets/index.cjs +1 -0
- package/dist/core/render-assets/index.d.cts +99 -0
- package/dist/core/render-assets/index.d.ts +99 -0
- package/dist/core/render-assets/index.js +1 -0
- package/dist/core/seatConfidence.cjs +1 -76
- package/dist/core/seatConfidence.d.cts +1 -1
- package/dist/core/seatConfidence.d.ts +1 -1
- package/dist/core/seatConfidence.js +1 -51
- package/dist/core/sections/index.cjs +1 -0
- package/dist/core/sections/index.d.cts +346 -0
- package/dist/core/sections/index.d.ts +346 -0
- package/dist/core/sections/index.js +1 -0
- package/dist/de-75NWRKC5.js +1 -0
- package/dist/es-BM7EJ7PW.js +1 -0
- package/dist/fr-HPXQHIB4.js +1 -0
- package/dist/index.cjs +1 -12717
- package/dist/index.d.cts +71 -580
- package/dist/index.d.ts +71 -580
- package/dist/index.js +1 -10235
- package/dist/labeling-CsPt1mC_.d.cts +90 -0
- package/dist/labeling-w8bl86cb.d.ts +90 -0
- package/dist/layout-B5UYbwnv.d.ts +181 -0
- package/dist/layout-YFmuxw_M.d.cts +181 -0
- package/dist/picker/minimapGeometry.cjs +1 -80
- package/dist/picker/minimapGeometry.js +1 -52
- package/dist/renderedQuality-CugJarFp.d.cts +113 -0
- package/dist/renderedQuality-DbZM034G.d.ts +113 -0
- package/dist/renderer-DhUHFtsI.d.cts +531 -0
- package/dist/renderer-IBi9YKWR.d.ts +531 -0
- package/dist/sections-B7cDF0Nq.d.cts +123 -0
- package/dist/sections-mLOZrGrI.d.ts +123 -0
- package/dist/segmentedRowModel-BPTnJ7Tz.d.ts +75 -0
- package/dist/segmentedRowModel-CGoH684F.d.cts +75 -0
- package/dist/ticketRestrictions-BwAebpSK.d.cts +72 -0
- package/dist/ticketRestrictions-ChHJwvTq.d.ts +72 -0
- package/dist/{types-tLOunI-B.d.cts → types-COfJorq_.d.cts} +233 -757
- package/dist/{types-tLOunI-B.d.ts → types-COfJorq_.d.ts} +233 -757
- package/dist/view/panoramaDelivery.cjs +1 -126
- package/dist/view/panoramaDelivery.js +1 -17
- package/dist/view3d/crossfade/panorama.cjs +1 -459
- package/dist/view3d/crossfade/panorama.d.cts +2 -4
- package/dist/view3d/crossfade/panorama.d.ts +2 -4
- package/dist/view3d/crossfade/panorama.js +1 -30
- package/dist/view3d/index.cjs +27 -7929
- package/dist/view3d/index.d.cts +64 -22
- package/dist/view3d/index.d.ts +64 -22
- package/dist/view3d/index.js +27 -7062
- package/package.json +95 -11
- package/dist/chunk-AZODENEL.js +0 -97
- package/dist/chunk-AZODENEL.js.map +0 -1
- package/dist/chunk-BE3F7CT3.js +0 -341
- package/dist/chunk-BE3F7CT3.js.map +0 -1
- package/dist/chunk-UID7KN44.js +0 -1569
- package/dist/chunk-UID7KN44.js.map +0 -1
- package/dist/core/seatConfidence.cjs.map +0 -1
- package/dist/core/seatConfidence.js.map +0 -1
- package/dist/de-YGODYJ3E.js +0 -292
- package/dist/de-YGODYJ3E.js.map +0 -1
- package/dist/es-VMBTGVFQ.js +0 -292
- package/dist/es-VMBTGVFQ.js.map +0 -1
- package/dist/fr-SLBE2ULB.js +0 -292
- package/dist/fr-SLBE2ULB.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/picker/minimapGeometry.cjs.map +0 -1
- package/dist/picker/minimapGeometry.js.map +0 -1
- package/dist/view/panoramaDelivery.cjs.map +0 -1
- package/dist/view/panoramaDelivery.js.map +0 -1
- package/dist/view3d/crossfade/panorama.cjs.map +0 -1
- package/dist/view3d/crossfade/panorama.js.map +0 -1
- package/dist/view3d/index.cjs.map +0 -1
- package/dist/view3d/index.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
SeatLayer Runtime License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026 SeatLayer
|
|
3
|
+
Copyright (c) 2026 SeatLayer. All rights reserved.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
to
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
5
|
+
This package is proprietary SeatLayer runtime software. Subject to an active
|
|
6
|
+
SeatLayer agreement or subscription, SeatLayer grants you a limited,
|
|
7
|
+
non-exclusive, non-transferable right to install and execute this package only
|
|
8
|
+
to integrate with the SeatLayer service.
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
You may not copy, modify, adapt, translate, create derivative works from,
|
|
11
|
+
redistribute, sublicense, sell, publish, disclose, or make the package available
|
|
12
|
+
as a standalone product. You may not reverse engineer, decompile, or attempt to
|
|
13
|
+
derive its source code except to the limited extent that applicable law does not
|
|
14
|
+
permit that restriction.
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
16
|
+
Third-party components retain their own licenses. This package is provided
|
|
17
|
+
without warranties except as expressly stated in your SeatLayer agreement.
|
|
18
|
+
|
|
19
|
+
These terms apply to version 0.53.0 and later. Earlier versions remain governed
|
|
20
|
+
by the license included with those versions.
|
package/README.md
CHANGED
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@seatlayer/core)
|
|
4
4
|
[](https://www.npmjs.com/package/@seatlayer/core)
|
|
5
|
-
[](../../LICENSE)
|
|
6
5
|
|
|
7
|
-
The low-level
|
|
8
|
-
the
|
|
9
|
-
|
|
6
|
+
The compiled, low-level rendering runtime behind the SeatLayer SDKs, including
|
|
7
|
+
the interactive seat-map renderer and optional venue-view module. Its
|
|
8
|
+
implementation source is private.
|
|
10
9
|
|
|
11
10
|
[Package on npm](https://www.npmjs.com/package/@seatlayer/core) ·
|
|
12
|
-
[Source](https://github.com/seatlayer/seatlayer-sdk/tree/main/packages/core) ·
|
|
13
11
|
[Developer docs](https://docs.seatlayer.io/) ·
|
|
14
12
|
[Live demo](https://app.seatlayer.io/demo/play) ·
|
|
15
13
|
[AI Toolkit](https://github.com/seatlayer/seatlayer-ai-toolkit)
|
|
@@ -28,18 +26,9 @@ npm install @seatlayer/core
|
|
|
28
26
|
Its runtime dependencies are normal package dependencies and install with
|
|
29
27
|
the package.
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- building a SeatLayer SDK wrapper for another UI framework or platform;
|
|
36
|
-
- rendering an already-authorized `ChartDoc` with your own data transport;
|
|
37
|
-
- implementing a specialized preview, operator, or evidence surface; or
|
|
38
|
-
- consuming shared chart layout, section, GA, panorama, quality, i18n, or money
|
|
39
|
-
primitives.
|
|
40
|
-
|
|
41
|
-
For a regular checkout integration, start with the
|
|
42
|
-
[Buyer SDK installation guide](https://docs.seatlayer.io/buyer-sdk/install/).
|
|
29
|
+
Direct use is a legacy low-level integration surface. New integrations should
|
|
30
|
+
start with `@seatlayer/js` or a public framework wrapper. Contact SeatLayer if a
|
|
31
|
+
supported wrapper does not cover your platform.
|
|
43
32
|
|
|
44
33
|
## Main exports
|
|
45
34
|
|
|
@@ -116,4 +105,5 @@ calculate the charge, and book using a secret key. See
|
|
|
116
105
|
|
|
117
106
|
## License
|
|
118
107
|
|
|
119
|
-
|
|
108
|
+
SeatLayer Runtime License. See the `LICENSE` file included with this package.
|
|
109
|
+
Versions before 0.53.0 retain the license shipped with those versions.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { C as ChartDoc, R as RowObject, T as TableObject } from './types-COfJorq_.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A category is a commercial definition for exactly one kind of inventory.
|
|
5
|
+
* Keeping these names semantic (rather than mirroring raw object type strings)
|
|
6
|
+
* makes validation output useful to authors and stable for API consumers.
|
|
7
|
+
*/
|
|
8
|
+
declare const CATEGORY_INVENTORY_FAMILIES: readonly [{
|
|
9
|
+
readonly key: "row-seats";
|
|
10
|
+
readonly label: "row seats";
|
|
11
|
+
readonly suffix: "rows";
|
|
12
|
+
readonly labelSuffix: "Rows";
|
|
13
|
+
readonly creationWord: "Seats";
|
|
14
|
+
readonly objectType: "row";
|
|
15
|
+
}, {
|
|
16
|
+
readonly key: "table-chairs";
|
|
17
|
+
readonly label: "table chairs";
|
|
18
|
+
readonly suffix: "tables";
|
|
19
|
+
readonly labelSuffix: "Tables";
|
|
20
|
+
readonly creationWord: "Tables";
|
|
21
|
+
readonly objectType: "table";
|
|
22
|
+
}, {
|
|
23
|
+
readonly key: "booth-units";
|
|
24
|
+
readonly label: "booth units";
|
|
25
|
+
readonly suffix: "booths";
|
|
26
|
+
readonly labelSuffix: "Booths";
|
|
27
|
+
readonly creationWord: "Booths";
|
|
28
|
+
readonly objectType: "booth";
|
|
29
|
+
}, {
|
|
30
|
+
readonly key: "ga-capacity";
|
|
31
|
+
readonly label: "GA capacity";
|
|
32
|
+
readonly suffix: "ga";
|
|
33
|
+
readonly labelSuffix: "GA";
|
|
34
|
+
readonly creationWord: "Standing";
|
|
35
|
+
readonly objectType: "gaArea";
|
|
36
|
+
}];
|
|
37
|
+
type CategoryInventoryFamily = typeof CATEGORY_INVENTORY_FAMILIES[number]['key'];
|
|
38
|
+
type CategoryInventoryObjectType = typeof CATEGORY_INVENTORY_FAMILIES[number]['objectType'];
|
|
39
|
+
interface CategoryInventoryTarget {
|
|
40
|
+
id: string;
|
|
41
|
+
/** Author-facing object label (never an internal id) for user copy. */
|
|
42
|
+
label: string;
|
|
43
|
+
type: CategoryInventoryObjectType;
|
|
44
|
+
floorId: string;
|
|
45
|
+
}
|
|
46
|
+
interface CategoryInventoryFamilyUsage {
|
|
47
|
+
family: CategoryInventoryFamily;
|
|
48
|
+
label: string;
|
|
49
|
+
objectType: CategoryInventoryObjectType;
|
|
50
|
+
targets: CategoryInventoryTarget[];
|
|
51
|
+
}
|
|
52
|
+
interface CategoryInventoryConflict {
|
|
53
|
+
categoryKey: string;
|
|
54
|
+
categoryLabel: string;
|
|
55
|
+
families: CategoryInventoryFamilyUsage[];
|
|
56
|
+
objectIds: string[];
|
|
57
|
+
}
|
|
58
|
+
interface CategoryInventoryClone {
|
|
59
|
+
family: CategoryInventoryFamily;
|
|
60
|
+
key: string;
|
|
61
|
+
label: string;
|
|
62
|
+
}
|
|
63
|
+
interface CategoryInventoryReassignment {
|
|
64
|
+
family: CategoryInventoryFamily;
|
|
65
|
+
floorId: string;
|
|
66
|
+
objectId: string;
|
|
67
|
+
objectType: CategoryInventoryObjectType;
|
|
68
|
+
fromCategoryKey: string;
|
|
69
|
+
toCategoryKey: string;
|
|
70
|
+
seatOverrideIndices?: number[];
|
|
71
|
+
}
|
|
72
|
+
interface CategoryInventoryRemediationChange {
|
|
73
|
+
categoryKey: string;
|
|
74
|
+
categoryLabel: string;
|
|
75
|
+
retainedFamily: CategoryInventoryFamily;
|
|
76
|
+
clones: CategoryInventoryClone[];
|
|
77
|
+
reassignments: CategoryInventoryReassignment[];
|
|
78
|
+
}
|
|
79
|
+
interface CategoryInventoryRemediationResult {
|
|
80
|
+
doc: ChartDoc;
|
|
81
|
+
changed: boolean;
|
|
82
|
+
changes: CategoryInventoryRemediationChange[];
|
|
83
|
+
before: CategoryInventoryConflict[];
|
|
84
|
+
after: CategoryInventoryConflict[];
|
|
85
|
+
}
|
|
86
|
+
/** Seat-weighted effective categories without expanding seat geometry. Runtime
|
|
87
|
+
* cost follows authored overrides rather than venue capacity, which keeps the
|
|
88
|
+
* Categories and quality surfaces cheap on 50K-seat charts. */
|
|
89
|
+
declare function effectiveSeatOwnerCategoryCounts(owner: RowObject | TableObject): Map<string, number>;
|
|
90
|
+
/**
|
|
91
|
+
* Return every category used by more than one incompatible inventory family.
|
|
92
|
+
* Ordering is document-stable: categories first, then the canonical family
|
|
93
|
+
* order, then floor/object order inside each family.
|
|
94
|
+
*/
|
|
95
|
+
declare function inspectCategoryInventoryConflicts(doc: ChartDoc): CategoryInventoryConflict[];
|
|
96
|
+
/** Author-facing copy: names every affected object by its LABEL (never an
|
|
97
|
+
* internal id), keeps the one-category-per-inventory-kind rule and points at
|
|
98
|
+
* the safe split repair. */
|
|
99
|
+
declare function describeCategoryInventoryConflict(conflict: CategoryInventoryConflict): string;
|
|
100
|
+
/**
|
|
101
|
+
* Build a deterministic, non-mutating candidate that isolates every conflicting
|
|
102
|
+
* category by inventory family. The first canonical family keeps the original
|
|
103
|
+
* stable category key; later families receive metadata-identical clones. No
|
|
104
|
+
* geometry, technical inventory identity, accessibility, reference inventory
|
|
105
|
+
* provenance, or existing publication/event snapshot is touched.
|
|
106
|
+
*/
|
|
107
|
+
declare function remediateCategoryInventoryConflicts(source: ChartDoc): CategoryInventoryRemediationResult;
|
|
108
|
+
|
|
109
|
+
export { CATEGORY_INVENTORY_FAMILIES as C, type CategoryInventoryClone as a, type CategoryInventoryConflict as b, type CategoryInventoryFamily as c, type CategoryInventoryFamilyUsage as d, type CategoryInventoryObjectType as e, type CategoryInventoryReassignment as f, type CategoryInventoryRemediationChange as g, type CategoryInventoryRemediationResult as h, type CategoryInventoryTarget as i, describeCategoryInventoryConflict as j, effectiveSeatOwnerCategoryCounts as k, inspectCategoryInventoryConflicts as l, remediateCategoryInventoryConflicts as r };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { C as ChartDoc, R as RowObject, T as TableObject } from './types-COfJorq_.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A category is a commercial definition for exactly one kind of inventory.
|
|
5
|
+
* Keeping these names semantic (rather than mirroring raw object type strings)
|
|
6
|
+
* makes validation output useful to authors and stable for API consumers.
|
|
7
|
+
*/
|
|
8
|
+
declare const CATEGORY_INVENTORY_FAMILIES: readonly [{
|
|
9
|
+
readonly key: "row-seats";
|
|
10
|
+
readonly label: "row seats";
|
|
11
|
+
readonly suffix: "rows";
|
|
12
|
+
readonly labelSuffix: "Rows";
|
|
13
|
+
readonly creationWord: "Seats";
|
|
14
|
+
readonly objectType: "row";
|
|
15
|
+
}, {
|
|
16
|
+
readonly key: "table-chairs";
|
|
17
|
+
readonly label: "table chairs";
|
|
18
|
+
readonly suffix: "tables";
|
|
19
|
+
readonly labelSuffix: "Tables";
|
|
20
|
+
readonly creationWord: "Tables";
|
|
21
|
+
readonly objectType: "table";
|
|
22
|
+
}, {
|
|
23
|
+
readonly key: "booth-units";
|
|
24
|
+
readonly label: "booth units";
|
|
25
|
+
readonly suffix: "booths";
|
|
26
|
+
readonly labelSuffix: "Booths";
|
|
27
|
+
readonly creationWord: "Booths";
|
|
28
|
+
readonly objectType: "booth";
|
|
29
|
+
}, {
|
|
30
|
+
readonly key: "ga-capacity";
|
|
31
|
+
readonly label: "GA capacity";
|
|
32
|
+
readonly suffix: "ga";
|
|
33
|
+
readonly labelSuffix: "GA";
|
|
34
|
+
readonly creationWord: "Standing";
|
|
35
|
+
readonly objectType: "gaArea";
|
|
36
|
+
}];
|
|
37
|
+
type CategoryInventoryFamily = typeof CATEGORY_INVENTORY_FAMILIES[number]['key'];
|
|
38
|
+
type CategoryInventoryObjectType = typeof CATEGORY_INVENTORY_FAMILIES[number]['objectType'];
|
|
39
|
+
interface CategoryInventoryTarget {
|
|
40
|
+
id: string;
|
|
41
|
+
/** Author-facing object label (never an internal id) for user copy. */
|
|
42
|
+
label: string;
|
|
43
|
+
type: CategoryInventoryObjectType;
|
|
44
|
+
floorId: string;
|
|
45
|
+
}
|
|
46
|
+
interface CategoryInventoryFamilyUsage {
|
|
47
|
+
family: CategoryInventoryFamily;
|
|
48
|
+
label: string;
|
|
49
|
+
objectType: CategoryInventoryObjectType;
|
|
50
|
+
targets: CategoryInventoryTarget[];
|
|
51
|
+
}
|
|
52
|
+
interface CategoryInventoryConflict {
|
|
53
|
+
categoryKey: string;
|
|
54
|
+
categoryLabel: string;
|
|
55
|
+
families: CategoryInventoryFamilyUsage[];
|
|
56
|
+
objectIds: string[];
|
|
57
|
+
}
|
|
58
|
+
interface CategoryInventoryClone {
|
|
59
|
+
family: CategoryInventoryFamily;
|
|
60
|
+
key: string;
|
|
61
|
+
label: string;
|
|
62
|
+
}
|
|
63
|
+
interface CategoryInventoryReassignment {
|
|
64
|
+
family: CategoryInventoryFamily;
|
|
65
|
+
floorId: string;
|
|
66
|
+
objectId: string;
|
|
67
|
+
objectType: CategoryInventoryObjectType;
|
|
68
|
+
fromCategoryKey: string;
|
|
69
|
+
toCategoryKey: string;
|
|
70
|
+
seatOverrideIndices?: number[];
|
|
71
|
+
}
|
|
72
|
+
interface CategoryInventoryRemediationChange {
|
|
73
|
+
categoryKey: string;
|
|
74
|
+
categoryLabel: string;
|
|
75
|
+
retainedFamily: CategoryInventoryFamily;
|
|
76
|
+
clones: CategoryInventoryClone[];
|
|
77
|
+
reassignments: CategoryInventoryReassignment[];
|
|
78
|
+
}
|
|
79
|
+
interface CategoryInventoryRemediationResult {
|
|
80
|
+
doc: ChartDoc;
|
|
81
|
+
changed: boolean;
|
|
82
|
+
changes: CategoryInventoryRemediationChange[];
|
|
83
|
+
before: CategoryInventoryConflict[];
|
|
84
|
+
after: CategoryInventoryConflict[];
|
|
85
|
+
}
|
|
86
|
+
/** Seat-weighted effective categories without expanding seat geometry. Runtime
|
|
87
|
+
* cost follows authored overrides rather than venue capacity, which keeps the
|
|
88
|
+
* Categories and quality surfaces cheap on 50K-seat charts. */
|
|
89
|
+
declare function effectiveSeatOwnerCategoryCounts(owner: RowObject | TableObject): Map<string, number>;
|
|
90
|
+
/**
|
|
91
|
+
* Return every category used by more than one incompatible inventory family.
|
|
92
|
+
* Ordering is document-stable: categories first, then the canonical family
|
|
93
|
+
* order, then floor/object order inside each family.
|
|
94
|
+
*/
|
|
95
|
+
declare function inspectCategoryInventoryConflicts(doc: ChartDoc): CategoryInventoryConflict[];
|
|
96
|
+
/** Author-facing copy: names every affected object by its LABEL (never an
|
|
97
|
+
* internal id), keeps the one-category-per-inventory-kind rule and points at
|
|
98
|
+
* the safe split repair. */
|
|
99
|
+
declare function describeCategoryInventoryConflict(conflict: CategoryInventoryConflict): string;
|
|
100
|
+
/**
|
|
101
|
+
* Build a deterministic, non-mutating candidate that isolates every conflicting
|
|
102
|
+
* category by inventory family. The first canonical family keeps the original
|
|
103
|
+
* stable category key; later families receive metadata-identical clones. No
|
|
104
|
+
* geometry, technical inventory identity, accessibility, reference inventory
|
|
105
|
+
* provenance, or existing publication/event snapshot is touched.
|
|
106
|
+
*/
|
|
107
|
+
declare function remediateCategoryInventoryConflicts(source: ChartDoc): CategoryInventoryRemediationResult;
|
|
108
|
+
|
|
109
|
+
export { CATEGORY_INVENTORY_FAMILIES as C, type CategoryInventoryClone as a, type CategoryInventoryConflict as b, type CategoryInventoryFamily as c, type CategoryInventoryFamilyUsage as d, type CategoryInventoryObjectType as e, type CategoryInventoryReassignment as f, type CategoryInventoryRemediationChange as g, type CategoryInventoryRemediationResult as h, type CategoryInventoryTarget as i, describeCategoryInventoryConflict as j, effectiveSeatOwnerCategoryCounts as k, inspectCategoryInventoryConflicts as l, remediateCategoryInventoryConflicts as r };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function k(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 t(e){let n=u(e);if(!n?.url)return;let{calibration:a,derivedScale:r,assetId:b,...g}=n;return g}function y(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 o(e){let n={...e};return delete n.referenceScan,delete n.referenceInventorySource,delete n.referenceSource,delete n.referenceInventoryExclusion,delete n.editor,n}function p(e){let n={...e};return delete n.referenceCategorySource,n}function I(e){let n=t(e),a=e.floors?.map(r=>({...r,objects:r.objects.map(o),referenceImage:void 0,backgroundImage:t(r)}));return{...e,categories:e.categories.map(p),objects:e.objects.map(o),referenceImage:void 0,backgroundImage:n,...a?{floors:a}:{}}}function m(e){return!!e.referenceImage?.assetId&&!!e.backgroundImage?.assetId&&e.referenceImage.assetId!==e.backgroundImage.assetId}var E=24,S=2,C={facilities:"Facilities","food-drink":"Food & drink",navigation:"Getting around",accessibility:"Accessibility"},_=["facilities","food-drink","navigation","accessibility"],i="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",c=[{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:i},{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:i},{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"}],x={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"},s=new Map(c.map(e=>[e.key,e]));function h(e){return e?s.get(e):void 0}function V(e){return h(e)?.path}function O(e){return typeof e=="string"&&s.has(e)}var L=c.map(e=>e.key);var N=["butt","round","square"],A=["miter","round","bevel"],P=["none","arrow"],d="round",M="round",l="none";function f(e){return e==="line"||e==="polyline"}function R(e){return e==="polygon"||f(e)}function Z(e){return{lineCap:e.lineCap??d,lineJoin:e.lineJoin??M,startEnding:e.startEnding??l,endEnding:e.endEnding??l}}function j(e){return{pointerLength:Math.min(48,Math.max(8,e*3)),pointerWidth:Math.min(40,Math.max(8,e*2.25))}}export{k as a,u as b,y as c,I as d,m as e,E as f,S as g,C as h,_ as i,c as j,x as k,h as l,V as m,O as n,L as o,N as p,A as q,P as r,d as s,M as t,l as u,f as v,R as w,Z as x,j as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ha as Y}from"./chunk-VDZ24QVV.js";function nn(c){return{kind:"radial",rowCount:0,rows:[],nearestRow:()=>-1,depthAt:(l,a)=>Math.hypot(l-c.x,a-c.y),gradientAt:(l,a)=>{let e=l-c.x,f=a-c.y,i=Math.hypot(e,f);return i<1e-9?[0,0]:[e/i,f/i]}}}function tn(c,l){if(!c.length)return null;let a=0,e=0,f=0;for(let n of c)a+=n.x,e+=n.y,f+=Math.hypot(n.x-l.x,n.y-l.y);let i=c.length;a/=i,e/=i,f/=i;let u=c[0],R=-1;for(let n of c){let o=Math.hypot(n.x-a,n.y-e);o>R&&(R=o,u=n)}let b=u.x-a,m=u.y-e,d=Math.hypot(b,m);d>1e-9?(b/=d,m/=d):(b=1,m=0);let y=[...c].sort((n,o)=>(n.x-a)*b+(n.y-e)*m-((o.x-a)*b+(o.y-e)*m)),t=0;for(let n of y){let o=Math.hypot(n.x-a,n.y-e);o>t&&(t=o)}return{pts:y,cx:a,cy:e,radius:t,depth:f}}function Z(c,l,a){let e=c.pts;if(e.length===1)return Math.hypot(l-e[0].x,a-e[0].y);let f=1/0;for(let i=0;i+1<e.length;i++){let u=e[i],R=e[i+1],b=R.x-u.x,m=R.y-u.y,d=b*b+m*m,y=d>1e-12?((l-u.x)*b+(a-u.y)*m)/d:0;y<0?y=0:y>1&&(y=1);let t=Math.hypot(l-(u.x+y*b),a-(u.y+y*m));t<f&&(f=t)}return f}var U=8;function en(c,l,a){let e=new Array(U).fill(1/0),f=new Array(U).fill(-1);for(let d=0;d<c.length;d++){let y=c[d],t=Math.hypot(l-y.cx,a-y.cy)-y.radius;for(let n=0;n<U;n++)if(t<e[n]){for(let o=U-1;o>n;o--)e[o]=e[o-1],f[o]=f[o-1];e[n]=t,f[n]=d;break}}let i=new Array(3).fill(1/0),u=new Array(3).fill(-1);for(let d of f){if(d<0)continue;let y=Z(c[d],l,a);for(let t=0;t<3;t++)if(y<i[t]){for(let n=2;n>t;n--)i[n]=i[n-1],u[n]=u[n-1];i[t]=y,u[t]=d;break}}if(u[0]<0)return 0;if(i[0]<1e-6)return c[u[0]].depth;let R=i[0]*2.2,b=0,m=0;for(let d=0;d<3;d++){let y=u[d];if(y<0||i[d]>R)continue;let t=1/(i[d]*i[d]);b+=t*c[y].depth,m+=t}return m>0?b/m:c[u[0]].depth}function on(c){let l=(e,f)=>en(c,e,f),a=(e,f)=>{let i=1/0,u=-1;for(let R=0;R<c.length;R++){let b=c[R];if(Math.hypot(e-b.cx,f-b.cy)-b.radius>=i)continue;let m=Z(b,e,f);m<i&&(i=m,u=R)}return u};return{kind:"rows",rowCount:c.length,rows:c,nearestRow:a,depthAt:l,gradientAt:(e,f)=>{let i=(l(e+.5,f)-l(e-.5,f))/1,u=(l(e,f+.5)-l(e,f-.5))/(2*.5),R=Math.hypot(i,u);return R<1e-9?[0,0]:[i/R,u/R]}}}function bn(c,l){let a=[];for(let e of c){let f=tn(e.points,l);f&&a.push(f)}return a.length<2?nn(l):(a.sort((e,f)=>e.depth-f.depth),on(a))}var rn=Math.PI/180,h=96,sn=6,ln=60,cn=150,$=.2,an=.35;function fn(c,l){let a=Math.atan2(l.x-c.x,l.y-c.y)/rn;return a<0?a+360:a}function z(c){if(!c.length)return NaN;let l=[...c].sort((a,e)=>a-e);return l[Math.floor(l.length/2)]}function J(c,l,a=2){let e=c.length,f=new Float64Array(e);for(let i=0;i<e;i++){let u=0,R=0;for(let b=-a;b<=a;b++){let m=i+b;if(l)m=(m%e+e)%e;else if(m<0||m>=e)continue;u+=c[m],R++}f[i]=u/R}return f}function hn(c,l){let a=c.filter(t=>t.rows.length>=1);if(a.length<1)return null;let e=[],f=0,i=0,u=0;for(let t of a)for(let n of t.rows){for(let o of n.pts)f+=o.x,i+=o.y,u++;if(n.pts.length>=4){let o=Y(n.pts);o&&Number.isFinite(o.cx)&&Number.isFinite(o.cy)&&e.push({x:o.cx,y:o.cy})}}if(!u)return null;let R={x:f/u,y:i/u},b=R;if(e.length>=8){let t=z(e.map(D=>D.x)),n=z(e.map(D=>D.y)),o=0;for(let D of a)for(let j of D.rows)for(let F of j.pts){let W=Math.hypot(F.x-R.x,F.y-R.y);W>o&&(o=W)}let B=0,S=o*.2;for(let D of a)for(let j of D.rows)for(let F of j.pts)Math.hypot(F.x-t,F.y-n)<S&&B++;Math.hypot(t-R.x,n-R.y)<=o&&B/u<.01&&(b={x:t,y:n})}let m=[];for(let t of a){let n={sectionId:t.sectionId,rMin:1/0,rMax:-1/0,samples:[]};for(let o of t.rows)for(let B of o.pts){let S=Math.hypot(B.x-b.x,B.y-b.y),D=Math.min(h-1,Math.floor(fn(b,B)/(360/h)));n.samples.push({r:S,bin:D,levelM:o.levelM}),S<n.rMin&&(n.rMin=S),S>n.rMax&&(n.rMax=S)}n.samples.length&&m.push(n)}if(!m.length)return null;m.sort((t,n)=>t.rMin+t.rMax-(n.rMin+n.rMax));let d=[];for(let t of m){let n=!1;for(let o of d){let B=Math.min(t.rMax,o.rMax)-Math.max(t.rMin,o.rMin),S=Math.min(t.rMax-t.rMin,o.rMax-o.rMin);if(S>1e-9&&B>=an*S){o.members.push(t),o.rMin=Math.min(o.rMin,t.rMin),o.rMax=Math.max(o.rMax,t.rMax),n=!0;break}}n||d.push({members:[t],rMin:t.rMin,rMax:t.rMax})}let y=[];for(let t of d){let n=new Array(h).fill(null);for(let r of t.members)for(let p of r.samples){let x=n[p.bin];x||(x={samples:[]},n[p.bin]=x),x.samples.push({r:p.r,levelM:p.levelM})}let o=n.map(r=>!!r);if(!o.filter(Boolean).length)continue;let S=[],D=[];for(let r of n){if(!r)continue;let p=1/0,x=-1/0;for(let A of r.samples)A.r<p&&(p=A.r),A.r>x&&(x=A.r);S.push(p),D.push(x)}let j=z(S),F=z(D);if(!(j>=$*F)||!(F>0))continue;let W=[...S].sort((r,p)=>r-p);if(!(W[Math.floor(W.length*.1)]>=$*F))continue;let V=n.map(r=>{if(!r)return null;let p=[...r.samples].sort((w,k)=>w.r-k.r),x=p[0].r,A=p[p.length-1].r,P=p[0].levelM,N=-1/0;for(let w of p)w.levelM>N&&(N=w.levelM);let M=[];for(let w of p){let k={r:w.r,l:w.levelM};for(;M.length&&Math.abs(M[M.length-1].r-k.r)<1e-9;){if(M[M.length-1].l<=k.l){k.skip=!0;break}M.pop()}if(!k.skip){for(;M.length>=2;){let L=M[M.length-2],v=M[M.length-1];if((v.r-L.r)*(k.l-L.l)-(v.l-L.l)*(k.r-L.r)<=0)M.pop();else break}M.push(k)}}let C=M.map(w=>w.r),_=M.map(w=>w.l);return{inner:x,outer:A,front:P,top:N,profile:{rs:C,ls:_}}}),O=o.slice();for(let r=0;r<h;r++){if(O[r])continue;let p=-1,x=-1,A=0;for(let s=1;s<=h;s++){let g=(r-s+h*2)%h;if(O[g]){p=g;break}}for(let s=1;s<=h;s++){let g=(r+s)%h;if(O[g]){x=g,A=s;break}}if(p<0||x<0)continue;let P=0;for(let s=1;s<=h;s++){let g=(r-s+h*2)%h;if(o[g]){P=s;break}}if(P-1+A>sn)continue;let M=V[p],C=V[x],_=P/(P+A),w=M.inner+(C.inner-M.inner)*_,k=M.outer+(C.outer-M.outer)*_,L=M.front+(C.front-M.front)*_,v=M.top+(C.top-M.top)*_;V[r]={inner:w,outer:k,front:L,top:v,profile:{rs:[w,k],ls:[L,v]}}}for(let r=0;r<h;r++)V[r]&&(O[r]=!0);let X=360/h,K=[],q=O.filter(Boolean).length,Q=[];if(q===h)Q.push({start:0,len:h});else{let r=0;for(;O[r];)r=(r+1)%h;let p=-1;for(let x=0;x<=h;x++){let A=(r+x)%h,P=x<h&&O[A];if(P&&p<0)p=A;else if(!P&&p>=0){let N=(A-p+h)%h||h;Q.push({start:p,len:N}),p=-1}}}for(let r of Q){if(r.len*X<ln&&r.len<h)continue;let p=r.len===h,x=new Float64Array(r.len),A=new Float64Array(r.len),P=new Float64Array(r.len),N=new Float64Array(r.len),M=[];for(let s=0;s<r.len;s++){let g=V[(r.start+s)%h];x[s]=g.inner,A[s]=g.outer,P[s]=g.front,N[s]=g.top,M.push(g.profile??{rs:[g.inner,g.outer],ls:[g.front,g.top]})}let C=J(x,p),_=J(A,p),w=J(P,p),k=J(N,p);for(let s=0;s<r.len;s++)C[s]>x[s]&&(C[s]=x[s]),_[s]<A[s]&&(_[s]=A[s]),C[s]>_[s]-1e-6&&(C[s]=Math.max(0,_[s]-1e-6)),k[s]<w[s]&&(k[s]=w[s]);let L={startBin:r.start,binCount:r.len,closed:p,innerR:C,outerR:_,frontLevelM:w,topLevelM:k,profiles:M},v=(s,g,I)=>{let H=M[s],T=H.rs,E=H.ls;if(g<=T[0]){E[0]>I&&(E[0]=I);return}if(g>=T[T.length-1]){E[E.length-1]>I&&(E[E.length-1]=I);return}for(let G=0;G+1<T.length;G++)if(g<=T[G+1]){E[G]>I&&(E[G]=I),E[G+1]>I&&(E[G+1]=I);return}};for(let s=0;s<r.len;s++){let g=n[(r.start+s)%h];if(g)for(let I of g.samples){v(s,I.r,I.levelM);let H=p?(s-1+r.len)%r.len:s-1,T=p?(s+1)%r.len:s+1;H>=0&&v(H,I.r,I.levelM),T<r.len&&v(T,I.r,I.levelM)}}K.push(L)}K.reduce((r,p)=>r+p.binCount*X,0)<cn||y.push({arcs:K,sectionIds:t.members.map(r=>r.sectionId),innerRMedian:j,outerRMedian:F})}if(!y.length)return null;if(y.sort((t,n)=>t.innerRMedian-n.innerRMedian),l){let t=y[y.length-1].outerRMedian;if(Math.hypot(l.x-b.x,l.y-b.y)>.9*t)return null}return{centre:b,binCount:h,binStepDeg:360/h,rings:y}}function dn(c,l,a,e){let f=c.binStepDeg,i=a/f-.5-l.startBin;i=(i%c.binCount+c.binCount)%c.binCount,i>l.binCount-1&&(l.closed?i=i-l.binCount<l.binCount-i?0:l.binCount-1:i=i-(l.binCount-1)<c.binCount-i?l.binCount-1:0);let u=Math.floor(i),R=l.closed?(u+1)%l.binCount:Math.min(l.binCount-1,u+1),b=i-u,m=d=>{let y=l.profiles[d],t=y.rs,n=y.ls;if(e<=t[0])return n[0];if(e>=t[t.length-1])return n[n.length-1];for(let o=0;o+1<t.length;o++)if(e<=t[o+1]){let B=t[o+1]-t[o],S=B>1e-9?(e-t[o])/B:0;return n[o]+(n[o+1]-n[o])*S}return n[n.length-1]};return m(u)*(1-b)+m(R)*b}export{bn as a,fn as b,hn as c,dn as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c,j as M,m as T}from"./chunk-CXF32VPG.js";var d=7,N=10,Z=15,R=11,k=.85,E=12,_=4.5,C=3,l="#000000",u="#ffffff",g=24,I=18.67;function G(t,n=400){return t>=g||n>=700&&t>=I?C:_}function H(t,n){return t*n>=E}var P=24,x={wheelchair:"M7.8 4.5a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM8 7L10.5 7L10.5 15L8 15ZM8 12.5L18 12.5L18 15L8 15ZM16 15L18 15L18 18L16 18ZM5.5 16a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0zM8 16a3 3 0 1 1 6 0a3 3 0 1 1 -6 0z",companion:"M5.5 6.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM4.5 18.5L6 11.5L11 11.5L12.5 18.5ZM12.5 7.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0zM11.5 19L13 12.5L18 12.5L19.5 19Z","semi-ambulatory":"M8.3 3.8a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0zM9 6.2L12 6.6L11 13.5L8.6 13L9 6.2ZM8.6 13L11 13L9.5 21L7 21ZM10.4 13L12.6 13L13.6 21L11.2 21ZM11.2 7.2L14 8L14.6 9.6L11.9 8.9ZM14.4 6.8L15.9 6.8L16.4 21L14.8 21Z",hearing:"M15.5 3.5C9 2.2 5.5 6 5.5 11.5C5.5 16 8 19.5 10.5 21C13.2 22.6 16.4 20.8 15.4 18C14.8 16.4 12.9 16.1 13 14C13.1 11.9 15.8 11.4 15.8 8.5C15.8 5.4 13 4 15.5 3.5Z",cart:"M5.5 6L18.5 6a2.5 2.5 0 0 1 2.5 2.5L21 15.5a2.5 2.5 0 0 1 -2.5 2.5L11 18L7 20.5L7.5 18L5.5 18a2.5 2.5 0 0 1 -2.5 -2.5L3 8.5a2.5 2.5 0 0 1 2.5 -2.5zM6.5 11L17.5 11L17.5 12.6L6.5 12.6zM6.5 14L17.5 14L17.5 15.6L6.5 15.6z","sign-language":"M7 11L17 11L17 18a2 2 0 0 1 -2 2L9 20a2 2 0 0 1 -2 -2zM7.6 5L9.4 5L9.4 12L7.6 12zM9.9 3.5L11.7 3.5L11.7 12L9.9 12zM12.3 3.5L14.1 3.5L14.1 12L12.3 12zM14.6 5L16.4 5L16.4 12L14.6 12zM7.2 12.5L5 10.2L6.4 8.9L8.6 11.2Z","plus-size":"M9.4 4.3a2.6 2.6 0 1 0 5.2 0a2.6 2.6 0 1 0 -5.2 0zM5 20L4 13C4 10.5 7 9.5 12 9.5C17 9.5 20 10.5 20 13L19 20Z","lift-armrest":"M5 6L8 6L8 19L5 19zM5 16L18 16L18 19L5 19zM8 12L17 12L17 14.5L8 14.5zM14 7L16 7L16 12L14 12zM12 7L18 7L15 3Z"},y=x.wheelchair;function X(t){if(!t?.length)return null;let n=t.includes("wheelchair")?"wheelchair":t[0];return x[n]??null}function v(t){return/-(\d{1,5})$/.exec(t)?.[1]??t}var a=T;function w(t,n,L){let r=c(t),o=c(n);if(!r||!o)return n;let e=Math.max(0,Math.min(1,L));return`#${r.map((s,p)=>Math.round(s*e+o[p]*(1-e))).map(s=>s.toString(16).padStart(2,"0")).join("")}`}var F=3;function b(t,n,L=_){let r=a(n,t);if(r!=null&&r>=L)return n;let o=a(l,t)??0,e=a(u,t)??0;return o===0&&e===0?n:o>=e?l:u}var O=3;function K(t){let n=a("#ffffff",t);if(n!=null&&n>=O)return"#ffffff";let L=a(l,t)??0,r=a(u,t)??0;return L===0&&r===0?"#ffffff":L>=r?l:u}var m=/^#[0-9a-f]{6}$/i;function S(t){let n=c(t);return n!=null&&M(n)>.5}var h="#e5e7eb",z="#273142";function Y(t){return S(t)?h:z}function D(t,n,L=_){let r=m.test(t.trim()),o=t.trim().toLowerCase(),e=0,i=0,s=null;for(let f of n){if(!r||!m.test(f.trim()))continue;e+=1;let A=b(f,t,L);A.toLowerCase()!==o&&(i+=1,s=A)}return{total:e,overridden:i,status:e===0?"none":i===0?"applies":i===e?"overridden":"mixed",overrideInk:s}}export{d as a,N as b,Z as c,R as d,k as e,E as f,_ as g,C as h,l as i,u as j,G as k,H as l,P as m,x as n,y as o,X as p,v as q,a as r,w as s,F as t,b as u,K as v,S as w,h as x,z as y,Y as z,D as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{x as X}from"./chunk-VDZ24QVV.js";var Y=9;function E(t){if(t.kind==="circle")return{hx:t.r,hy:t.r};let e=t.width/2,o=t.height/2,n=t.rotation??0;if(!n)return{hx:e,hy:o};let r=n*Math.PI/180,s=Math.abs(Math.cos(r)),c=Math.abs(Math.sin(r));return{hx:e*s+o*c,hy:e*c+o*s}}function B(t,e,o){let n=e-t.seat.x,r=o-t.seat.y;if(t.shape.kind==="circle")return n*n+r*r<=t.shape.r*t.shape.r;let s=t.shape.rotation??0,c=n,d=r;if(s){let u=-s*Math.PI/180,m=Math.cos(u),y=Math.sin(u);c=n*m-r*y,d=n*y+r*m}return Math.abs(c)<=t.shape.width/2&&Math.abs(d)<=t.shape.height/2}function L(t,e,o,n,r){if(t.shape.kind==="circle"){let h=Math.min(Math.max(t.seat.x,e),n),l=Math.min(Math.max(t.seat.y,o),r),x=t.seat.x-h,p=t.seat.y-l;return x*x+p*p<=t.shape.r*t.shape.r}let s=t.shape.rotation??0;if(!s)return t.seat.x-t.hx<=n&&t.seat.x+t.hx>=e&&t.seat.y-t.hy<=r&&t.seat.y+t.hy>=o;let c=s*Math.PI/180,d=Math.cos(c),u=Math.sin(c),m=t.shape.width/2,y=t.shape.height/2,f=[[-m,-y],[m,-y],[m,y],[-m,y]].map(([h,l])=>[t.seat.x+h*d-l*u,t.seat.y+h*u+l*d]),P=[[e,o],[n,o],[n,r],[e,r]],A=[[1,0],[0,1],[d,u],[-u,d]];for(let[h,l]of A){let x=1/0,p=-1/0;for(let[I,D]of f){let a=I*h+D*l;a<x&&(x=a),a>p&&(p=a)}let M=1/0,S=-1/0;for(let[I,D]of P){let a=I*h+D*l;a<M&&(M=a),a>S&&(S=a)}if(p<M||S<x)return!1}return!0}function j(t,e={}){let o=e.seatRadius??Y,n=t.length,r=new Array(n),s=1/0,c=1/0,d=-1/0,u=-1/0,m=0;for(let a=0;a<n;a++){let i=t[a],R=e.shapeOf?.(i)??{kind:"circle",r:o},{hx:w,hy:b}=E(R);r[a]={seat:i,shape:R,hx:w,hy:b},i.x-w<s&&(s=i.x-w),i.y-b<c&&(c=i.y-b),i.x+w>d&&(d=i.x+w),i.y+b>u&&(u=i.y+b),w>m&&(m=w),b>m&&(m=b)}n===0&&(s=0,c=0,d=0,u=0);let y=m>0?m*4:1,f=Math.max(d-s,0),P=Math.max(u-c,0),A=Math.max(64,e.maxCells??n*4),h=y,l=Math.max(1,Math.ceil(f/h)||1),x=Math.max(1,Math.ceil(P/h)||1);for(;l*x>A&&(l>1||x>1);)h*=2,l=Math.max(1,Math.ceil(f/h)||1),x=Math.max(1,Math.ceil(P/h)||1);let p=l*x,M=new Int32Array(p+1),S=0;for(let a=0;a<n;a++){let i=r[a],R=X(Math.floor((i.seat.x-i.hx-s)/h),0,l-1),w=X(Math.floor((i.seat.x+i.hx-s)/h),0,l-1),b=X(Math.floor((i.seat.y-i.hy-c)/h),0,x-1),k=X(Math.floor((i.seat.y+i.hy-c)/h),0,x-1);for(let C=b;C<=k;C++)for(let g=R;g<=w;g++)M[C*l+g+1]++,S++}for(let a=0;a<p;a++)M[a+1]+=M[a];let I=new Int32Array(S),D=M.slice(0,p);for(let a=0;a<n;a++){let i=r[a],R=X(Math.floor((i.seat.x-i.hx-s)/h),0,l-1),w=X(Math.floor((i.seat.x+i.hx-s)/h),0,l-1),b=X(Math.floor((i.seat.y-i.hy-c)/h),0,x-1),k=X(Math.floor((i.seat.y+i.hy-c)/h),0,x-1);for(let C=b;C<=k;C++)for(let g=R;g<=w;g++){let v=C*l+g;I[D[v]++]=a}}return{seats:t,entries:r,minX:s,minY:c,cell:h,cols:l,rows:x,cellStart:M,items:I,stamp:new Int32Array(n),epoch:0}}function q(t,e,o={}){let{cols:n,rows:r,cell:s,minX:c,minY:d,cellStart:u,items:m,entries:y}=t,f=Math.floor((e.x-c)/s),P=Math.floor((e.y-d)/s);if(f<0||P<0||f>=n||P>=r)return null;let A=P*n+f,h=u[A+1],l=-1,x=1/0;for(let p=u[A];p<h;p++){let M=m[p],S=y[M];if(o.filter&&!o.filter(S.seat.id,S.seat)||!B(S,e.x,e.y))continue;let I=e.x-S.seat.x,D=e.y-S.seat.y,a=I*I+D*D;(a<x||a===x&&M<l)&&(x=a,l=M)}return l<0?null:y[l].seat.id}function F(t,e,o,n={}){if(!(o>0))return null;let{cols:r,rows:s,cell:c,minX:d,minY:u,cellStart:m,items:y,entries:f}=t,P=Math.max(0,Math.floor((e.x-o-d)/c)),A=Math.min(r-1,Math.floor((e.x+o-d)/c)),h=Math.max(0,Math.floor((e.y-o-u)/c)),l=Math.min(s-1,Math.floor((e.y+o-u)/c));if(P>A||h>l)return null;let x=-1,p=o*o,M=t.stamp,S=++t.epoch;for(let I=h;I<=l;I++){let D=I*r;for(let a=P;a<=A;a++){let i=D+a,R=m[i+1];for(let w=m[i];w<R;w++){let b=y[w];if(M[b]===S)continue;M[b]=S;let k=f[b];if(n.filter&&!n.filter(k.seat.id,k.seat))continue;let C=e.x-k.seat.x,g=e.y-k.seat.y,v=C*C+g*g;(v<p||v===p&&b<x)&&(p=v,x=b)}}}return x<0?null:f[x].seat.id}function U(t,e,o={}){let n=Math.min(e.x,e.x+e.width),r=Math.max(e.x,e.x+e.width),s=Math.min(e.y,e.y+e.height),c=Math.max(e.y,e.y+e.height),d=o.mode??"center",{cols:u,rows:m,cell:y,minX:f,minY:P,cellStart:A,items:h,entries:l}=t,x=Math.max(0,Math.floor((n-f)/y)),p=Math.min(u-1,Math.floor((r-f)/y)),M=Math.max(0,Math.floor((s-P)/y)),S=Math.min(m-1,Math.floor((c-P)/y));if(x>p||M>S)return[];let I=[],D=t.stamp,a=++t.epoch;for(let i=M;i<=S;i++){let R=i*u;for(let w=x;w<=p;w++){let b=R+w,k=A[b+1];for(let C=A[b];C<k;C++){let g=h[C];if(D[g]===a)continue;D[g]=a;let v=l[g];if(o.filter&&!o.filter(v.seat.id,v.seat))continue;(d==="center"?v.seat.x>=n&&v.seat.x<=r&&v.seat.y>=s&&v.seat.y<=c:L(v,n,s,r,c))&&I.push(g)}}}return I.sort((i,R)=>i-R),I.map(i=>l[i].seat.id)}function _(t){let e=t.cols*t.rows,o=0,n=0;for(let s=0;s<e;s++){let c=t.cellStart[s+1]-t.cellStart[s];c>0&&o++,c>n&&(n=c)}let r=t.items.length;return{cell:t.cell,cols:t.cols,rows:t.rows,cells:e,occupiedCells:o,refs:r,maxPerCell:n,meanPerOccupiedCell:o?r/o:0}}function N(t,e=0){let o=Math.max(1,t.width,t.height),n={x:t.x+t.width/2,y:t.y+t.height/2},r=o*1.55,s=Math.max(o*.82,Math.max(0,e)+o*.45);return{target:n,distance:r,height:s,focalLength:Math.hypot(r,s),yawRad:-8*Math.PI/180}}function O(t,e,o=0){let n=e.x-t.target.x,r=e.y-t.target.y,s=Math.cos(t.yawRad),c=Math.sin(t.yawRad),d=n*s-r*c,m=n*c+r*s-t.distance,y=o-t.height,f=Math.hypot(t.distance,t.height),P=(-t.distance*m-t.height*y)/f,A=(-t.height*m+t.distance*y)/f,h=Math.max(f*.08,P),l=t.focalLength/h;return{x:t.target.x+d*l,y:t.target.y-A*l,depth:h,scale:l}}function W(t,e){return{x:t.a*e.x+t.c*e.y+t.e,y:t.b*e.x+t.d*e.y+t.f}}function Z(t){let e=t.a*t.d-t.b*t.c;if(!Number.isFinite(e)||Math.abs(e)<1e-9)throw new Error("perspective projection produced a singular affine");let o=t.d/e,n=-t.b/e,r=-t.c/e,s=t.a/e;return{a:o,b:n,c:r,d:s,e:-(o*t.e+r*t.f),f:-(n*t.e+s*t.f)}}function z(t,e){return{a:t.a*e.a+t.c*e.b,b:t.b*e.a+t.d*e.b,c:t.a*e.c+t.c*e.d,d:t.b*e.c+t.d*e.d,e:t.a*e.e+t.c*e.f+t.e,f:t.b*e.e+t.d*e.f+t.f}}function G(t,e,o=()=>0){let n=O(t,e,o(e)),r={x:e.x+1,y:e.y},s={x:e.x,y:e.y+1},c=O(t,r,o(r)),d=O(t,s,o(s)),u=c.x-n.x,m=c.y-n.y,y=d.x-n.x,f=d.y-n.y;return{a:u,b:m,c:y,d:f,e:n.x-u*e.x-y*e.y,f:n.y-m*e.x-f*e.y}}function J(t){let e=Math.hypot(t.a,t.b),o=t.a*t.d-t.b*t.c;return{rotationDeg:Math.atan2(t.b,t.a)*180/Math.PI,scaleX:e,scaleY:o/Math.max(e,1e-9),skewX:(t.a*t.c+t.b*t.d)/Math.max(o,1e-9)}}export{Y as a,j as b,q as c,F as d,U as e,_ as f,N as g,O as h,W as i,Z as j,z as k,G as l,J as m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ea as v,qa as _,za as A}from"./chunk-VDZ24QVV.js";function x(t){let n=Number(t.slice(t.lastIndexOf(":")+1));return Number.isFinite(n)?n:-1}function H(t,n,i){let e=new Map;for(let o of t){if(o.kind==="booth")continue;let a=e.get(o.rowId);a?a.push(o):e.set(o.rowId,[o])}let c=o=>i.has(o.id)||n(o.id)!=="free",l=[];for(let o of e.values())if(!(o.length<3)){o.sort((a,p)=>x(a.id)-x(p.id));for(let a=1;a<o.length-1;a++){let p=o[a];if(c(p))continue;let g=o[a-1],d=o[a+1];x(p.id)-x(g.id)!==1||x(d.id)-x(p.id)!==1||!c(g)||!c(d)||!i.has(g.id)&&!i.has(d.id)||l.push(p)}}return l}function C(t,n){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let i=t.id.lastIndexOf(":");if(i<0)return n;let e=Number(t.id.slice(i+1));return Number.isFinite(e)?e:n}function T(t,n){let i=t.x-n.x,e=t.y-n.y;return i*i+e*e}function N(t){let n=0,i=0;for(let e of t)n+=e.x,i+=e.y;return{x:n/t.length,y:i/t.length}}function M(t,n){return t.find(i=>i.focalPoint)?.focalPoint??n}function E(t){return t.commercial?.premium===!0}function q(t,n,i){let e=Math.floor(i.qty);if(!Number.isFinite(e)||e<=0)return{labels:[],reason:"sold_out"};let{categoryKey:c,zoneId:l,focal:o,preferPremium:a}=i,p=new Map,g=[];if(t.forEach((r,b)=>{let m=n.has(r.label)&&(!c||r.categoryKey===c)&&(!l||r.zoneId===l),f=r.logicalRowId??r.rowId,u=p.get(f);u||(u=[],p.set(f,u)),u.push({seat:r,index:C(r,b),elig:m}),m&&g.push(r)}),g.length===0)return{labels:[],reason:"sold_out"};let d=null,s=r=>{if(!d)return!0;if(a&&r.nonPremium!==d.nonPremium)return r.nonPremium<d.nonPremium;if(r.orphan!==d.orphan)return r.orphan<d.orphan;if(r.d2!==d.d2)return r.d2<d.d2;let b=r.rowId.localeCompare(d.rowId);return b!==0?b<0:r.startIndex<d.startIndex};for(let[r,b]of p){let m=[...b].sort((u,k)=>u.index-k.index),f=0;for(;f<m.length;){if(!m[f].elig){f++;continue}let u=f;for(;u<m.length&&m[u].elig&&(u===f||m[u].index===m[u-1].index+1);)u++;let k=u-f;for(let y=0;y+e<=k;y++){let B=y,j=k-(y+e),F=B===1||j===1?1:0,h=m.slice(f+y,f+y+e).map(I=>I.seat),O={labels:h.map(I=>I.label),seats:h,rowId:r,startIndex:m[f+y].index,orphan:F,nonPremium:a?h.reduce((I,L)=>I+(E(L)?0:1),0):0,d2:T(N(h),M(h,o))};s(O)&&(d=O)}f=u}}return d?{labels:d.labels}:g.length<e?{labels:[],reason:"not_enough_together"}:{labels:g.map((r,b)=>({seat:r,i:b,d2:T(r,r.focalPoint??o)})).sort((r,b)=>{if(a){let f=E(r.seat)?0:1,u=E(b.seat)?0:1;if(f!==u)return f-u}if(r.d2!==b.d2)return r.d2-b.d2;let m=(r.seat.logicalRowId??r.seat.rowId).localeCompare(b.seat.logicalRowId??b.seat.rowId);return m!==0?m:C(r.seat,r.i)-C(b.seat,b.i)}).slice(0,e).map(r=>r.seat.label)}}function $(t,n,i,e){let c=Math.floor(e.qty),l=q(t,i,e),a=n.filter(s=>s.bookingMode==="whole"&&s.capacity===c&&i.has(s.label)&&(!e.categoryKey||s.categoryKey===e.categoryKey)&&(!e.zoneId||s.zoneId===e.zoneId)).map(s=>({table:s,d2:T(s.center,s.focalPoint??e.focal)})).sort((s,w)=>s.d2-w.d2||s.table.label.localeCompare(w.table.label))[0];if(!a)return l;if(!l.labels.length)return{labels:[a.table.label]};let p=new Map(t.map(s=>[s.label,s])),g=l.labels.map(s=>p.get(s)).filter(s=>!!s),d=g.length?T(N(g),M(g,e.focal)):Number.POSITIVE_INFINITY;return a.d2<d?{labels:[a.table.label]}:l}function D(t){return{code:"ticket_option_not_applicable",labels:t,message:"That ticket choice is not available for the selected seat."}}function P(t,n){let i=t.applicability;return i?!(i.seatLabels?.length&&!i.seatLabels.includes(n.label)||i.accessibility?.length&&!i.accessibility.some(e=>n.accessibility?.includes(e))):!0}function Q(t,n){return(t.categories.find(i=>i.key===n.categoryKey)?.tiers??[]).filter(i=>P(i,n))}function K(t,n,i){let e=t.categories.find(l=>l.key===n.categoryKey)?.tiers;if(!e?.length)return{kind:"none"};let c=i==null?e.find(l=>P(l,n)):e.find(l=>l.id===i&&P(l,n));return c?{kind:"resolved",tier:c}:{kind:"invalid"}}function z(t,n){return(t.logicalRowId??t.rowId)===(n.logicalRowId??n.rowId)}function R(t){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let n=t.id.slice(t.id.lastIndexOf(":")+1),i=Number(n);return Number.isInteger(i)?i:void 0}function G(t,n){if(!z(t,n))return!1;let i=R(t),e=R(n);return i!=null&&e!=null&&Math.abs(i-e)===1}function U(t,n){if(!n.length)return null;let i=new Map(v(t,{resolveEyeHeights:!1}).map(o=>[o.label,o])),e=n.flatMap(o=>{let a=i.get(o.label);return a?[{selection:o,seat:a}]:[]}),c=e.map(({seat:o})=>o).filter(o=>o.accessibility?.includes("wheelchair")),l=[];for(let{selection:o,seat:a}of e){let p=K(t,a,o.tierId),g=p.kind==="resolved"?p.tier:void 0;(a.accessibility?.includes("companion")||g?.restriction==="companion")&&!c.some(s=>s.id!==a.id&&G(a,s))&&l.push(a.label)}return l.length?{code:"companion_pair_required",labels:l,message:"Select the adjacent wheelchair place with each companion ticket."}:null}function X(t,n){if(!n.length)return null;let i=new Map(v(t,{resolveEyeHeights:!1}).map(o=>[o.label,o])),e=new Set(t.categories.filter(o=>o.notForSale).map(o=>o.key)),c=[],l=[];for(let o of n){let a=i.get(o.label);if(!a)continue;if(e.has(a.categoryKey)){c.push(a.label);continue}K(t,a,o.tierId).kind==="invalid"&&l.push(a.label)}return c.length?{code:"not_for_sale",labels:c,message:"These seats are not for sale."}:l.length?D(l):U(t,n)}var S=class extends Error{constructor(i,e){super(e);this.objectId=i;this.name="GroupedTableProjectionError"}};function V(t){let n=t.minOccupancy,i=t.maxOccupancy;if(!Number.isInteger(n)||!Number.isInteger(i)||n<1||i<n||i>t.seatCount)throw new S(t.id,`Table "${t.label}" has invalid variable-occupancy bounds`);return{min:n,max:i}}function te(t,n){if(n!==2)return[];let i=[];for(let e of A(t)){if(e.type!=="table"||!e.bookAsWhole&&!e.variableOccupancy)continue;if(e.bookAsWhole&&e.variableOccupancy)throw new S(e.id,`Table "${e.label}" cannot be whole-table and variable-occupancy inventory`);if(!Number.isInteger(e.seatCount)||e.seatCount<1||!e.label.trim())throw new S(e.id,"Grouped tables require a label and at least one chair");let c=e.variableOccupancy?"variable":"whole",l=c==="variable"?V(e):{min:e.seatCount,max:e.seatCount};i.push({objectId:e.id,label:e.label,...e.displayLabel?{displayLabel:e.displayLabel}:{},...e.displayType?{displayType:e.displayType}:{},categoryKey:e.categoryKey,mode:c,capacity:e.seatCount,minOccupancy:l.min,maxOccupancy:l.max,chairs:_(e)})}return i}export{H as a,q as b,$ as c,D as d,P as e,Q as f,K as g,U as h,X as i,S as j,te as k};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ma as b,qa as p,ra as h,wa as I,za as d}from"./chunk-VDZ24QVV.js";var m="__sl_ga__",f=1e5,v=1e5;function j(t,e){return`${m}${encodeURIComponent(t)}__${e+1}`}function S(t){let e=t.inventorySegments;if(e===void 0)return!0;if(!Array.isArray(e)||e.length<1||e.length>256)return!1;let r=0,i=new Map;for(let o of e){if(!o||typeof o.sourceAreaId!="string"||!o.sourceAreaId.trim()||o.sourceAreaId.length>160||!Number.isInteger(o.startIndex)||o.startIndex<0||!Number.isInteger(o.count)||o.count<1||o.startIndex+o.count>f||(r+=o.count,r>f))return!1;let u=i.get(o.sourceAreaId)??[],n=o.startIndex+o.count;if(u.some(s=>o.startIndex<s.end&&n>s.start))return!1;u.push({start:o.startIndex,end:n}),i.set(o.sourceAreaId,u)}return r===t.capacity}function A(t){let e=Math.min(f,Math.max(0,Math.floor(t.capacity)));return t.inventorySegments===void 0?e?[{sourceAreaId:t.id,startIndex:0,count:e}]:[]:S(t)?t.inventorySegments.map(r=>({...r})):[]}function y(t){return A(t).flatMap(e=>Array.from({length:e.count},(r,i)=>j(e.sourceAreaId,e.startIndex+i)))}function M(t,e){if(t.inventorySegments===void 0||e===t.capacity)return t.inventorySegments;if(e<t.capacity)return;let r=A(t);if(!r.length)return;let i=e-t.capacity;if(!i)return r;let u=r.filter(s=>s.sourceAreaId===t.id).reduce((s,a)=>Math.max(s,a.startIndex+a.count),0),n=r[r.length-1];if(n?.sourceAreaId===t.id&&n.startIndex+n.count===u)n.count+=i;else{if(r.length>=256)return;r.push({sourceAreaId:t.id,startIndex:u,count:i})}return r}function R(t){return d(t).filter(e=>e.type==="gaArea")}function N(t){return t.startsWith(m)}var g="__ungrouped__";function x(t){return t.type==="row"?b(t).map(e=>e.label):t.type==="table"?p(t).map(e=>e.label):t.type==="booth"?h(t).map(e=>e.label):t.type==="gaArea"?y(t):[]}function O(t){return t.type==="row"||t.type==="table"||t.type==="booth"||t.type==="gaArea"}function _(t){let e=d(t),r=e.filter(n=>n.type==="section"),i=new Map;for(let n of r){let s=n.logicalSectionId??n.id;i.get(s)||i.set(s,{id:s,label:n.displayLabel||n.label||"Section",zone:n.zone,seatCount:0,objectIds:[],seatLabels:[]})}let o={id:g,label:"Other seats",seatCount:0,objectIds:[],seatLabels:[]},u=new Map;for(let n of e){if(!O(n))continue;let s=x(n);if(s.length===0)continue;let a=I(e,n),c=a?i.get(a.logicalSectionId??a.id):o;c.seatCount+=s.length,c.objectIds.push(n.id),c.seatLabels.push(...s),u.set(n.id,c.id)}return{sections:[...i.values()],ungrouped:o.objectIds.length?o:null,objectToSection:u}}function C(t,e){return e.has(t.id)||!!t.logicalSectionId&&e.has(t.logicalSectionId)||!!t.zone&&e.has(t.zone)}function G(t,e){let r=new Set;if(!e.size)return r;let{sections:i,ungrouped:o,objectToSection:u}=_(t),n=new Set,s=new Map(i.map(c=>[c.id,c.zone]));for(let c of i){let l=s.get(c.id);(e.has(c.id)||l&&e.has(l))&&n.add(c.id)}let a=!!o&&e.has(g);for(let[c,l]of u)(n.has(l)||a&&l===g)&&r.add(c);return r}function U(t,e){if(!e.size)return t;let r=G(t,e),i=e instanceof Set?e:new Set(e),o=n=>!(r.has(n.id)||n.type==="section"&&C(n,i));if(t.floors&&t.floors.length){let n=!1,s=t.floors.map(a=>{let c=a.objects.filter(o);return c.length!==a.objects.length&&(n=!0),c.length===a.objects.length?a:{...a,objects:c}});return n?{...t,floors:s,objects:s[0].objects}:t}let u=t.objects.filter(o);return u.length===t.objects.length?t:{...t,objects:u}}export{f as a,v as b,j as c,S as d,A as e,y as f,M as g,R as h,N as i,g as j,_ as k,C as l,G as m,U as n};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var T=/^#[0-9a-fA-F]{6}$/,N=/^#?([\da-f]{3}|[\da-f]{6})$/i,w=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\d.]+))?\s*\)$/i;function d(n){return typeof n=="string"&&T.test(n)}function $(n){let r=n.replace("#","");return{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16)}}function c(n){let r=N.exec((n??"").trim());if(!r)return null;let t=r[1].length===3?r[1].split("").map(o=>o+o).join(""):r[1],e=parseInt(t,16);return[e>>16&255,e>>8&255,e&255]}function _(n){let r=c(n);return r?[r[0]/255,r[1]/255,r[2]/255]:null}function A({r:n,g:r,b:t}){let e=o=>Math.max(0,Math.min(255,Math.round(o))).toString(16).padStart(2,"0");return`#${e(n)}${e(r)}${e(t)}`}function m(n,r,t){return A({r:n,g:r,b:t})}function y(n){return m(n[0]*255,n[1]*255,n[2]*255)}function I(n){let r=n.trim(),t=N.exec(r);if(t&&r.startsWith("#"))return`#${(t[1].length===3?t[1].split("").map(s=>s+s).join(""):t[1]).toLowerCase()}`;let e=w.exec(r);if(!e||e[4]!=null&&Number(e[4])<.999)return null;let o=[Number(e[1]),Number(e[2]),Number(e[3])];return o.some(i=>!Number.isInteger(i)||i<0||i>255)?null:`#${o.map(i=>i.toString(16).padStart(2,"0")).join("")}`}function l(n){let r=n/255;return r<=.04045?r/12.92:((r+.055)/1.055)**2.4}function h(n){let{r,g:t,b:e}=$(n);return .2126*l(r)+.7152*l(t)+.0722*l(e)}function x(n){return .2126*l(n[0])+.7152*l(n[1])+.0722*l(n[2])}function S(n){return x([n[0]*255,n[1]*255,n[2]*255])}function p(n,r){let t=h(n),e=h(r);return(Math.max(t,e)+.05)/(Math.min(t,e)+.05)}function j(n,r){let t=c(n),e=c(r);if(!t||!e)return null;let o=x(t),i=x(e);return(Math.max(o,i)+.05)/(Math.min(o,i)+.05)}var F=4.5,M=3;function X(n,r,t){return p(n,r)>=t}function C(n){let r=n.trim();if(r.startsWith("#")){let e=c(r);return e?(.2126*e[0]+.7152*e[1]+.0722*e[2])/255:NaN}let t=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/.exec(r);return t?(.2126*+t[1]+.7152*+t[2]+.0722*+t[3])/255:NaN}function E(n){return .2126*n[0]+.7152*n[1]+.0722*n[2]}function G(n,r=.6){let t=C(n);return!Number.isNaN(t)&&t>r}function V(n,r){let t=c(n);return t?m(...t.map(e=>e+(255-e)*r)):n}function W(n,r){let t=c(n);return t?m(...t.map(e=>e*(1-r))):n}function B(n,r,t){let e=c(n),o=c(r);return!e||!o?n:m(e[0]+(o[0]-e[0])*t,e[1]+(o[1]-e[1])*t,e[2]+(o[2]-e[2])*t)}function O(n,r){let t=0,e=0,o=0,i=0;for(let s of n){let u=c(s.hex);!u||s.w<=0||(t+=u[0]*s.w,e+=u[1]*s.w,o+=u[2]*s.w,i+=s.w)}return i>0?m(t/i,e/i,o/i):r}function H(n,r,t){return[n[0]+(r[0]-n[0])*t,n[1]+(r[1]-n[1])*t,n[2]+(r[2]-n[2])*t]}function P(n,r){let t=c(n);if(!t)return n;let e=.2126*t[0]+.7152*t[1]+.0722*t[2];return m(...t.map(o=>o+(e-o)*r))}function U(n,r){let t=E(n);return H(n,[t,t,t],r)}function k(n,r){let t=c(n);return t?`rgba(${t[0]},${t[1]},${t[2]},${r})`:n}var Y=k;function v({r:n,g:r,b:t}){let e=n/255,o=r/255,i=t/255,s=Math.max(e,o,i),u=Math.min(e,o,i),a=(s+u)/2;if(s===u)return{h:0,s:0,l:a};let g=s-u,f=a>.5?g/(2-s-u):g/(s+u),b;return s===e?b=((o-i)/g+(o<i?6:0))/6:s===o?b=((i-e)/g+2)/6:b=((e-o)/g+4)/6,{h:b,s:f,l:a}}function L(n,r,t){if(r===0)return{r:t*255,g:t*255,b:t*255};let e=t<.5?t*(1+r):t+r-t*r,o=2*t-e,i=s=>{let u=s;return u<0&&(u+=1),u>1&&(u-=1),u<1/6?o+(e-o)*6*u:u<1/2?e:u<2/3?o+(e-o)*(2/3-u)*6:o};return{r:i(n+1/3)*255,g:i(n)*255,b:i(n-1/3)*255}}function z(n,r,t=M){if(!d(n)||!d(r))return{requested:n,ratio:0,ok:!1,suggestion:null,suggestionRatio:0};let e=p(n,r);if(e>=t)return{requested:n,ratio:e,ok:!0,suggestion:null,suggestionRatio:e};let{h:o,s:i,l:s}=v($(n)),u=.01,a=null;for(let g=u;g<=1;g+=u){for(let f of[s+g,s-g]){if(f<0||f>1)continue;let b=A(L(o,i,f)),R=p(b,r);if(R>=t){a={hex:b,ratio:R};break}}if(a)break}return{requested:n,ratio:e,ok:!1,suggestion:a?.hex??null,suggestionRatio:a?.ratio??0}}function D(n,r,t){return p(r,n)>=p(t,n)?r:t}export{d as a,$ as b,c,_ as d,A as e,m as f,y as g,I as h,h as i,x as j,S as k,p as l,j as m,F as n,M as o,X as p,C as q,E as r,G as s,V as t,W as u,B as v,O as w,H as x,P as y,U as z,k as A,Y as B,v as C,L as D,z as E,D as F};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f="seatmap.chart";var c=[{key:"wheelchair",label:"Wheelchair space",short:"Wheelchair",icon:"\u267F"},{key:"companion",label:"Companion seat",short:"Companion",icon:"\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}"},{key:"semi-ambulatory",label:"Semi-ambulatory (limited mobility)",short:"Limited mobility",icon:"\u{1F9AF}"},{key:"hearing",label:"Assistive listening",short:"Hearing",icon:"\u{1F9BB}"},{key:"cart",label:"CART live-caption view",short:"CART captions",icon:"CC"},{key:"sign-language",label:"Sign-language view",short:"Sign language",icon:"\u{1F91F}"},{key:"plus-size",label:"Plus-size seat",short:"Plus-size",icon:"\u{1F4BA}"},{key:"lift-armrest",label:"Lift-up armrest",short:"Lift armrest",icon:"\u2195\uFE0F"}],l=new Map(c.map(e=>[e.key,e]));function h(e){return l.get(e)}var d={wheelchair:"#3b82f6",companion:"#8b5cf6","semi-ambulatory":"#0ea5e9",hearing:"#14b8a6",cart:"#7c3aed","sign-language":"#f59e0b","plus-size":"#ec4899","lift-armrest":"#22c55e"};function x(e){let t=e?.[0];return t&&d[t]||"#3b82f6"}var u=[{key:"obstructedView",label:"Obstructed view",short:"Obstructed",icon:"\u26D4"},{key:"restrictedView",label:"Restricted view",short:"Restricted",icon:"\u{1F441}"},{key:"premium",label:"Premium seat",short:"Premium",icon:"\u2605"}],b=new Map(u.map(e=>[e.key,e]));function C(e){return b.get(e)}var w=8,R=24,m=["reference-focal","bar","entrance","exit","restroom","screen","sound","concession","coat","wall","rail","suite","obstruction"],g=new Set(m);function I(e){switch(e.type){case"row":case"table":case"gaArea":case"booth":case"section":return"interactive";case"decorImage":return e.layer==="foreground"?"foreground":"background";case"shape":return e.role&&g.has(e.role)?"surroundings":"background";case"text":return"background";default:return"interactive"}}function p(e){let t=0;for(let r=0,i=e.length;r<i;r+=1){let o=e[r],a=e[(r+1)%i];t+=o.x*a.y-a.x*o.y}return t/2}function M(e){return p(e)*2}function T(e,t,r){let i=!1;for(let o=0,a=e.length-1;o<e.length;a=o++){let n=e[o],s=e[a];n.y>r!=s.y>r&&t<(s.x-n.x)*(r-n.y)/(s.y-n.y)+n.x&&(i=!i)}return i}function y(e){let t=1/0,r=1/0,i=-1/0,o=-1/0,a=!1;for(let n of e)!Number.isFinite(n.x)||!Number.isFinite(n.y)||(a=!0,n.x<t&&(t=n.x),n.y<r&&(r=n.y),n.x>i&&(i=n.x),n.y>o&&(o=n.y));return a?{minX:t,minY:r,maxX:i,maxY:o}:null}function F(e){let t=y(e);return t?S(t):null}function S(e){return{x:e.minX,y:e.minY,width:e.maxX-e.minX,height:e.maxY-e.minY}}function D(e,t){return e.minX<=t.maxX&&t.minX<=e.maxX&&e.minY<=t.maxY&&t.minY<=e.maxY}export{f as a,c as b,h as c,d,x as e,u as f,C as g,w as h,R as i,m as j,I as k,p as l,M as m,T as n,y as o,F as p,D as q};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function a(e){return e==="exact-seat"?"Exact seat in the model":e==="row-representative"?"Representative row evidence":e==="section-representative"?"Representative section evidence":e==="floor-representative"?"Representative floor evidence":"Representative venue evidence"}function d(e){if(!e)return"No assessment date supplied";let t=new Date(e);return Number.isFinite(t.getTime())?`Assessed ${t.toISOString().slice(0,10)}`:"No assessment date supplied"}function l(e){if(!e)return{headline:"Generated view \xB7 unverified",model:"No geometry or event-configuration verification supplied",reality:"No real-world check supplied",coverage:"Selected chart seat",provenance:"Chart-derived model",freshness:"No evidence date supplied",limitations:["Generated view is not surveyed sightline truth."]};let t=e.evidenceKind==="synthetic-model",n=e.modelLevel==="configuration-verified"?"Event configuration verified":e.modelLevel==="geometry-verified"?"Venue geometry verified":t?"Versioned synthetic model":"Generated model \xB7 not verified",o=e.realityLevel==="actual-build-checked"?"Actual event build reality checked":e.realityLevel==="comparable-build-reference"?"Comparable-build reference only":"No real-world check supplied",s=t?"Synthetic model evidence":e.modelLevel==="configuration-verified"?"Configuration verified":e.modelLevel==="geometry-verified"?"Geometry verified":"Generated view \xB7 unverified",r=[...e.limitations??[],...t?["Synthetic demo; not surveyed or venue-certified."]:[]],i=e.modeledTarget?`${e.modeledTarget.clearRayCount}/${e.modeledTarget.totalRayCount} target rays clear \xB7 ${e.modeledTarget.classification} in bounded model`:void 0;return i&&r.push("Modeled target is not a percentage of the show visible."),{headline:s,model:n,reality:o,coverage:a(e.coverage),provenance:e.sourceLabel??e.approvedByRole??"Source not supplied",freshness:d(e.assessedAt),limitations:r,...i?{modeledTarget:i}:{}}}export{l as a};
|