@mappedin/mappedin-js 6.23.0 → 6.24.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.
@@ -1,15 +1,15 @@
1
- import * as _mappedin_mvf_v28 from "@mappedin/mvf-v2";
1
+ import * as _mappedin_mvf_v22 from "@mappedin/mvf-v2";
2
2
  import { AnnotationCollection, AnnotationSymbol, AreaCollection, AreaId, BaseTextAreaProperties, Category, CategoryId, Connection as Connection$1, Details, EnterpriseCategory as EnterpriseCategory$1, EnterpriseCategoryId, EnterpriseLocation as EnterpriseLocation$1, EnterpriseLocationId, EnterpriseLocationInstance, EnterpriseTexture, EnterpriseVenue as EnterpriseVenue$1, EnterpriseVenueType, EntranceCollection, EntranceFeature, Facade as Facade$1, Feature as Feature$1, FeatureCollection as FeatureCollection$1, FloatingFloorTextProperties, FloorCollection, FloorId, FloorProperties, FloorStack as FloorStack$1, FloorTextCommonProperties, Geometry as Geometry$1, Hyperlink as Hyperlink$1, Image, Language, LineStringStyle, LineStringStyle as TMVFLineStringStyle, Location, LocationId, LocationLink, LocationSocial, LocationSocial as LocationSocial$1, LocationState, LocationState as LocationState$1, MVFv2_STANDARD_MVFv3, MultiPolygon as MultiPolygon$1, NavigationFlagDeclarations, NodeCollection, NodeId, ObstructionCollection, ObstructionCollection as ObstructionCollection$1, ObstructionFeature, ObstructionId, OpeningHoursSpecification, OperationHours, OperationHours as OperationHours$1, ParsedMVF, ParsedMVF as TMVF, ParsedMVFLocalePack, Point as Point$1, PointStyle, PointStyle as TMVFPointStyle, Polygon as Polygon$1, PolygonStyle, PolygonStyle as TMVFPolygonStyle, SiblingGroup, SiblingGroup as SiblingGroup$1, SpaceCollection, SpaceCollection as SpaceCollection$1, SpaceFeature, SpaceId, SpaceProperties, Style as TMVFStyle, StyleCollection, StyleCollection as TMVFStyleCollection, TilesetStyle } from "@mappedin/mvf-v2";
3
3
  import { MVFv2_STANDARD_MVFv3 as MVFv2_STANDARD_MVFv3$1, ParsedMVF as ParsedMVF$1, RawMVF } from "@mappedin/mvf-v2/no-validator-lite";
4
+ import * as three0 from "three";
5
+ import { AmbientLight, BatchedMesh, BatchedMeshGeometryRange, Box3, BufferAttribute, BufferGeometry, Camera as Camera$1, Color, DirectionalLight, Group, Intersection, LineSegments, Matrix4, Mesh, MeshLambertMaterial, MeshLambertMaterialParameters, Object3D, Object3DEventMap, PerspectiveCamera, Plane, PlaneGeometry, Raycaster, Scene, ShaderMaterial, Texture, TubeGeometry, Vector2, Vector3, WebGLRenderer } from "three";
4
6
  import * as _mappedin_renderer_three0 from "@mappedin/renderer-three";
5
7
  import { AddLabelOptionsInternal, AddText3DOptions, AddText3DOptions as AddText3DOptions$1, AddText3DPointOptions, AddText3DPointOptions as AddText3DPointOptions$1, CameraSystemState, ColorString, DebugState, DebugState as DebugState$1, EntityId, EnvMapOptions, EnvMapOptions as EnvMapOptions$1, GLTFExportOptions as GLTFExportOptions$1, GroupContainerState, ISystemPlugin, ISystemPlugin as ISystemPlugin$1, ImagePlacementOptions, InitializeModelState, InitializeModelState as InitializeModelState$1, InitializeText3DState, InsetPadding, InsetPadding as InsetPadding$1, InsetPaddingOption, InsetPaddingOption as InsetPaddingOption$1, InterpolateOn, Interpolation, LabelRenderedState, LineStyle, LineStyle as LineStyle$1, MapViewState, MarkerState, OutlinesOptions, PaintStyle, PaintStyle as PaintStyle$1, PathState, PathWidth, PathWidth as PathWidth$1, PixelWidth, Position as Position$1, RendererCore, RendererCoreOptions, RendererCoreOptions as RendererCoreOptions$1, Shading, Text3DState, WatermarkUpdateOptions } from "@mappedin/renderer-three";
6
8
  import * as _tweenjs_tween_js0 from "@tweenjs/tween.js";
7
- import { Group, Tween } from "@tweenjs/tween.js";
9
+ import { Group as Group$1, Tween } from "@tweenjs/tween.js";
8
10
  import { CustomLayerInterface, IControl, Map as Map$1, MapEventType } from "@mappedin/outdoor-context";
9
11
  import { ANIMATION_TWEENS, PathWidth as PathWidth$2, PathWidth as PathWidth$3, enableTestMode } from "@mappedin/renderer-shared";
10
12
  import { MatchInfo, SearchResult as SearchResult$1, Suggestion, Suggestion as Suggestion$1 } from "minisearch";
11
- import * as three1 from "three";
12
- import { AmbientLight, BatchedMesh, BatchedMeshGeometryRange, Box3, BufferAttribute, BufferGeometry, Camera as Camera$1, Color, DirectionalLight, Group as Group$1, Intersection, LineSegments, Matrix4, Mesh, MeshLambertMaterial, MeshLambertMaterialParameters, Object3D, Object3DEventMap, PerspectiveCamera, Plane, PlaneGeometry, Raycaster, Scene, ShaderMaterial, Texture, TubeGeometry, Vector2, Vector3, WebGLRenderer } from "three";
13
13
  import { BatchedText, BatchedText as BatchedText$1, Text, Text as Text$1 } from "troika-three-text";
14
14
  import "../../renderer-three/src/styles/interactions.scss";
15
15
  import "../../renderer-three/src/styles/html-controls.scss";
@@ -209,6 +209,11 @@ type TSearchOptions = {
209
209
  */
210
210
  enabled: boolean;
211
211
  };
212
+ /**
213
+ * A pre-resolved (typically signed) MVF bundle URL, or a function that returns one.
214
+ * The function form supports re-resolution when a signed URL expires.
215
+ */
216
+ type TBundleUri = string | (() => string | Promise<string>);
212
217
  /**
213
218
  * Options shared by every {@link getMapData} call regardless of authentication mode.
214
219
  * Carries the target `mapId` and optional overrides such as environment, base URL,
@@ -235,6 +240,23 @@ type TGetMapDataSharedOptions = {
235
240
  * @internal
236
241
  */
237
242
  customAuthUri?: string;
243
+ /**
244
+ * A pre-resolved (typically signed) MVF bundle URL, or a function that returns one.
245
+ *
246
+ * When set, credentials are optional: the SDK downloads from this URL instead of
247
+ * resolving one via the Mappedin API, and takes precedence over both the Maker and
248
+ * enterprise resolvers. Obtaining the URL remains the caller's responsibility — this
249
+ * is not an auth bypass.
250
+ *
251
+ * The function form supports re-resolution when a signed URL expires.
252
+ *
253
+ * Declared here as well as required on {@link TGetMapDataWithBundleUriOptions} so that
254
+ * combining it with credentials (`{ key, secret, mapId, bundleUri }`) survives excess
255
+ * property checking — without it that object matches no member of the union.
256
+ * @hidden
257
+ * @internal
258
+ */
259
+ bundleUri?: TBundleUri;
238
260
  /**
239
261
  * Callback for when the Mappedin map data has been fetched and parsed as Mappedin Venue Format (MVF) data.
240
262
  * @param mvf Parsed MVF data.
@@ -364,10 +386,25 @@ type TGetMapDataWithAccessTokenOptions = {
364
386
  accessToken: string;
365
387
  } & TGetMapDataSharedOptions;
366
388
  /**
367
- * Options accepted by {@link getMapData}. Either credentials (`key`/`secret`) or an
368
- * `accessToken` may be supplied alongside the shared options.
389
+ * {@link getMapData} options that supply a pre-resolved bundle URL.
390
+ * Credentials are optional the URL itself is the download source.
391
+ * @interface
392
+ * @hidden
393
+ * @internal
394
+ */
395
+ type TGetMapDataWithBundleUriOptions = {
396
+ /**
397
+ * A pre-resolved (typically signed) MVF bundle URL, or a function that returns one.
398
+ * @hidden
399
+ * @internal
400
+ */
401
+ bundleUri: TBundleUri;
402
+ } & TGetMapDataSharedOptions;
403
+ /**
404
+ * Options accepted by {@link getMapData}. Supply credentials (`key`/`secret`) or an
405
+ * `accessToken` alongside the shared options.
369
406
  */
370
- type TGetMapDataOptions = TGetMapDataWithCredentialsOptions | TGetMapDataWithAccessTokenOptions;
407
+ type TGetMapDataOptions = TGetMapDataWithCredentialsOptions | TGetMapDataWithAccessTokenOptions | TGetMapDataWithBundleUriOptions;
371
408
  /**
372
409
  * @internal
373
410
  */
@@ -492,6 +529,50 @@ type THydrateMapDataBundle = {
492
529
  */
493
530
  declare const hydrateMapData: (backup: THydrateMapDataBundle | ParsedMVF, userOptions?: TGetMapDataOptions) => Promise<MapData>;
494
531
  //#endregion
532
+ //#region ../packages/common/Mappedin.Logger.d.ts
533
+ /**
534
+ * SDK logging verbosity. Ordered from most verbose to least (`debug < info < warn < error`) —
535
+ * selecting a level enables that level plus every level after it. `SILENT` suppresses all output.
536
+ */
537
+ declare enum E_SDK_LOG_LEVEL {
538
+ /** @deprecated Renamed to {@link E_SDK_LOG_LEVEL.DEBUG}. Kept as an alias for back-compat. */
539
+ LOG = 0,
540
+ DEBUG = 0,
541
+ INFO = 1,
542
+ WARN = 2,
543
+ ERROR = 3,
544
+ SILENT = 4,
545
+ }
546
+ /**
547
+ * Case-insensitive string names for {@link E_SDK_LOG_LEVEL}, accepted anywhere a log level can be set.
548
+ * `'log'` is a deprecated alias for `'debug'`, and `'silent'` suppresses all output.
549
+ */
550
+ type TLogLevelName = 'debug' | 'info' | 'log' | 'warn' | 'error' | 'silent';
551
+ /** Resolve a case-insensitive level name to an {@link E_SDK_LOG_LEVEL}; `undefined` if unrecognized. */
552
+ declare function parseLogLevel(level: string): E_SDK_LOG_LEVEL | undefined;
553
+ /**
554
+ * Set the SDK's global log verbosity. Lower levels include all higher-numbered levels;
555
+ * `SILENT` suppresses all output. Defaults to `INFO` (`DEBUG` is opt-in).
556
+ * @param level - The desired verbosity: a case-insensitive level name (`'debug'`, `'info'`,
557
+ * `'warn'`, `'error'`, `'silent'`) or an {@link E_SDK_LOG_LEVEL} value. An unrecognized or
558
+ * out-of-range value warns rather than silently no-ops.
559
+ */
560
+ declare function setLoggerLevel(level: E_SDK_LOG_LEVEL | TLogLevelName): void;
561
+ //#endregion
562
+ //#region ../packages/common/errors.d.ts
563
+ /**
564
+ * @internal
565
+ */
566
+ declare class MappedinError extends Error {
567
+ constructor(message: string, label?: string);
568
+ }
569
+ /**
570
+ * @internal
571
+ */
572
+ declare class MappedinRenderError extends MappedinError {
573
+ constructor(message: string, label?: string);
574
+ }
575
+ //#endregion
495
576
  //#region ../packages/common/async.d.ts
496
577
  /**
497
578
  * A debounced function with a cancel method
@@ -504,6 +585,111 @@ interface DebouncedFunction<T$1 extends (...args: any[]) => void> {
504
585
  cancel: () => void;
505
586
  }
506
587
  //#endregion
588
+ //#region ../packages/common/pubsub.d.ts
589
+ /**
590
+ * Generic PubSub class implementing the Publish-Subscribe pattern for event handling.
591
+ *
592
+ * @template EVENT_PAYLOAD - The type of the event payload.
593
+ * @template EVENT - The type of the event.
594
+ */
595
+ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EVENT_PAYLOAD> {
596
+ /**
597
+ * @private
598
+ * @internal
599
+ */
600
+ private _subscribers;
601
+ /**
602
+ * @private
603
+ * @internal
604
+ * AbortController for managing lifecycle and cleanup
605
+ */
606
+ private _abortController;
607
+ /**
608
+ * Returns the AbortSignal for this PubSub instance.
609
+ * Use this signal with APIs that support cancellation (fetch, addEventListener, etc.)
610
+ * When the PubSub is destroyed, the signal will be aborted and all listeners using it will be automatically removed.
611
+ *
612
+ * @example
613
+ * ```typescript
614
+ * // Automatically cleaned up when PubSub is destroyed
615
+ * pubsub.addEventListener(window, 'resize', handler, { signal: pubsub.signal });
616
+ * ```
617
+ */
618
+ get signal(): AbortSignal;
619
+ /**
620
+ * @private
621
+ * @internal
622
+ */
623
+ publish<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, data?: EVENT_PAYLOAD[EVENT_NAME]): void;
624
+ /**
625
+ * Subscribe a function to be called when the signal is aborted.
626
+ * @param fn The function to call when the signal is aborted.
627
+ */
628
+ onAbort<T$1 extends (...args: any[]) => void>(fn: T$1): void;
629
+ /**
630
+ * Subscribe a function to an event.
631
+ *
632
+ * @param eventName An event name which, when fired, will call the provided
633
+ * function.
634
+ * @param fn A callback that gets called when the corresponding event is fired. The
635
+ * callback will get passed an argument with a type that's one of event payloads.
636
+ * @param options Optional options object. If a signal is provided, the subscription will be
637
+ * automatically cleaned up when that signal is aborted.
638
+ * @returns A cleanup function that unsubscribes the event listener when called.
639
+ * @example
640
+ * // Subscribe to the 'click' event
641
+ * const handler = (event) => {
642
+ * const { coordinate } = event;
643
+ * const { latitude, longitude } = coordinate;
644
+ * console.log(`Map was clicked at ${latitude}, ${longitude}`);
645
+ * };
646
+ * map.on('click', handler);
647
+ */
648
+ on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
649
+ data: null;
650
+ } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void, options?: {
651
+ signal?: AbortSignal;
652
+ }): () => void;
653
+ /**
654
+ * Unsubscribe a function previously subscribed with {@link on}
655
+ *
656
+ * @param eventName An event name to which the provided function was previously
657
+ * subscribed.
658
+ * @param fn A function that was previously passed to {@link on}. The function must
659
+ * have the same reference as the function that was subscribed.
660
+ * @example
661
+ * // Unsubscribe from the 'click' event
662
+ * const handler = (event) => {
663
+ * console.log('Map was clicked', event);
664
+ * };
665
+ * map.off('click', handler);
666
+ */
667
+ off<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
668
+ data: null;
669
+ } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
670
+ /**
671
+ * @private
672
+ * @internal
673
+ * Destroys the PubSub instance and automatically unsubscribes all listeners registered via on().
674
+ */
675
+ destroy(): void;
676
+ }
677
+ //#endregion
678
+ //#region ../packages/common/interpolate.d.ts
679
+ declare const EASING_CURVES: readonly ["ease-in", "ease-out", "ease-in-out", "linear", "ease-out-cubic"];
680
+ /**
681
+ * The set of easing curves that can be applied when interpolating a value.
682
+ *
683
+ * - `linear`: constant rate of change from start to end.
684
+ * - `ease-in`: starts slowly, then accelerates.
685
+ * - `ease-out`: starts quickly, then decelerates.
686
+ * - `ease-in-out`: starts slowly, accelerates through the middle, then decelerates.
687
+ * - `ease-out-cubic`: a stronger ease-out using a cubic curve.
688
+ *
689
+ * @see https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function
690
+ */
691
+ type EasingCurve = (typeof EASING_CURVES)[number];
692
+ //#endregion
507
693
  //#region src/analytics/customer.d.ts
508
694
  /**
509
695
  * Valid track-analytics API contexts. These should match the expected values of that endpoint or the requests will fail.
@@ -3147,6 +3333,7 @@ declare const labelAppearanceSchemaBase: ZodObject<{
3147
3333
  easing: ZodDefault<ZodString>;
3148
3334
  }, $strip>]>>;
3149
3335
  iconPadding: ZodDefault<ZodNumber>;
3336
+ iconBorderRadiusFactor: ZodDefault<ZodNumber>;
3150
3337
  iconFit: ZodDefault<ZodEnum<{
3151
3338
  fill: "fill";
3152
3339
  contain: "contain";
@@ -3191,8 +3378,9 @@ declare const labelAppearanceSchemaBase: ZodObject<{
3191
3378
  * | `iconSize` | `number` | Size of the icon in pixels. Requires `icon` to be set. | 20 |
3192
3379
  * | `iconScale` | `number` \| {@link Interpolation} | Scale the icon uniformly. Specify a number or an {@link Interpolation} object. | 1 |
3193
3380
  * | `iconPadding` | `number` | Padding between the icon and the pin's border in pixels. | 2 |
3381
+ * | `iconBorderRadiusFactor` | `number` | How round the icon pin's corners are, as a fraction of half the pin's size. `1` is a circle, `0` is a square. | 1 |
3194
3382
  * | `iconFit` | `'fill'` \| `'contain'` \| `'cover'` | How the icon should fit inside the pin. Options: `fill` (stretch to fill), `cover` (maintain aspect ratio and fill), `contain` (maintain aspect ratio and fit inside). | `cover` |
3195
- * | `iconOverflow` | `'visible'` \| `'hidden'` | Whether the icon should overflow the circle of the pin. | `hidden` |
3383
+ * | `iconOverflow` | `'visible'` \| `'hidden'` | Whether the icon should overflow the pin shape. | `hidden` |
3196
3384
  * | `iconVisible` | `boolean` \| `number` | Controls icon visibility. If boolean, directly shows/hides the icon. If number, defines the zoom level at which the icon becomes visible. | `true` |
3197
3385
  * | `opacity` | `number` | The opacity of the Label when it is enabled and visible. | `1` |
3198
3386
  *
@@ -3254,6 +3442,7 @@ declare const labelAppearanceSchema: ZodPipe<ZodObject<{
3254
3442
  easing: ZodDefault<ZodString>;
3255
3443
  }, $strip>]>>;
3256
3444
  iconPadding: ZodDefault<ZodNumber>;
3445
+ iconBorderRadiusFactor: ZodDefault<ZodNumber>;
3257
3446
  iconFit: ZodDefault<ZodEnum<{
3258
3447
  fill: "fill";
3259
3448
  contain: "contain";
@@ -3291,6 +3480,7 @@ declare const labelAppearanceSchema: ZodPipe<ZodObject<{
3291
3480
  easing: string;
3292
3481
  };
3293
3482
  iconPadding: number;
3483
+ iconBorderRadiusFactor: number;
3294
3484
  iconFit: "fill" | "contain" | "cover";
3295
3485
  iconOverflow: "hidden" | "visible";
3296
3486
  iconVisible: number | boolean;
@@ -3656,96 +3846,6 @@ type Entity2DHTMLDivElement = HTMLDivElement & {
3656
3846
  };
3657
3847
  };
3658
3848
  //#endregion
3659
- //#region ../packages/common/pubsub.d.ts
3660
- /**
3661
- * Generic PubSub class implementing the Publish-Subscribe pattern for event handling.
3662
- *
3663
- * @template EVENT_PAYLOAD - The type of the event payload.
3664
- * @template EVENT - The type of the event.
3665
- */
3666
- declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EVENT_PAYLOAD> {
3667
- /**
3668
- * @private
3669
- * @internal
3670
- */
3671
- private _subscribers;
3672
- /**
3673
- * @private
3674
- * @internal
3675
- * AbortController for managing lifecycle and cleanup
3676
- */
3677
- private _abortController;
3678
- /**
3679
- * Returns the AbortSignal for this PubSub instance.
3680
- * Use this signal with APIs that support cancellation (fetch, addEventListener, etc.)
3681
- * When the PubSub is destroyed, the signal will be aborted and all listeners using it will be automatically removed.
3682
- *
3683
- * @example
3684
- * ```typescript
3685
- * // Automatically cleaned up when PubSub is destroyed
3686
- * pubsub.addEventListener(window, 'resize', handler, { signal: pubsub.signal });
3687
- * ```
3688
- */
3689
- get signal(): AbortSignal;
3690
- /**
3691
- * @private
3692
- * @internal
3693
- */
3694
- publish<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, data?: EVENT_PAYLOAD[EVENT_NAME]): void;
3695
- /**
3696
- * Subscribe a function to be called when the signal is aborted.
3697
- * @param fn The function to call when the signal is aborted.
3698
- */
3699
- onAbort<T$1 extends (...args: any[]) => void>(fn: T$1): void;
3700
- /**
3701
- * Subscribe a function to an event.
3702
- *
3703
- * @param eventName An event name which, when fired, will call the provided
3704
- * function.
3705
- * @param fn A callback that gets called when the corresponding event is fired. The
3706
- * callback will get passed an argument with a type that's one of event payloads.
3707
- * @param options Optional options object. If a signal is provided, the subscription will be
3708
- * automatically cleaned up when that signal is aborted.
3709
- * @returns A cleanup function that unsubscribes the event listener when called.
3710
- * @example
3711
- * // Subscribe to the 'click' event
3712
- * const handler = (event) => {
3713
- * const { coordinate } = event;
3714
- * const { latitude, longitude } = coordinate;
3715
- * console.log(`Map was clicked at ${latitude}, ${longitude}`);
3716
- * };
3717
- * map.on('click', handler);
3718
- */
3719
- on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
3720
- data: null;
3721
- } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void, options?: {
3722
- signal?: AbortSignal;
3723
- }): () => void;
3724
- /**
3725
- * Unsubscribe a function previously subscribed with {@link on}
3726
- *
3727
- * @param eventName An event name to which the provided function was previously
3728
- * subscribed.
3729
- * @param fn A function that was previously passed to {@link on}. The function must
3730
- * have the same reference as the function that was subscribed.
3731
- * @example
3732
- * // Unsubscribe from the 'click' event
3733
- * const handler = (event) => {
3734
- * console.log('Map was clicked', event);
3735
- * };
3736
- * map.off('click', handler);
3737
- */
3738
- off<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
3739
- data: null;
3740
- } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
3741
- /**
3742
- * @private
3743
- * @internal
3744
- * Destroys the PubSub instance and automatically unsubscribes all listeners registered via on().
3745
- */
3746
- destroy(): void;
3747
- }
3748
- //#endregion
3749
3849
  //#region ../2d-labels-markers/lib/esm/systems/collision/system.d.ts
3750
3850
  type TCollisionSystemEvent = {
3751
3851
  'visibility-changed': undefined;
@@ -4508,21 +4608,6 @@ declare class Path implements IFocusable {
4508
4608
  };
4509
4609
  }
4510
4610
  //#endregion
4511
- //#region ../packages/common/interpolate.d.ts
4512
- declare const EASING_CURVES: readonly ["ease-in", "ease-out", "ease-in-out", "linear", "ease-out-cubic"];
4513
- /**
4514
- * The set of easing curves that can be applied when interpolating a value.
4515
- *
4516
- * - `linear`: constant rate of change from start to end.
4517
- * - `ease-in`: starts slowly, then accelerates.
4518
- * - `ease-out`: starts quickly, then decelerates.
4519
- * - `ease-in-out`: starts slowly, accelerates through the middle, then decelerates.
4520
- * - `ease-out-cubic`: a stronger ease-out using a cubic curve.
4521
- *
4522
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function
4523
- */
4524
- type EasingCurve = (typeof EASING_CURVES)[number];
4525
- //#endregion
4526
4611
  //#region src/navigation/tethered.d.ts
4527
4612
  /**
4528
4613
  * Preset visual styles for the connector line drawn from the tracked
@@ -5294,6 +5379,20 @@ declare class FloorStackObject implements Omit<FloorStack$1, 'maps' | 'floors' |
5294
5379
  }
5295
5380
  //#endregion
5296
5381
  //#region src/api-geojson/map-object.d.ts
5382
+ /**
5383
+ * Handler that intercepts `setFloor` between `floor-change-start` and the internal
5384
+ * commit (currentFloor assignment + `floor-change` emission). Replaces the default
5385
+ * `processFloorChange` + `setVisible` path entirely while installed.
5386
+ *
5387
+ * A handler may run synchronously or return a promise. `setFloor` only
5388
+ * defers the floor-change commit when the handler actually returns a thenable — a synchronous
5389
+ * handler commits inline, with no microtask, so callers that do no async work don't pay an await.
5390
+ */
5391
+ type SetFloorHandler = (floor: Floor, context: {
5392
+ reason?: TFloorChangeReason;
5393
+ previousFloor?: Floor;
5394
+ signal: AbortSignal;
5395
+ }) => void | Promise<void>;
5297
5396
  declare class GeojsonApiMapObject extends PubSub<{
5298
5397
  'floor-change': {
5299
5398
  reason?: TFloorChangeReason;
@@ -5325,7 +5424,13 @@ declare class GeojsonApiMapObject extends PubSub<{
5325
5424
  get currentFloor(): FloorObject;
5326
5425
  /** @deprecated use `currentFloorStack.floorObjects` or `floorsById` instead */
5327
5426
  get floors(): FloorObject[];
5328
- processFloorChange(floorId: string): void;
5427
+ /**
5428
+ * @param fromStackId - the stack we're transitioning *from* (the previously-committed stack).
5429
+ * Passed explicitly rather than read off `currentFloorStackId` because the latter now reflects
5430
+ * intent — it already points at the target stack by the time this runs, so it can't tell us
5431
+ * whether this is a cross-stack transition.
5432
+ */
5433
+ processFloorChange(floorId: string, fromStackId: string): void;
5329
5434
  /**
5330
5435
  * Merges the given effect fields into the stored multiFloorView options
5331
5436
  * and re-applies floor states so the change is visible immediately.
@@ -7506,15 +7611,31 @@ declare class MapView {
7506
7611
  /**
7507
7612
  * @internal
7508
7613
  * @hidden
7509
- * Whether the floor visibility is being self managed or automatically handled by the SDK.
7614
+ * When `true`, floor changes skip the automatic hide-other-floors logic, leaving floor
7615
+ * visibility under the caller's control. Derived from whether a setFloor handler is installed: a
7616
+ * real {@link __EXPERIMENTAL__overrideSetFloorHandler} handler reports `true` here too.
7510
7617
  */
7511
7618
  get manualFloorVisibility(): boolean;
7512
7619
  /**
7513
7620
  * @internal
7514
7621
  * @hidden
7515
- * Disables the default behavior of the SDK to automatically hide floors on setFloor.
7622
+ * When `true`, floor changes skip the automatic hide-other-floors logic, leaving floor
7623
+ * visibility under the caller's control. Setting `true` installs a synchronous no-op handler when
7624
+ * none exists (a real handler is left untouched); setting `false` clears the handler — "not
7625
+ * manual" means no handler.
7516
7626
  */
7517
7627
  set manualFloorVisibility(value: boolean);
7628
+ /**
7629
+ * **Super experimental — this API may change or be removed in any release without notice.
7630
+ * Do not depend on it in production.**
7631
+ *
7632
+ * Last-writer-wins: installing while one is already registered logs a warning and replaces it.
7633
+ * Pass `undefined` to clear.
7634
+ *
7635
+ * @internal
7636
+ * @hidden
7637
+ */
7638
+ __EXPERIMENTAL__overrideSetFloorHandler(handler: SetFloorHandler | undefined): void;
7518
7639
  /**
7519
7640
  * @internal
7520
7641
  * @hidden
@@ -8017,7 +8138,7 @@ type CurrentMapGetter$6 = () => GeojsonApiMapObject | undefined;
8017
8138
  * - Automatic rotation and positioning
8018
8139
  * - Batch operations for adding all labels at once
8019
8140
  *
8020
- * > **Best Practice:** Use the `rank` option to control label visibility priority. Use `interactive: true` to enable click/hover events for important labels.
8141
+ * > **Best Practice:** Use the `rank` option to control label visibility priority. Use `interactive: true` to enable click/hover events for important labels. Prefer `low` / `medium` / `high` when labels should yield to BlueDot's `enable2DCollisions` shield — `always-visible` labels never yield and can still cover the BlueDot.
8021
8142
  *
8022
8143
  * ### Example Usage
8023
8144
  * ```ts
@@ -9304,7 +9425,7 @@ type TGeometryUpdateState = output<typeof geometryStateSchemaPartial>;
9304
9425
  declare const labelStateSchema: ZodObject<{
9305
9426
  type: ZodDefault<ZodLiteral<"label">>;
9306
9427
  text: ZodString;
9307
- rank: ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">;
9428
+ rank: ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>;
9308
9429
  appearance: ZodCustom<LabelAppearance, LabelAppearance>;
9309
9430
  interactive: ZodDefault<ZodBoolean>;
9310
9431
  enabled: ZodDefault<ZodBoolean>;
@@ -9327,7 +9448,7 @@ declare const labelStateSchema: ZodObject<{
9327
9448
  declare const labelStateSchemaPartial: ZodObject<{
9328
9449
  type: ZodOptional<ZodDefault<ZodLiteral<"label">>>;
9329
9450
  text: ZodOptional<ZodString>;
9330
- rank: ZodOptional<ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">>;
9451
+ rank: ZodOptional<ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>>;
9331
9452
  appearance: ZodOptional<ZodCustom<LabelAppearance, LabelAppearance>>;
9332
9453
  interactive: ZodOptional<ZodDefault<ZodBoolean>>;
9333
9454
  enabled: ZodOptional<ZodDefault<ZodBoolean>>;
@@ -9360,7 +9481,7 @@ type TLabelUpdateState = output<typeof labelStateSchemaPartial>;
9360
9481
  /** @internal */
9361
9482
  declare const markerStateSchema: ZodObject<{
9362
9483
  type: ZodDefault<ZodLiteral<"marker">>;
9363
- rank: ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">;
9484
+ rank: ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>;
9364
9485
  placement: ZodOptional<ZodUnion<readonly [ZodEnum<{
9365
9486
  hidden: "hidden";
9366
9487
  top: "top";
@@ -9403,7 +9524,7 @@ declare const markerStateSchemaPartial: ZodObject<{
9403
9524
  type: ZodOptional<ZodDefault<ZodLiteral<"marker">>>;
9404
9525
  enabled: ZodOptional<ZodDefault<ZodBoolean>>;
9405
9526
  interactive: ZodOptional<ZodDefault<ZodUnion<readonly [ZodBoolean, ZodLiteral<"pointer-events-auto">]>>>;
9406
- rank: ZodOptional<ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">>;
9527
+ rank: ZodOptional<ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>>;
9407
9528
  occlude: ZodOptional<ZodDefault<ZodBoolean>>;
9408
9529
  placement: ZodOptional<ZodOptional<ZodUnion<readonly [ZodEnum<{
9409
9530
  hidden: "hidden";
@@ -9870,6 +9991,14 @@ declare class GeoJsonApi extends PubSub<TNavigationEvents> {
9870
9991
  * MapView.on() and MapView.off().
9871
9992
  */
9872
9993
  externalPubSub: PubSub<TEvents>;
9994
+ get __EXPERIMENTAL__floorHandler(): SetFloorHandler | undefined;
9995
+ __EXPERIMENTAL__overrideSetFloorHandler(handler: SetFloorHandler | undefined): void;
9996
+ /**
9997
+ * Whether floor changes skip the automatic hide-other-floors logic, leaving floor visibility
9998
+ * under the caller's control. Derived state: a handler is installed ⇒ manual; no handler ⇒ not
9999
+ * manual. A real override handler (e.g. dynamic-focus) implies manual visibility; the setter
10000
+ * below installs a synchronous no-op for the flag-only case.
10001
+ */
9873
10002
  get manualFloorVisibility(): boolean;
9874
10003
  set manualFloorVisibility(value: boolean);
9875
10004
  get hidePathsNotOnCurrentFloor(): boolean;
@@ -10688,20 +10817,6 @@ declare class Text3DView {
10688
10817
  static is(instance: object): instance is Text3DView;
10689
10818
  }
10690
10819
  //#endregion
10691
- //#region ../packages/common/errors.d.ts
10692
- /**
10693
- * @internal
10694
- */
10695
- declare class MappedinError extends Error {
10696
- constructor(message: string, label?: string);
10697
- }
10698
- /**
10699
- * @internal
10700
- */
10701
- declare class MappedinRenderError extends MappedinError {
10702
- constructor(message: string, label?: string);
10703
- }
10704
- //#endregion
10705
10820
  //#region src/events.d.ts
10706
10821
  /**
10707
10822
  * Free-form context string passed to `MapView.setFloor` (via {@link TSetFloorOptions})
@@ -11529,7 +11644,7 @@ type TConnectionPathOptions = TAddPathOptions & {
11529
11644
  * | low | Colliders with this ranking have a low visibility priority and will be hidden in favor of higher-ranked colliders in crowded areas. |
11530
11645
  * | medium | Colliders with this ranking have a standard visibility priority and may be hidden in favor of higher-ranked colliders in crowded areas. |
11531
11646
  * | high | These colliders are given higher visibility priority than 'medium' priority. |
11532
- * | always-visible | Colliders with this ranking will not be hidden, ensuring their constant visibility regardless of crowding. |
11647
+ * | always-visible | Colliders with this ranking will not be hidden, ensuring their constant visibility regardless of crowding. Labels with this rank also will not yield to BlueDot's `enable2DCollisions` shield and can still paint over the BlueDot. |
11533
11648
  *
11534
11649
  * Use this type to fine-tune the visibility of colliders, enhancing map readability and user experience by prioritizing important information.
11535
11650
  */
@@ -13034,8 +13149,8 @@ declare class Area extends DetailedMapData<AreaCollection['features'][number]> i
13034
13149
  */
13035
13150
  get geoJSON(): {
13036
13151
  properties: null;
13037
- type: _mappedin_mvf_v28.FeatureType;
13038
- geometry: _mappedin_mvf_v28.Polygon;
13152
+ type: _mappedin_mvf_v22.FeatureType;
13153
+ geometry: _mappedin_mvf_v22.Polygon;
13039
13154
  };
13040
13155
  /** @internal */
13041
13156
  get focusTarget(): this;
@@ -13137,8 +13252,8 @@ declare class Door extends DetailedMapData<EntranceFeature> implements IGeoJSOND
13137
13252
  */
13138
13253
  get geoJSON(): {
13139
13254
  properties: null;
13140
- type: _mappedin_mvf_v28.FeatureType;
13141
- geometry: _mappedin_mvf_v28.LineString;
13255
+ type: _mappedin_mvf_v22.FeatureType;
13256
+ geometry: _mappedin_mvf_v22.LineString;
13142
13257
  };
13143
13258
  /** @internal */
13144
13259
  get focusTarget(): Coordinate;
@@ -13274,8 +13389,8 @@ declare class Space extends DetailedMapData<SpaceFeature> implements IGeoJSONDat
13274
13389
  */
13275
13390
  get geoJSON(): {
13276
13391
  properties: null;
13277
- type: _mappedin_mvf_v28.FeatureType;
13278
- geometry: _mappedin_mvf_v28.Point | _mappedin_mvf_v28.LineString | _mappedin_mvf_v28.Polygon;
13392
+ type: _mappedin_mvf_v22.FeatureType;
13393
+ geometry: _mappedin_mvf_v22.Point | _mappedin_mvf_v22.LineString | _mappedin_mvf_v22.Polygon;
13279
13394
  };
13280
13395
  /** @internal */
13281
13396
  get focusTarget(): this | Coordinate;
@@ -13361,7 +13476,7 @@ declare class PointOfInterest extends DetailedMapData<FeatureCollection$1<Point$
13361
13476
  */
13362
13477
  get geoJSON(): {
13363
13478
  properties: null;
13364
- type: _mappedin_mvf_v28.FeatureType;
13479
+ type: _mappedin_mvf_v22.FeatureType;
13365
13480
  geometry: Point$1;
13366
13481
  };
13367
13482
  /**
@@ -13475,8 +13590,8 @@ declare class Annotation extends DetailedMapData<AnnotationCollection['features'
13475
13590
  */
13476
13591
  get geoJSON(): {
13477
13592
  properties: null;
13478
- type: _mappedin_mvf_v28.FeatureType;
13479
- geometry: _mappedin_mvf_v28.Point;
13593
+ type: _mappedin_mvf_v22.FeatureType;
13594
+ geometry: _mappedin_mvf_v22.Point;
13480
13595
  };
13481
13596
  /** @internal */
13482
13597
  get focusTarget(): Coordinate;
@@ -13692,8 +13807,8 @@ declare class MapObject extends DetailedMapData<ObstructionFeature> implements I
13692
13807
  */
13693
13808
  get geoJSON(): {
13694
13809
  properties: null;
13695
- type: _mappedin_mvf_v28.FeatureType;
13696
- geometry: _mappedin_mvf_v28.LineString | _mappedin_mvf_v28.Polygon;
13810
+ type: _mappedin_mvf_v22.FeatureType;
13811
+ geometry: _mappedin_mvf_v22.LineString | _mappedin_mvf_v22.Polygon;
13697
13812
  };
13698
13813
  /** @internal */
13699
13814
  get anchorTarget(): Coordinate;
@@ -14006,8 +14121,8 @@ declare class Node extends BaseMetaData implements IGeoJSONData, IFocusable, IAn
14006
14121
  */
14007
14122
  get geoJSON(): {
14008
14123
  properties: null;
14009
- type: _mappedin_mvf_v28.FeatureType;
14010
- geometry: _mappedin_mvf_v28.Point;
14124
+ type: _mappedin_mvf_v22.FeatureType;
14125
+ geometry: _mappedin_mvf_v22.Point;
14011
14126
  };
14012
14127
  /** @internal */
14013
14128
  get focusTarget(): Coordinate;
@@ -16063,7 +16178,7 @@ declare class MapData {
16063
16178
  * console.log(`Current language: ${language.name} (${language.code})`);
16064
16179
  * ```
16065
16180
  */
16066
- get currentLanguage(): _mappedin_mvf_v28.Language | undefined;
16181
+ get currentLanguage(): _mappedin_mvf_v22.Language | undefined;
16067
16182
  /**
16068
16183
  * Gets the natural bearing of the map.
16069
16184
  *
@@ -17315,7 +17430,7 @@ type UpdateModelState = Omit<InitializeModelState$2, 'url'> & {
17315
17430
  };
17316
17431
  declare class ModelComponent {
17317
17432
  #private;
17318
- mesh?: Geometry3DObject3D | Group$1;
17433
+ mesh?: Geometry3DObject3D | Group;
17319
17434
  readonly type = "model";
17320
17435
  positionDirty: boolean;
17321
17436
  outline?: LineSegments;
@@ -17337,7 +17452,7 @@ declare class ModelComponent {
17337
17452
  /**
17338
17453
  * The model scene that was loaded from GLB, minus the hole-fill-mesh business.
17339
17454
  */
17340
- get modelScene(): Object3D<three1.Object3DEventMap> | Geometry3DObject3D | undefined;
17455
+ get modelScene(): Object3D<three0.Object3DEventMap> | Geometry3DObject3D | undefined;
17341
17456
  position: Vector3;
17342
17457
  get altitude(): number;
17343
17458
  set altitude(value: number);
@@ -17867,7 +17982,7 @@ declare class CustomGeometryComponent {
17867
17982
  get opacity(): number;
17868
17983
  color: Color;
17869
17984
  setColor(color: string): void;
17870
- get position(): three1.Vector3;
17985
+ get position(): three0.Vector3;
17871
17986
  get altitude(): number;
17872
17987
  set altitude(value: number);
17873
17988
  get renderOrder(): number;
@@ -18069,7 +18184,7 @@ type ClippingPlane = {
18069
18184
  * bit, so the counting passes must also be skipped to avoid leaving the bit
18070
18185
  * set and corrupting other stencil-based features (e.g. underground mask).
18071
18186
  */
18072
- holeFillGroup?: Group$1;
18187
+ holeFillGroup?: Group;
18073
18188
  topColor?: string;
18074
18189
  needsRebuild: boolean;
18075
18190
  topVisible?: boolean;
@@ -18090,7 +18205,7 @@ declare class ClippingPlaneComponent implements ClippingPlane {
18090
18205
  verticalOffset: number;
18091
18206
  plane?: Plane;
18092
18207
  holeFillMesh?: Mesh;
18093
- holeFillGroup?: Group$1;
18208
+ holeFillGroup?: Group;
18094
18209
  topColor?: string;
18095
18210
  topVisible: boolean;
18096
18211
  bboxCenter?: {
@@ -19266,7 +19381,7 @@ declare class CameraSystem extends PubSub<CameraEvents> {
19266
19381
  convertZoomLevelToAltitude: (zoomLevel: number) => number;
19267
19382
  private completeTween;
19268
19383
  static CAMERA_FRAME_PADDING_SIDES: readonly ["top", "bottom", "left", "right"];
19269
- debugContainer: Object3D<three1.Object3DEventMap>;
19384
+ debugContainer: Object3D<three0.Object3DEventMap>;
19270
19385
  getCameraFrameForCoordinates(pointCloud: Vector3[], options: CameraFocusOnOptions & {
19271
19386
  padding: InsetPadding$2;
19272
19387
  }): {
@@ -19718,6 +19833,10 @@ declare class CustomGeometrySystem {
19718
19833
  */
19719
19834
  declare class IdleQueue {
19720
19835
  #private;
19836
+ /**
19837
+ * @param maxDelay - Forced idle-callback timeout in ms (default {@link FORCE_IDLE_CALLBACK_TIMEOUT}).
19838
+ */
19839
+ constructor(maxDelay?: number);
19721
19840
  /**
19722
19841
  * Returns the current number of pending jobs in the queue
19723
19842
  */
@@ -19761,8 +19880,11 @@ declare class OutlineInterpolationSystem extends PubSub<{
19761
19880
  */
19762
19881
  outlineOpacitiesDirty: boolean;
19763
19882
  /**
19764
- * Use IdleQueue to ensure the thread isn't blocked by building outlines
19765
- * @internal for unit tests only
19883
+ * Use IdleQueue to ensure the thread isn't blocked by building outlines.
19884
+ * When false, the build + bounding-sphere recompute run inline. Internal unit-test affordance,
19885
+ * decoupled from the public `__TEST_synchronousIdleWork` option (which now only caps the idle
19886
+ * timeout via `idleMaxDelay`); not driven by show3dMap.
19887
+ * @internal for tests only
19766
19888
  */
19767
19889
  useIdleFramesOnly: boolean;
19768
19890
  get geometries3DDirty(): boolean;
@@ -19780,8 +19902,10 @@ declare class OutlineInterpolationSystem extends PubSub<{
19780
19902
  * Creates a new OutlineInterpolationSystem
19781
19903
  * @param rendererState - The renderer state
19782
19904
  * @param options - Optional configuration for outline rendering
19905
+ * @param useIdleFramesOnly - When false, build outlines/bounding spheres inline instead of on idle frames (test-only)
19906
+ * @param idleMaxDelay - Forced idle-callback timeout (ms) applied to the build/bounding-sphere queues
19783
19907
  */
19784
- constructor(rendererState: RendererState, options?: OutlinesOptions$1);
19908
+ constructor(rendererState: RendererState, options?: OutlinesOptions$1, useIdleFramesOnly?: boolean, idleMaxDelay?: number);
19785
19909
  buildOutlines(geometryGroupEntity: FeatureCollectionObject3D): void;
19786
19910
  /**
19787
19911
  * Update the outline color of all entities with an outline component.
@@ -19943,7 +20067,13 @@ declare class OutdoorLayers extends PubSub<{}> {
19943
20067
  #private;
19944
20068
  idleQueue: IdleQueue;
19945
20069
  hideLayersIntersectingPolygons(polygons: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>[], layers: string[]): void;
19946
- constructor(map?: Map$1);
20070
+ /**
20071
+ * @param map - The MapLibre map to cover OSM buildings on.
20072
+ * @param idleMaxDelay - Forced idle-callback timeout (ms) for the covering-sweep queue. The e2e
20073
+ * harness caps it so the sweep settles inside a screenshot's settle wait instead of drifting out
20074
+ * to {@link FORCE_IDLE_CALLBACK_TIMEOUT} on a load-starved runner.
20075
+ */
20076
+ constructor(map?: Map$1, idleMaxDelay?: number);
19947
20077
  destroy(): void;
19948
20078
  }
19949
20079
  //#endregion
@@ -20199,16 +20329,6 @@ declare class Debug$1 {
20199
20329
  }
20200
20330
  //#endregion
20201
20331
  //#region ../renderer-three/src/systems/2d-occlusion/system.d.ts
20202
- /**
20203
- * Set to `true` by the visual regression harness (see `e2e/visual/fixtures.ts`)
20204
- * before page load. When set we bypass the throttle so screenshots are
20205
- * deterministic. Anything else leaves the throttle in effect.
20206
- */
20207
- declare global {
20208
- interface Window {
20209
- __MAPPEDIN_E2E__?: boolean;
20210
- }
20211
- }
20212
20332
  declare class Occlusion2DSystem {
20213
20333
  private state;
20214
20334
  private renderer;
@@ -21363,8 +21483,8 @@ declare class Core extends PubSub<MapEvent> {
21363
21483
  */
21364
21484
  getInternalState(): RendererState;
21365
21485
  /** @internal */
21366
- getInternalTweenGroup(): Group;
21367
- getExternalTweenGroup(): Group;
21486
+ getInternalTweenGroup(): Group$1;
21487
+ getExternalTweenGroup(): Group$1;
21368
21488
  computeMinZOffsetBetweenContainers(lowerContainer: GroupContainerObject3D, upperContainer: GroupContainerObject3D, debug?: boolean): number;
21369
21489
  /**
21370
21490
  * Subscribe a function to an event.
@@ -21641,7 +21761,23 @@ type RendererCoreOptions$2 = Partial<{
21641
21761
  * - An object with `maxOpacity` and/or `darkenFactor` allows fine-grained control
21642
21762
  */
21643
21763
  outlines?: boolean | OutlinesOptions$1;
21764
+ /**
21765
+ * Caps the forced `requestIdleCallback` timeout for renderer-three's idle-deferred work (outline
21766
+ * build + bounding-sphere recompute, OutdoorLayers covering sweep). Idle scheduling stays on, but a
21767
+ * lower `maxDelay` forces the work to settle quickly so e2e screenshots don't race a half-built scene.
21768
+ * @internal test-only; when unset the queues use the default 3000 ms timeout.
21769
+ */
21770
+ __TEST_synchronousIdleWork?: IdleWorkTestOptions;
21644
21771
  }>;
21772
+ /**
21773
+ * Bounded-idle test knob. `enabled` opts in; `maxDelay` (ms) caps the idle-callback forced timeout.
21774
+ * @internal test-only
21775
+ */
21776
+ type IdleWorkTestOptions = {
21777
+ enabled: boolean;
21778
+ /** @default 3000 */
21779
+ maxDelay?: number;
21780
+ };
21645
21781
  /**
21646
21782
  * Outline rendering configuration options
21647
21783
  */
@@ -22121,9 +22257,9 @@ type RendererState = {
22121
22257
  canvasWidth: number;
22122
22258
  canvasHeight: number;
22123
22259
  /** Group for all tweens that are created internally by the SDK */
22124
- internalTweenGroup: Group;
22260
+ internalTweenGroup: Group$1;
22125
22261
  /** Group for all tweens that are created externally, such as from animateState */
22126
- externalTweenGroup: Group;
22262
+ externalTweenGroup: Group$1;
22127
22263
  cameraObject: Camera$1;
22128
22264
  naturalBearing: number;
22129
22265
  containerOffset: [number, number];
@@ -22315,32 +22451,6 @@ declare const MAPPEDIN_COLORS: {
22315
22451
  lightTeal: string;
22316
22452
  };
22317
22453
  //#endregion
22318
- //#region ../packages/common/Mappedin.Logger.d.ts
22319
- /**
22320
- * SDK logging verbosity. Ordered from most verbose to least (`debug < info < warn < error`) —
22321
- * selecting a level enables that level plus every level after it. `SILENT` suppresses all output.
22322
- */
22323
- declare enum E_SDK_LOG_LEVEL {
22324
- /** @deprecated Renamed to {@link E_SDK_LOG_LEVEL.DEBUG}. Kept as an alias for back-compat. */
22325
- LOG = 0,
22326
- DEBUG = 0,
22327
- INFO = 1,
22328
- WARN = 2,
22329
- ERROR = 3,
22330
- SILENT = 4,
22331
- }
22332
- type TLogLevelName = 'debug' | 'info' | 'log' | 'warn' | 'error' | 'silent';
22333
- /** Resolve a case-insensitive level name to an {@link E_SDK_LOG_LEVEL}; `undefined` if unrecognized. */
22334
- declare function parseLogLevel(level: string): E_SDK_LOG_LEVEL | undefined;
22335
- /**
22336
- * Set the SDK's global log verbosity. Lower levels include all higher-numbered levels;
22337
- * `SILENT` suppresses all output. Defaults to `INFO` (`DEBUG` is opt-in).
22338
- * @param level - The desired verbosity: a case-insensitive level name (`'debug'`, `'info'`,
22339
- * `'warn'`, `'error'`, `'silent'`) or an {@link E_SDK_LOG_LEVEL} value. An unrecognized or
22340
- * out-of-range value warns rather than silently no-ops.
22341
- */
22342
- declare function setLoggerLevel(level: E_SDK_LOG_LEVEL | TLogLevelName): void;
22343
- //#endregion
22344
22454
  //#region src/utils/convert-renderer-core-options.d.ts
22345
22455
  /**
22346
22456
  * Converts TShow3DMapOptions to RendererCoreOptions format.
@@ -22734,6 +22844,18 @@ type TShow3DMapOptions = {
22734
22844
  * @default false
22735
22845
  */
22736
22846
  disableUpdateStateValidation?: boolean;
22847
+ /**
22848
+ * @internal
22849
+ *
22850
+ * Caps the forced `requestIdleCallback` timeout for renderer-three's idle-scheduled render work
22851
+ * (outline building, OutdoorLayers covering sweep). Idle scheduling stays on; a lower `maxDelay`
22852
+ * forces the work to settle quickly so e2e visual screenshots don't race a half-built scene.
22853
+ * Test-only: defaults on under the e2e harness (`window.__MAPPEDIN_E2E__`) with `maxDelay` 100.
22854
+ */
22855
+ __TEST_synchronousIdleWork?: {
22856
+ enabled: boolean;
22857
+ maxDelay?: number;
22858
+ };
22737
22859
  };
22738
22860
  /**
22739
22861
  * @internal
@@ -22858,4 +22980,4 @@ declare const getVersion: () => string | undefined;
22858
22980
  */
22859
22981
  declare const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
22860
22982
  //#endregion
22861
- export { ACTION_TYPE, ANIMATION_TWEENS, type AddText3DOptions, type AddText3DPointOptions, type Analytics, Annotation, Area, type AutoElements, BBox, BEARING_TYPE, CONNECTION_TYPE, type Camera, type CameraBounds, type CameraTransform, type CaptureEventsPayloadMap, type ColorString, Connection, Coordinate, DOORS, type Debug, type DebugState, DetailedMapData, Directions, Door, E_SDK_LOG_LEVEL, type EasingCurve, EnterpriseCategory, EnterpriseLocation, EnterpriseVenue, type EnvMapOptions, type Environment, type Exporter, Facade, Feature, FeatureCollection, Floor, FloorStack, type FootprintConfig, GeoJSON$1 as GeoJSON, GeoJsonGeometryTypes, GeoJsonObject, GeoJsonProperties, GeoJsonTypes, Geometry, GeometryCollection, GeometryObject, type GlobalState, Hyperlink, type IAnchorable, type IFocusable, type IGeoJSONData, type INavigatable, type ISystemPlugin, type Image3D, type Image3DView, ImageMetaData, type InitializeModelState, type InitializeText3DState, type InsetPadding, type InsetPaddingOption, type InterpolateOn, type Interpolation, type Label, type LabelAppearance, type LabelTextPlacement, type Labels, LineString, type LineStyle, LocationCategory, LocationProfile, type LocationSocial, type LocationState, MAPPEDIN_COLORS, type MapData, type MapDataElements, type MapElementToGetRenderedState, type MapElementToGetState, type MapElementToUpdateState, type MapElementsWithState, type MapFeatureOfType, MapObject, MapView, type MapViewElements, type MapViewState, type MappedinError, type MappedinRenderError, type Marker, type Markers, type MatchInfo, type Model, type Models, type MultiFloorViewEffectState, MultiLineString, MultiPoint, MultiPolygon, type Navigation, type NavigationState, Node, type OpeningHours, type OperationHours, type Outdoor, type OutlinesOptions, type PaintStyle, type Path, type PathSegment$1 as PathSegment, type PathWidth, type Paths, type PixelWidth, type Places, Point, PointOfInterest, Polygon, type Position, type PubSub, type Query, type RendererCoreOptions, type Search, type SearchOptions, type SearchResult, type SearchResultEnterpriseCategory, type SearchResultEnterpriseLocations, type SearchResultItem, type SearchResultPlaces, type Shading, type Shape, type Shapes, type SiblingGroup, Space, type Style, type Suggestion, type TActionType, type TAddImageOptions, type TAddLabelOptions, type TAddMarkerOptions, type TAddModel, type TAddModelOptions, type TAddPathOptions, type TAddText3DAnchorableOptions, type TAddText3DOptions, type TAnalyticsUpdateState, type TAnimateStateResult, type TAnimationOptions, type TAntialiasingOptions, type TBearingType, type TCameraAnimationOptions, type TCameraInteractionsSetOptions, type TCameraTarget, type TCancellablePromise, type TClickPayload, type TCollisionRankingTier, type TConnectionPathOptions, type TConnectionType, type TCoordinateParams, type TCreateMarker, type TDirectionInstruction, type TDirectionInstructionAction, type TDirectionZone, type TDoorsState, type TDoorsUpdateState, type TEasingFunction, type TEventPayload, type TEvents, type TExperimentalDashOptions, type TFacadeState, type TFacadeUpdateState, type TFindNearestOptions, type TFindNearestResult, type TFindPreferredLanguageInVenueOptions, type TFloorAltitudeData, type TFloorChangePayload, type TFloorChangeReason, type TFloorState, type TFloorUpdateState, type TFocusOnOptions, type TFocusTarget, type TGeometryState, type TGeometryUpdateState, type TGetDirectionsOptions, type TGetMapDataOptions, type TGetMapDataSharedOptions, type TGetMapDataWithAccessTokenOptions, type TGetMapDataWithCredentialsOptions, type TGetState, type THoverPayload, type THydrateMapDataBundle, type TImage3DState as TImageState, type TImage3DUpdateState as TImageUpdateState, type TLabelState, type TLabelUpdateState, type TLogLevelName, type TMVF, type TMVFLineStringStyle, type TMVFPointStyle, type TMVFPolygonStyle, type TMVFStyle, type TMVFStyleCollection, type TMapDataEvents, type TMapDataObjectTypes, type TMapFeatureTypes, type TMapViewObjectTypes, type TMarkerPlacement, type TMarkerState, type TMarkerUpdateState, type TModelState, type TModelUpdateState, type TMultiFloorViewOptions, type TNavigationMarker, type TNavigationMarkerType, type TNavigationOptions, type TNavigationPathOptions, type TNavigationTarget, type TOutsideThresholdPathStyle, type TPathSectionHighlightOptions, type TPathState, type TPathUpdateState, type TQueriables, type TQueryAtResult, type RendererState as TRendererState, type TSearchOptions, type TSetFloorOptions, type TShapeState, type TShapeUpdateState, type TShow3DMapOptions, type TSpaceType, type TStateChangedInternalPayload, type TTakeScreenshotOptions, type TTetheredOptions as TTetherOptions, type TText3DState, type TText3DUpdateState, type TTrackCoordinateOptions, type TTravelledOptions, type TUpdateState, type TWallsState, type TWallsUpdateState, TWatermarkOptions, type Text3D, type Text3DView, type UpdateGlobalState, type VisibilityState, WALLS, type WithState, MAPPEDIN_LAYER_ID as __INTERNAL__MAPPEDIN_LAYER_ID, MapLibreOverlay as __INTERNAL__MapLibreOverlay, Core as __INTERNAL__RendererCore, convertToRendererCoreOptions as __INTERNAL__convertToRendererCoreOptions, __setWatermarkOnClickFn, checkWorkerUrls, disableText3DWorker, enableTestMode, findPreferredLanguageInVenue, forceEnterpriseLocations, getMapData, getMapDataEnterprise, getMultiFloorState, getVersion, hydrateMapData, hydrateMapDataFromMVF, parseLogLevel, parseMVFv2 as parseMVF, preloadFont, setLoggerLevel, setUseEnterpriseAPI, setWorkersUrl, shouldForceEnterpriseLocations, show3dMap, show3dMapGeojson, unzipAndParseMVFv2, unzipMVFv2 as unzipMVF };
22983
+ export { ACTION_TYPE, ANIMATION_TWEENS, type AddText3DOptions, type AddText3DPointOptions, type Analytics, Annotation, Area, type AutoElements, BBox, BEARING_TYPE, CONNECTION_TYPE, type Camera, type CameraBounds, type CameraTransform, type CaptureEventsPayloadMap, type ColorString, Connection, Coordinate, DOORS, type Debug, type DebugState, DetailedMapData, Directions, Door, E_SDK_LOG_LEVEL, type EasingCurve, EnterpriseCategory, EnterpriseLocation, EnterpriseVenue, type EnvMapOptions, type Environment, type Exporter, Facade, Feature, FeatureCollection, Floor, FloorStack, type FootprintConfig, GeoJSON$1 as GeoJSON, GeoJsonGeometryTypes, GeoJsonObject, GeoJsonProperties, GeoJsonTypes, Geometry, GeometryCollection, GeometryObject, type GlobalState, Hyperlink, type IAnchorable, type IFocusable, type IGeoJSONData, type INavigatable, type ISystemPlugin, type Image3D, type Image3DView, ImageMetaData, type InitializeModelState, type InitializeText3DState, type InsetPadding, type InsetPaddingOption, type InterpolateOn, type Interpolation, type Label, type LabelAppearance, type LabelTextPlacement, type Labels, LineString, type LineStyle, LocationCategory, LocationProfile, type LocationSocial, type LocationState, MAPPEDIN_COLORS, type MapData, type MapDataElements, type MapElementToGetRenderedState, type MapElementToGetState, type MapElementToUpdateState, type MapElementsWithState, type MapFeatureOfType, MapObject, MapView, type MapViewElements, type MapViewState, type MappedinError, type MappedinRenderError, type Marker, type Markers, type MatchInfo, type Model, type Models, type MultiFloorViewEffectState, MultiLineString, MultiPoint, MultiPolygon, type Navigation, type NavigationState, Node, type OpeningHours, type OperationHours, type Outdoor, type OutlinesOptions, type PaintStyle, type Path, type PathSegment$1 as PathSegment, type PathWidth, type Paths, type PixelWidth, type Places, Point, PointOfInterest, Polygon, type Position, type PubSub, type Query, type RendererCoreOptions, type Search, type SearchOptions, type SearchResult, type SearchResultEnterpriseCategory, type SearchResultEnterpriseLocations, type SearchResultItem, type SearchResultPlaces, type SetFloorHandler, type Shading, type Shape, type Shapes, type SiblingGroup, Space, type Style, type Suggestion, type TActionType, type TAddImageOptions, type TAddLabelOptions, type TAddMarkerOptions, type TAddModel, type TAddModelOptions, type TAddPathOptions, type TAddText3DAnchorableOptions, type TAddText3DOptions, type TAnalyticsUpdateState, type TAnimateStateResult, type TAnimationOptions, type TAntialiasingOptions, type TBearingType, type TCameraAnimationOptions, type TCameraInteractionsSetOptions, type TCameraTarget, type TCancellablePromise, type TClickPayload, type TCollisionRankingTier, type TConnectionPathOptions, type TConnectionType, type TCoordinateParams, type TCreateMarker, type TDirectionInstruction, type TDirectionInstructionAction, type TDirectionZone, type TDoorsState, type TDoorsUpdateState, type TEasingFunction, type TEventPayload, type TEvents, type TExperimentalDashOptions, type TFacadeState, type TFacadeUpdateState, type TFindNearestOptions, type TFindNearestResult, type TFindPreferredLanguageInVenueOptions, type TFloorAltitudeData, type TFloorChangePayload, type TFloorChangeReason, type TFloorState, type TFloorUpdateState, type TFocusOnOptions, type TFocusTarget, type TGeometryState, type TGeometryUpdateState, type TGetDirectionsOptions, type TGetMapDataOptions, type TGetMapDataSharedOptions, type TGetMapDataWithAccessTokenOptions, type TGetMapDataWithCredentialsOptions, type TGetState, type THoverPayload, type THydrateMapDataBundle, type TImage3DState as TImageState, type TImage3DUpdateState as TImageUpdateState, type TLabelState, type TLabelUpdateState, type TLogLevelName, type TMVF, type TMVFLineStringStyle, type TMVFPointStyle, type TMVFPolygonStyle, type TMVFStyle, type TMVFStyleCollection, type TMapDataEvents, type TMapDataObjectTypes, type TMapFeatureTypes, type TMapViewObjectTypes, type TMarkerPlacement, type TMarkerState, type TMarkerUpdateState, type TModelState, type TModelUpdateState, type TMultiFloorViewOptions, type TNavigationMarker, type TNavigationMarkerType, type TNavigationOptions, type TNavigationPathOptions, type TNavigationTarget, type TOutsideThresholdPathStyle, type TPathSectionHighlightOptions, type TPathState, type TPathUpdateState, type TQueriables, type TQueryAtResult, type RendererState as TRendererState, type TSearchOptions, type TSetFloorOptions, type TShapeState, type TShapeUpdateState, type TShow3DMapOptions, type TSpaceType, type TStateChangedInternalPayload, type TTakeScreenshotOptions, type TTetheredOptions as TTetherOptions, type TText3DState, type TText3DUpdateState, type TTrackCoordinateOptions, type TTravelledOptions, type TUpdateState, type TWallsState, type TWallsUpdateState, TWatermarkOptions, type Text3D, type Text3DView, type UpdateGlobalState, type VisibilityState, WALLS, type WithState, MAPPEDIN_LAYER_ID as __INTERNAL__MAPPEDIN_LAYER_ID, MapLibreOverlay as __INTERNAL__MapLibreOverlay, Core as __INTERNAL__RendererCore, convertToRendererCoreOptions as __INTERNAL__convertToRendererCoreOptions, __setWatermarkOnClickFn, checkWorkerUrls, disableText3DWorker, enableTestMode, findPreferredLanguageInVenue, forceEnterpriseLocations, getMapData, getMapDataEnterprise, getMultiFloorState, getVersion, hydrateMapData, hydrateMapDataFromMVF, parseLogLevel, parseMVFv2 as parseMVF, preloadFont, setLoggerLevel, setUseEnterpriseAPI, setWorkersUrl, shouldForceEnterpriseLocations, show3dMap, show3dMapGeojson, unzipAndParseMVFv2, unzipMVFv2 as unzipMVF };