@seatlayer/core 0.48.1 → 0.49.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/{chunk-I6DPX3EM.js → chunk-BE3F7CT3.js} +6 -5
- package/dist/chunk-BE3F7CT3.js.map +1 -0
- package/dist/{chunk-TCTAS4Z2.js → chunk-GD267BFB.js} +36 -8
- package/dist/chunk-GD267BFB.js.map +1 -0
- package/dist/core/seatConfidence.cjs +76 -0
- package/dist/core/seatConfidence.cjs.map +1 -0
- package/dist/core/seatConfidence.d.cts +18 -0
- package/dist/core/seatConfidence.d.ts +18 -0
- package/dist/core/seatConfidence.js +51 -0
- package/dist/core/seatConfidence.js.map +1 -0
- package/dist/index.cjs +35 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/{types-CE63BK0j.d.cts → types-DR54nqKL.d.cts} +58 -1
- package/dist/{types-CE63BK0j.d.ts → types-DR54nqKL.d.ts} +58 -1
- package/dist/view3d/crossfade/panorama.cjs +5 -4
- package/dist/view3d/crossfade/panorama.cjs.map +1 -1
- package/dist/view3d/crossfade/panorama.d.cts +5 -1
- package/dist/view3d/crossfade/panorama.d.ts +5 -1
- package/dist/view3d/crossfade/panorama.js +1 -1
- package/dist/view3d/index.cjs +781 -255
- package/dist/view3d/index.cjs.map +1 -1
- package/dist/view3d/index.d.cts +22 -1
- package/dist/view3d/index.d.ts +22 -1
- package/dist/view3d/index.js +779 -254
- package/dist/view3d/index.js.map +1 -1
- package/package.json +15 -2
- package/dist/chunk-I6DPX3EM.js.map +0 -1
- package/dist/chunk-TCTAS4Z2.js.map +0 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/core/seatConfidence.ts
|
|
21
|
+
var seatConfidence_exports = {};
|
|
22
|
+
__export(seatConfidence_exports, {
|
|
23
|
+
seatConfidenceDisclosure: () => seatConfidenceDisclosure
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(seatConfidence_exports);
|
|
26
|
+
function coverageLabel(coverage) {
|
|
27
|
+
if (coverage === "exact-seat") return "Exact seat in the model";
|
|
28
|
+
if (coverage === "row-representative") return "Representative row evidence";
|
|
29
|
+
if (coverage === "section-representative") return "Representative section evidence";
|
|
30
|
+
if (coverage === "floor-representative") return "Representative floor evidence";
|
|
31
|
+
return "Representative venue evidence";
|
|
32
|
+
}
|
|
33
|
+
function dateLabel(value) {
|
|
34
|
+
if (!value) return "No assessment date supplied";
|
|
35
|
+
const date = new Date(value);
|
|
36
|
+
if (!Number.isFinite(date.getTime())) return "No assessment date supplied";
|
|
37
|
+
return `Assessed ${date.toISOString().slice(0, 10)}`;
|
|
38
|
+
}
|
|
39
|
+
function seatConfidenceDisclosure(evidence) {
|
|
40
|
+
if (!evidence) {
|
|
41
|
+
return {
|
|
42
|
+
headline: "Generated view \xB7 unverified",
|
|
43
|
+
model: "No geometry or event-configuration verification supplied",
|
|
44
|
+
reality: "No real-world check supplied",
|
|
45
|
+
coverage: "Selected chart seat",
|
|
46
|
+
provenance: "Chart-derived model",
|
|
47
|
+
freshness: "No evidence date supplied",
|
|
48
|
+
limitations: ["Generated view is not surveyed sightline truth."]
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const synthetic = evidence.evidenceKind === "synthetic-model";
|
|
52
|
+
const model = evidence.modelLevel === "configuration-verified" ? "Event configuration verified" : evidence.modelLevel === "geometry-verified" ? "Venue geometry verified" : synthetic ? "Versioned synthetic model" : "Generated model \xB7 not verified";
|
|
53
|
+
const reality = evidence.realityLevel === "actual-build-checked" ? "Actual event build reality checked" : evidence.realityLevel === "comparable-build-reference" ? "Comparable-build reference only" : "No real-world check supplied";
|
|
54
|
+
const headline = synthetic ? "Synthetic model evidence" : evidence.modelLevel === "configuration-verified" ? "Configuration verified" : evidence.modelLevel === "geometry-verified" ? "Geometry verified" : "Generated view \xB7 unverified";
|
|
55
|
+
const limitations = [
|
|
56
|
+
...evidence.limitations ?? [],
|
|
57
|
+
...synthetic ? ["Synthetic demo; not surveyed or venue-certified."] : []
|
|
58
|
+
];
|
|
59
|
+
const modeledTarget = evidence.modeledTarget ? `${evidence.modeledTarget.clearRayCount}/${evidence.modeledTarget.totalRayCount} target rays clear \xB7 ${evidence.modeledTarget.classification} in bounded model` : void 0;
|
|
60
|
+
if (modeledTarget) limitations.push("Modeled target is not a percentage of the show visible.");
|
|
61
|
+
return {
|
|
62
|
+
headline,
|
|
63
|
+
model,
|
|
64
|
+
reality,
|
|
65
|
+
coverage: coverageLabel(evidence.coverage),
|
|
66
|
+
provenance: evidence.sourceLabel ?? evidence.approvedByRole ?? "Source not supplied",
|
|
67
|
+
freshness: dateLabel(evidence.assessedAt),
|
|
68
|
+
limitations,
|
|
69
|
+
...modeledTarget ? { modeledTarget } : {}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
seatConfidenceDisclosure
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=seatConfidence.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/seatConfidence.ts"],"sourcesContent":["import type { ResolvedSeatConfidenceEvidence, SeatConfidenceCoverage } from './types';\n\nexport interface SeatConfidenceDisclosure {\n headline: string;\n model: string;\n reality: string;\n coverage: string;\n provenance: string;\n freshness: string;\n limitations: string[];\n modeledTarget?: string;\n}\n\nfunction coverageLabel(coverage: SeatConfidenceCoverage): string {\n if (coverage === 'exact-seat') return 'Exact seat in the model';\n if (coverage === 'row-representative') return 'Representative row evidence';\n if (coverage === 'section-representative') return 'Representative section evidence';\n if (coverage === 'floor-representative') return 'Representative floor evidence';\n return 'Representative venue evidence';\n}\n\nfunction dateLabel(value: string | undefined): string {\n if (!value) return 'No assessment date supplied';\n const date = new Date(value);\n if (!Number.isFinite(date.getTime())) return 'No assessment date supplied';\n return `Assessed ${date.toISOString().slice(0, 10)}`;\n}\n\n/** Buyer-safe copy for one resolved passport. This function never upgrades a\n * generated record into a verified claim and keeps modeled and reality\n * evidence visibly separate. */\nexport function seatConfidenceDisclosure(\n evidence: ResolvedSeatConfidenceEvidence | undefined,\n): SeatConfidenceDisclosure {\n if (!evidence) {\n return {\n headline: 'Generated view · unverified',\n model: 'No geometry or event-configuration verification supplied',\n reality: 'No real-world check supplied',\n coverage: 'Selected chart seat',\n provenance: 'Chart-derived model',\n freshness: 'No evidence date supplied',\n limitations: ['Generated view is not surveyed sightline truth.'],\n };\n }\n\n const synthetic = evidence.evidenceKind === 'synthetic-model';\n const model = evidence.modelLevel === 'configuration-verified'\n ? 'Event configuration verified'\n : evidence.modelLevel === 'geometry-verified'\n ? 'Venue geometry verified'\n : synthetic\n ? 'Versioned synthetic model'\n : 'Generated model · not verified';\n const reality = evidence.realityLevel === 'actual-build-checked'\n ? 'Actual event build reality checked'\n : evidence.realityLevel === 'comparable-build-reference'\n ? 'Comparable-build reference only'\n : 'No real-world check supplied';\n const headline = synthetic\n ? 'Synthetic model evidence'\n : evidence.modelLevel === 'configuration-verified'\n ? 'Configuration verified'\n : evidence.modelLevel === 'geometry-verified'\n ? 'Geometry verified'\n : 'Generated view · unverified';\n const limitations = [\n ...(evidence.limitations ?? []),\n ...(synthetic ? ['Synthetic demo; not surveyed or venue-certified.'] : []),\n ];\n const modeledTarget = evidence.modeledTarget\n ? `${evidence.modeledTarget.clearRayCount}/${evidence.modeledTarget.totalRayCount} target rays clear · ${evidence.modeledTarget.classification} in bounded model`\n : undefined;\n if (modeledTarget) limitations.push('Modeled target is not a percentage of the show visible.');\n\n return {\n headline,\n model,\n reality,\n coverage: coverageLabel(evidence.coverage),\n provenance: evidence.sourceLabel ?? evidence.approvedByRole ?? 'Source not supplied',\n freshness: dateLabel(evidence.assessedAt),\n limitations,\n ...(modeledTarget ? { modeledTarget } : {}),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,SAAS,cAAc,UAA0C;AAC/D,MAAI,aAAa,aAAc,QAAO;AACtC,MAAI,aAAa,qBAAsB,QAAO;AAC9C,MAAI,aAAa,yBAA0B,QAAO;AAClD,MAAI,aAAa,uBAAwB,QAAO;AAChD,SAAO;AACT;AAEA,SAAS,UAAU,OAAmC;AACpD,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,MAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,EAAG,QAAO;AAC7C,SAAO,YAAY,KAAK,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;AACpD;AAKO,SAAS,yBACd,UAC0B;AAC1B,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,aAAa,CAAC,iDAAiD;AAAA,IACjE;AAAA,EACF;AAEA,QAAM,YAAY,SAAS,iBAAiB;AAC5C,QAAM,QAAQ,SAAS,eAAe,2BAClC,iCACA,SAAS,eAAe,sBACtB,4BACA,YACE,8BACA;AACR,QAAM,UAAU,SAAS,iBAAiB,yBACtC,uCACA,SAAS,iBAAiB,+BACxB,oCACA;AACN,QAAM,WAAW,YACb,6BACA,SAAS,eAAe,2BACtB,2BACA,SAAS,eAAe,sBACtB,sBACA;AACR,QAAM,cAAc;AAAA,IAClB,GAAI,SAAS,eAAe,CAAC;AAAA,IAC7B,GAAI,YAAY,CAAC,kDAAkD,IAAI,CAAC;AAAA,EAC1E;AACA,QAAM,gBAAgB,SAAS,gBAC3B,GAAG,SAAS,cAAc,aAAa,IAAI,SAAS,cAAc,aAAa,2BAAwB,SAAS,cAAc,cAAc,sBAC5I;AACJ,MAAI,cAAe,aAAY,KAAK,yDAAyD;AAE7F,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,cAAc,SAAS,QAAQ;AAAA,IACzC,YAAY,SAAS,eAAe,SAAS,kBAAkB;AAAA,IAC/D,WAAW,UAAU,SAAS,UAAU;AAAA,IACxC;AAAA,IACA,GAAI,gBAAgB,EAAE,cAAc,IAAI,CAAC;AAAA,EAC3C;AACF;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { R as ResolvedSeatConfidenceEvidence } from '../types-DR54nqKL.cjs';
|
|
2
|
+
|
|
3
|
+
interface SeatConfidenceDisclosure {
|
|
4
|
+
headline: string;
|
|
5
|
+
model: string;
|
|
6
|
+
reality: string;
|
|
7
|
+
coverage: string;
|
|
8
|
+
provenance: string;
|
|
9
|
+
freshness: string;
|
|
10
|
+
limitations: string[];
|
|
11
|
+
modeledTarget?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Buyer-safe copy for one resolved passport. This function never upgrades a
|
|
14
|
+
* generated record into a verified claim and keeps modeled and reality
|
|
15
|
+
* evidence visibly separate. */
|
|
16
|
+
declare function seatConfidenceDisclosure(evidence: ResolvedSeatConfidenceEvidence | undefined): SeatConfidenceDisclosure;
|
|
17
|
+
|
|
18
|
+
export { type SeatConfidenceDisclosure, seatConfidenceDisclosure };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { R as ResolvedSeatConfidenceEvidence } from '../types-DR54nqKL.js';
|
|
2
|
+
|
|
3
|
+
interface SeatConfidenceDisclosure {
|
|
4
|
+
headline: string;
|
|
5
|
+
model: string;
|
|
6
|
+
reality: string;
|
|
7
|
+
coverage: string;
|
|
8
|
+
provenance: string;
|
|
9
|
+
freshness: string;
|
|
10
|
+
limitations: string[];
|
|
11
|
+
modeledTarget?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Buyer-safe copy for one resolved passport. This function never upgrades a
|
|
14
|
+
* generated record into a verified claim and keeps modeled and reality
|
|
15
|
+
* evidence visibly separate. */
|
|
16
|
+
declare function seatConfidenceDisclosure(evidence: ResolvedSeatConfidenceEvidence | undefined): SeatConfidenceDisclosure;
|
|
17
|
+
|
|
18
|
+
export { type SeatConfidenceDisclosure, seatConfidenceDisclosure };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// src/core/seatConfidence.ts
|
|
2
|
+
function coverageLabel(coverage) {
|
|
3
|
+
if (coverage === "exact-seat") return "Exact seat in the model";
|
|
4
|
+
if (coverage === "row-representative") return "Representative row evidence";
|
|
5
|
+
if (coverage === "section-representative") return "Representative section evidence";
|
|
6
|
+
if (coverage === "floor-representative") return "Representative floor evidence";
|
|
7
|
+
return "Representative venue evidence";
|
|
8
|
+
}
|
|
9
|
+
function dateLabel(value) {
|
|
10
|
+
if (!value) return "No assessment date supplied";
|
|
11
|
+
const date = new Date(value);
|
|
12
|
+
if (!Number.isFinite(date.getTime())) return "No assessment date supplied";
|
|
13
|
+
return `Assessed ${date.toISOString().slice(0, 10)}`;
|
|
14
|
+
}
|
|
15
|
+
function seatConfidenceDisclosure(evidence) {
|
|
16
|
+
if (!evidence) {
|
|
17
|
+
return {
|
|
18
|
+
headline: "Generated view \xB7 unverified",
|
|
19
|
+
model: "No geometry or event-configuration verification supplied",
|
|
20
|
+
reality: "No real-world check supplied",
|
|
21
|
+
coverage: "Selected chart seat",
|
|
22
|
+
provenance: "Chart-derived model",
|
|
23
|
+
freshness: "No evidence date supplied",
|
|
24
|
+
limitations: ["Generated view is not surveyed sightline truth."]
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const synthetic = evidence.evidenceKind === "synthetic-model";
|
|
28
|
+
const model = evidence.modelLevel === "configuration-verified" ? "Event configuration verified" : evidence.modelLevel === "geometry-verified" ? "Venue geometry verified" : synthetic ? "Versioned synthetic model" : "Generated model \xB7 not verified";
|
|
29
|
+
const reality = evidence.realityLevel === "actual-build-checked" ? "Actual event build reality checked" : evidence.realityLevel === "comparable-build-reference" ? "Comparable-build reference only" : "No real-world check supplied";
|
|
30
|
+
const headline = synthetic ? "Synthetic model evidence" : evidence.modelLevel === "configuration-verified" ? "Configuration verified" : evidence.modelLevel === "geometry-verified" ? "Geometry verified" : "Generated view \xB7 unverified";
|
|
31
|
+
const limitations = [
|
|
32
|
+
...evidence.limitations ?? [],
|
|
33
|
+
...synthetic ? ["Synthetic demo; not surveyed or venue-certified."] : []
|
|
34
|
+
];
|
|
35
|
+
const modeledTarget = evidence.modeledTarget ? `${evidence.modeledTarget.clearRayCount}/${evidence.modeledTarget.totalRayCount} target rays clear \xB7 ${evidence.modeledTarget.classification} in bounded model` : void 0;
|
|
36
|
+
if (modeledTarget) limitations.push("Modeled target is not a percentage of the show visible.");
|
|
37
|
+
return {
|
|
38
|
+
headline,
|
|
39
|
+
model,
|
|
40
|
+
reality,
|
|
41
|
+
coverage: coverageLabel(evidence.coverage),
|
|
42
|
+
provenance: evidence.sourceLabel ?? evidence.approvedByRole ?? "Source not supplied",
|
|
43
|
+
freshness: dateLabel(evidence.assessedAt),
|
|
44
|
+
limitations,
|
|
45
|
+
...modeledTarget ? { modeledTarget } : {}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
seatConfidenceDisclosure
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=seatConfidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/seatConfidence.ts"],"sourcesContent":["import type { ResolvedSeatConfidenceEvidence, SeatConfidenceCoverage } from './types';\n\nexport interface SeatConfidenceDisclosure {\n headline: string;\n model: string;\n reality: string;\n coverage: string;\n provenance: string;\n freshness: string;\n limitations: string[];\n modeledTarget?: string;\n}\n\nfunction coverageLabel(coverage: SeatConfidenceCoverage): string {\n if (coverage === 'exact-seat') return 'Exact seat in the model';\n if (coverage === 'row-representative') return 'Representative row evidence';\n if (coverage === 'section-representative') return 'Representative section evidence';\n if (coverage === 'floor-representative') return 'Representative floor evidence';\n return 'Representative venue evidence';\n}\n\nfunction dateLabel(value: string | undefined): string {\n if (!value) return 'No assessment date supplied';\n const date = new Date(value);\n if (!Number.isFinite(date.getTime())) return 'No assessment date supplied';\n return `Assessed ${date.toISOString().slice(0, 10)}`;\n}\n\n/** Buyer-safe copy for one resolved passport. This function never upgrades a\n * generated record into a verified claim and keeps modeled and reality\n * evidence visibly separate. */\nexport function seatConfidenceDisclosure(\n evidence: ResolvedSeatConfidenceEvidence | undefined,\n): SeatConfidenceDisclosure {\n if (!evidence) {\n return {\n headline: 'Generated view · unverified',\n model: 'No geometry or event-configuration verification supplied',\n reality: 'No real-world check supplied',\n coverage: 'Selected chart seat',\n provenance: 'Chart-derived model',\n freshness: 'No evidence date supplied',\n limitations: ['Generated view is not surveyed sightline truth.'],\n };\n }\n\n const synthetic = evidence.evidenceKind === 'synthetic-model';\n const model = evidence.modelLevel === 'configuration-verified'\n ? 'Event configuration verified'\n : evidence.modelLevel === 'geometry-verified'\n ? 'Venue geometry verified'\n : synthetic\n ? 'Versioned synthetic model'\n : 'Generated model · not verified';\n const reality = evidence.realityLevel === 'actual-build-checked'\n ? 'Actual event build reality checked'\n : evidence.realityLevel === 'comparable-build-reference'\n ? 'Comparable-build reference only'\n : 'No real-world check supplied';\n const headline = synthetic\n ? 'Synthetic model evidence'\n : evidence.modelLevel === 'configuration-verified'\n ? 'Configuration verified'\n : evidence.modelLevel === 'geometry-verified'\n ? 'Geometry verified'\n : 'Generated view · unverified';\n const limitations = [\n ...(evidence.limitations ?? []),\n ...(synthetic ? ['Synthetic demo; not surveyed or venue-certified.'] : []),\n ];\n const modeledTarget = evidence.modeledTarget\n ? `${evidence.modeledTarget.clearRayCount}/${evidence.modeledTarget.totalRayCount} target rays clear · ${evidence.modeledTarget.classification} in bounded model`\n : undefined;\n if (modeledTarget) limitations.push('Modeled target is not a percentage of the show visible.');\n\n return {\n headline,\n model,\n reality,\n coverage: coverageLabel(evidence.coverage),\n provenance: evidence.sourceLabel ?? evidence.approvedByRole ?? 'Source not supplied',\n freshness: dateLabel(evidence.assessedAt),\n limitations,\n ...(modeledTarget ? { modeledTarget } : {}),\n };\n}\n"],"mappings":";AAaA,SAAS,cAAc,UAA0C;AAC/D,MAAI,aAAa,aAAc,QAAO;AACtC,MAAI,aAAa,qBAAsB,QAAO;AAC9C,MAAI,aAAa,yBAA0B,QAAO;AAClD,MAAI,aAAa,uBAAwB,QAAO;AAChD,SAAO;AACT;AAEA,SAAS,UAAU,OAAmC;AACpD,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,MAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,EAAG,QAAO;AAC7C,SAAO,YAAY,KAAK,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;AACpD;AAKO,SAAS,yBACd,UAC0B;AAC1B,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,aAAa,CAAC,iDAAiD;AAAA,IACjE;AAAA,EACF;AAEA,QAAM,YAAY,SAAS,iBAAiB;AAC5C,QAAM,QAAQ,SAAS,eAAe,2BAClC,iCACA,SAAS,eAAe,sBACtB,4BACA,YACE,8BACA;AACR,QAAM,UAAU,SAAS,iBAAiB,yBACtC,uCACA,SAAS,iBAAiB,+BACxB,oCACA;AACN,QAAM,WAAW,YACb,6BACA,SAAS,eAAe,2BACtB,2BACA,SAAS,eAAe,sBACtB,sBACA;AACR,QAAM,cAAc;AAAA,IAClB,GAAI,SAAS,eAAe,CAAC;AAAA,IAC7B,GAAI,YAAY,CAAC,kDAAkD,IAAI,CAAC;AAAA,EAC1E;AACA,QAAM,gBAAgB,SAAS,gBAC3B,GAAG,SAAS,cAAc,aAAa,IAAI,SAAS,cAAc,aAAa,2BAAwB,SAAS,cAAc,cAAc,sBAC5I;AACJ,MAAI,cAAe,aAAY,KAAK,yDAAyD;AAE7F,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,cAAc,SAAS,QAAQ;AAAA,IACzC,YAAY,SAAS,eAAe,SAAS,kBAAkB;AAAA,IAC/D,WAAW,UAAU,SAAS,UAAU;AAAA,IACxC;AAAA,IACA,GAAI,gBAAgB,EAAE,cAAc,IAAI,CAAC;AAAA,EAC3C;AACF;","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -652,7 +652,8 @@ function resolveSegmentedRowGroups(objects) {
|
|
|
652
652
|
totalSeats,
|
|
653
653
|
canonical: ordered[0],
|
|
654
654
|
viewFromSeatUrl: first.viewFromSeatUrl,
|
|
655
|
-
viewFromSeatMeta: first.viewFromSeatMeta
|
|
655
|
+
viewFromSeatMeta: first.viewFromSeatMeta,
|
|
656
|
+
confidenceEvidence: first.confidenceEvidence
|
|
656
657
|
});
|
|
657
658
|
adjacencyOffset += row.seatCount;
|
|
658
659
|
displayOffset += row.seatCount;
|
|
@@ -1530,15 +1531,24 @@ function stackFloors(doc, spread = 900) {
|
|
|
1530
1531
|
});
|
|
1531
1532
|
return { ...doc, objects, floors: void 0 };
|
|
1532
1533
|
}
|
|
1533
|
-
function expandFloorObjects(objects, zones, fallbackFocal, viewFallback) {
|
|
1534
|
+
function expandFloorObjects(objects, zones, fallbackFocal, activeConfigurationId, viewFallback, confidenceFallback) {
|
|
1534
1535
|
const out = [];
|
|
1535
1536
|
const segmented = resolveSegmentedRowGroups(objects);
|
|
1537
|
+
const appliesToConfiguration = (meta) => !meta?.eventConfigurationId || meta.eventConfigurationId === activeConfigurationId;
|
|
1538
|
+
const confidenceApplies = (evidence) => !!evidence && (!evidence.eventConfigurationId || evidence.eventConfigurationId === activeConfigurationId);
|
|
1539
|
+
const resolvedConfidence = (evidence, coverage) => confidenceApplies(evidence) ? { ...evidence, coverage } : void 0;
|
|
1536
1540
|
for (const obj of objects) {
|
|
1537
1541
|
let seats = [];
|
|
1538
1542
|
if (obj.type === "row") seats = expandRow(obj);
|
|
1539
1543
|
else if (obj.type === "table") seats = expandTable(obj);
|
|
1540
1544
|
else if (obj.type === "booth") seats = expandBooth(obj);
|
|
1541
1545
|
if (!seats.length) continue;
|
|
1546
|
+
for (const seat of seats) {
|
|
1547
|
+
if (seat.viewUrl && !appliesToConfiguration(seat.viewMeta)) {
|
|
1548
|
+
seat.viewUrl = void 0;
|
|
1549
|
+
seat.viewMeta = void 0;
|
|
1550
|
+
}
|
|
1551
|
+
}
|
|
1542
1552
|
if (obj.type === "row") {
|
|
1543
1553
|
const logical = segmented.get(obj.id);
|
|
1544
1554
|
if (logical) {
|
|
@@ -1551,10 +1561,12 @@ function expandFloorObjects(objects, zones, fallbackFocal, viewFallback) {
|
|
|
1551
1561
|
if (!overrides2.get(physicalIndex)?.displayLabel) {
|
|
1552
1562
|
seat.displayLabel = seatDisplayLabel(obj, physicalIndex, logical);
|
|
1553
1563
|
}
|
|
1554
|
-
if (!seat.viewUrl && logical.viewFromSeatUrl) {
|
|
1564
|
+
if (!seat.viewUrl && logical.viewFromSeatUrl && appliesToConfiguration(logical.viewFromSeatMeta)) {
|
|
1555
1565
|
seat.viewUrl = logical.viewFromSeatUrl;
|
|
1556
1566
|
seat.viewMeta = logical.viewFromSeatMeta;
|
|
1557
1567
|
}
|
|
1568
|
+
const exactEvidence = overrides2.get(physicalIndex)?.confidenceEvidence;
|
|
1569
|
+
seat.confidenceEvidence = resolvedConfidence(exactEvidence, "exact-seat") ?? resolvedConfidence(obj.confidenceEvidence, "row-representative") ?? resolvedConfidence(logical.confidenceEvidence, "row-representative");
|
|
1558
1570
|
}
|
|
1559
1571
|
}
|
|
1560
1572
|
}
|
|
@@ -1563,11 +1575,17 @@ function expandFloorObjects(objects, zones, fallbackFocal, viewFallback) {
|
|
|
1563
1575
|
const zone = owner?.zone ? zones?.find((candidate) => candidate.id === owner.zone) : void 0;
|
|
1564
1576
|
const resolvedFocal = zone?.focalPoint ?? fallbackFocal;
|
|
1565
1577
|
for (const seat of seats) {
|
|
1566
|
-
if (!seat.
|
|
1578
|
+
if (!seat.confidenceEvidence) {
|
|
1579
|
+
const physicalIndex = Number(seat.id.slice(seat.id.lastIndexOf(":") + 1));
|
|
1580
|
+
const exactEvidence = (obj.type === "row" || obj.type === "table") && Number.isInteger(physicalIndex) ? obj.overrides?.find((override) => override.index === physicalIndex)?.confidenceEvidence : void 0;
|
|
1581
|
+
seat.confidenceEvidence = resolvedConfidence(exactEvidence, "exact-seat") ?? (obj.type === "row" ? resolvedConfidence(obj.confidenceEvidence, "row-representative") : void 0);
|
|
1582
|
+
}
|
|
1583
|
+
seat.confidenceEvidence ??= resolvedConfidence(owner?.confidenceEvidence, "section-representative") ?? (confidenceFallback ? resolvedConfidence(confidenceFallback.evidence, confidenceFallback.coverage) : void 0);
|
|
1584
|
+
if (!seat.viewUrl && inheritedView && appliesToConfiguration(owner?.viewFromSeatMeta)) {
|
|
1567
1585
|
seat.viewUrl = inheritedView;
|
|
1568
1586
|
seat.viewMeta = owner?.viewFromSeatMeta;
|
|
1569
1587
|
}
|
|
1570
|
-
if (!seat.viewUrl && viewFallback) {
|
|
1588
|
+
if (!seat.viewUrl && viewFallback && appliesToConfiguration(viewFallback.meta)) {
|
|
1571
1589
|
seat.viewUrl = viewFallback.url;
|
|
1572
1590
|
seat.viewMeta = viewFallback.meta;
|
|
1573
1591
|
}
|
|
@@ -1585,7 +1603,15 @@ function expandChart(doc, options = {}) {
|
|
|
1585
1603
|
for (const floor of doc.floors) {
|
|
1586
1604
|
const floorFocal = floor.focalPoint ?? doc.focalPoint;
|
|
1587
1605
|
const floorView = floor.viewFromSeatUrl ? { url: floor.viewFromSeatUrl, meta: floor.viewFromSeatMeta } : doc.viewFromSeatUrl ? { url: doc.viewFromSeatUrl, meta: doc.viewFromSeatMeta } : void 0;
|
|
1588
|
-
const
|
|
1606
|
+
const confidenceFallback = floor.confidenceEvidence ? { evidence: floor.confidenceEvidence, coverage: "floor-representative" } : doc.confidenceEvidence ? { evidence: doc.confidenceEvidence, coverage: "venue-representative" } : void 0;
|
|
1607
|
+
const seats = expandFloorObjects(
|
|
1608
|
+
floor.objects,
|
|
1609
|
+
doc.zones,
|
|
1610
|
+
floorFocal,
|
|
1611
|
+
doc.eventConfigurationId,
|
|
1612
|
+
floorView,
|
|
1613
|
+
confidenceFallback
|
|
1614
|
+
);
|
|
1589
1615
|
if (options.resolveEyeHeights !== false) {
|
|
1590
1616
|
assignEyeHeights(floor.objects, floor.focalPoint ?? doc.focalPoint, floor.baseHeightM ?? 0, seats);
|
|
1591
1617
|
}
|
|
@@ -1597,7 +1623,9 @@ function expandChart(doc, options = {}) {
|
|
|
1597
1623
|
doc.objects,
|
|
1598
1624
|
doc.zones,
|
|
1599
1625
|
doc.focalPoint,
|
|
1600
|
-
doc.
|
|
1626
|
+
doc.eventConfigurationId,
|
|
1627
|
+
doc.viewFromSeatUrl ? { url: doc.viewFromSeatUrl, meta: doc.viewFromSeatMeta } : void 0,
|
|
1628
|
+
doc.confidenceEvidence ? { evidence: doc.confidenceEvidence, coverage: "venue-representative" } : void 0
|
|
1601
1629
|
);
|
|
1602
1630
|
if (options.resolveEyeHeights !== false) {
|
|
1603
1631
|
assignEyeHeights(doc.objects, doc.focalPoint, options.floorBaseHeightM ?? 0, out);
|