@itwin/core-frontend 5.11.0-dev.13 → 5.11.0-dev.15

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.
Files changed (105) hide show
  1. package/lib/cjs/AccuDraw.d.ts +2 -0
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +7 -0
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/CesiumAccessClient.d.ts +52 -0
  6. package/lib/cjs/CesiumAccessClient.d.ts.map +1 -0
  7. package/lib/cjs/CesiumAccessClient.js +10 -0
  8. package/lib/cjs/CesiumAccessClient.js.map +1 -0
  9. package/lib/cjs/DisplayStyleState.js +2 -2
  10. package/lib/cjs/DisplayStyleState.js.map +1 -1
  11. package/lib/cjs/IModelApp.d.ts.map +1 -1
  12. package/lib/cjs/IModelApp.js +2 -0
  13. package/lib/cjs/IModelApp.js.map +1 -1
  14. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -1
  15. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  16. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +23 -5
  17. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  18. package/lib/cjs/core-frontend.d.ts +2 -0
  19. package/lib/cjs/core-frontend.d.ts.map +1 -1
  20. package/lib/cjs/core-frontend.js +2 -0
  21. package/lib/cjs/core-frontend.js.map +1 -1
  22. package/lib/cjs/tile/TileAdmin.d.ts +23 -1
  23. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  24. package/lib/cjs/tile/TileAdmin.js +17 -1
  25. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  26. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +16 -1
  27. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  28. package/lib/cjs/tile/map/CesiumTerrainProvider.js +57 -17
  29. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  30. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  31. package/lib/cjs/tile/map/MapTileTree.js +1 -0
  32. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  33. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +6 -0
  34. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  35. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  36. package/lib/cjs/tools/AccuDrawShortcutTool.d.ts +29 -0
  37. package/lib/cjs/tools/AccuDrawShortcutTool.d.ts.map +1 -0
  38. package/lib/cjs/tools/AccuDrawShortcutTool.js +139 -0
  39. package/lib/cjs/tools/AccuDrawShortcutTool.js.map +1 -0
  40. package/lib/cjs/tools/AccuDrawTool.d.ts +13 -68
  41. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  42. package/lib/cjs/tools/AccuDrawTool.js +103 -129
  43. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  44. package/lib/cjs/tools/SetupCameraTools.d.ts +89 -0
  45. package/lib/cjs/tools/SetupCameraTools.d.ts.map +1 -0
  46. package/lib/cjs/tools/SetupCameraTools.js +444 -0
  47. package/lib/cjs/tools/SetupCameraTools.js.map +1 -0
  48. package/lib/cjs/tools/ViewTool.d.ts +0 -81
  49. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  50. package/lib/cjs/tools/ViewTool.js +1 -417
  51. package/lib/cjs/tools/ViewTool.js.map +1 -1
  52. package/lib/esm/AccuDraw.d.ts +2 -0
  53. package/lib/esm/AccuDraw.d.ts.map +1 -1
  54. package/lib/esm/AccuDraw.js +7 -0
  55. package/lib/esm/AccuDraw.js.map +1 -1
  56. package/lib/esm/CesiumAccessClient.d.ts +52 -0
  57. package/lib/esm/CesiumAccessClient.d.ts.map +1 -0
  58. package/lib/esm/CesiumAccessClient.js +9 -0
  59. package/lib/esm/CesiumAccessClient.js.map +1 -0
  60. package/lib/esm/DisplayStyleState.js +2 -2
  61. package/lib/esm/DisplayStyleState.js.map +1 -1
  62. package/lib/esm/IModelApp.d.ts.map +1 -1
  63. package/lib/esm/IModelApp.js +2 -0
  64. package/lib/esm/IModelApp.js.map +1 -1
  65. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -1
  66. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  67. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +24 -6
  68. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  69. package/lib/esm/core-frontend.d.ts +2 -0
  70. package/lib/esm/core-frontend.d.ts.map +1 -1
  71. package/lib/esm/core-frontend.js +2 -0
  72. package/lib/esm/core-frontend.js.map +1 -1
  73. package/lib/esm/tile/TileAdmin.d.ts +23 -1
  74. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  75. package/lib/esm/tile/TileAdmin.js +17 -1
  76. package/lib/esm/tile/TileAdmin.js.map +1 -1
  77. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +16 -1
  78. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  79. package/lib/esm/tile/map/CesiumTerrainProvider.js +55 -17
  80. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  81. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  82. package/lib/esm/tile/map/MapTileTree.js +1 -0
  83. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  84. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +6 -0
  85. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  86. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  87. package/lib/esm/tools/AccuDrawShortcutTool.d.ts +29 -0
  88. package/lib/esm/tools/AccuDrawShortcutTool.d.ts.map +1 -0
  89. package/lib/esm/tools/AccuDrawShortcutTool.js +134 -0
  90. package/lib/esm/tools/AccuDrawShortcutTool.js.map +1 -0
  91. package/lib/esm/tools/AccuDrawTool.d.ts +13 -68
  92. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  93. package/lib/esm/tools/AccuDrawTool.js +102 -128
  94. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  95. package/lib/esm/tools/SetupCameraTools.d.ts +89 -0
  96. package/lib/esm/tools/SetupCameraTools.d.ts.map +1 -0
  97. package/lib/esm/tools/SetupCameraTools.js +439 -0
  98. package/lib/esm/tools/SetupCameraTools.js.map +1 -0
  99. package/lib/esm/tools/ViewTool.d.ts +0 -81
  100. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  101. package/lib/esm/tools/ViewTool.js +2 -416
  102. package/lib/esm/tools/ViewTool.js.map +1 -1
  103. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  104. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  105. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"IModelApp.js","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelApp\r\n */\r\n\r\n// @ts-expect-error package.json will resolve from the lib/{cjs,esm} dir without copying it into the build output we deliver\r\n// eslint-disable-next-line @itwin/import-within-package\r\nimport packageJson from \"../../package.json\";\r\n/** @public */\r\nexport const ITWINJS_CORE_VERSION = packageJson.version as string;\r\nconst COPYRIGHT_NOTICE = `Copyright © 2017-${new Date().getFullYear()} <a href=\"https://www.bentley.com\" target=\"_blank\" rel=\"noopener noreferrer\">Bentley Systems, Inc.</a>`;\r\n\r\nimport { UiAdmin } from \"@itwin/appui-abstract\";\r\nimport { AccessToken, BeDuration, BeEvent, BentleyStatus, DbResult, dispose, expectDefined, Guid, GuidString, IModelStatus, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { AuthorizationClient, Localization, RealityDataAccess, RpcConfiguration, RpcInterfaceDefinition, RpcRequest, SerializedRpcActivity } from \"@itwin/core-common\";\r\nimport { ITwinLocalization } from \"@itwin/core-i18n\";\r\nimport { FormatsProvider } from \"@itwin/core-quantity\";\r\nimport { queryRenderCompatibility, WebGLRenderCompatibilityInfo } from \"@itwin/webgl-compatibility\";\r\nimport { AccuDraw } from \"./AccuDraw\";\r\nimport { AccuSnap } from \"./AccuSnap\";\r\nimport * as auxCoordState from \"./AuxCoordSys\";\r\nimport * as categorySelectorState from \"./CategorySelectorState\";\r\nimport { ExtensionAdmin } from \"./extension/ExtensionAdmin\";\r\nimport * as displayStyleState from \"./DisplayStyleState\";\r\nimport * as drawingViewState from \"./DrawingViewState\";\r\nimport { ElementLocateManager } from \"./ElementLocateManager\";\r\nimport { ElementState, EntityState } from \"./EntityState\";\r\nimport { FrontendHubAccess } from \"./FrontendHubAccess\";\r\nimport { FrontendLoggerCategory } from \"./common/FrontendLoggerCategory\";\r\nimport * as modelselector from \"./ModelSelectorState\";\r\nimport * as modelState from \"./ModelState\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { FormatsProviderManager, QuantityFormatter, QuantityTypeFormatsProvider } from \"./quantity-formatting/QuantityFormatter\";\r\nimport { RenderSystem } from \"./render/RenderSystem\";\r\nimport { System } from \"./internal/render/webgl/System\";\r\nimport * as sheetState from \"./SheetViewState\";\r\nimport * as spatialViewState from \"./SpatialViewState\";\r\nimport { TentativePoint } from \"./TentativePoint\";\r\nimport { RealityDataSourceProviderRegistry } from \"./RealityDataSource\";\r\nimport { BingElevationProvider, MapLayerFormatRegistry, MapLayerOptions, TerrainProviderRegistry, TileAdmin } from \"./tile/internal\";\r\nimport { ElevationProvider, GeoidProvider, LocationProvider } from \"./GeoProviders\";\r\nimport { BingLocationProvider } from \"./BingLocation\";\r\nimport * as accudrawTool from \"./tools/AccuDrawTool\";\r\nimport * as clipViewTool from \"./tools/ClipViewTool\";\r\nimport * as idleTool from \"./tools/IdleTool\";\r\nimport * as measureTool from \"./tools/MeasureTool\";\r\nimport * as selectTool from \"./tools/SelectTool\";\r\nimport { ToolRegistry } from \"./tools/Tool\";\r\nimport { ToolAdmin } from \"./tools/ToolAdmin\";\r\nimport * as viewTool from \"./tools/ViewTool\";\r\nimport { UserPreferencesAccess } from \"./UserPreferences\";\r\nimport { ViewManager } from \"./ViewManager\";\r\nimport * as viewState from \"./ViewState\";\r\nimport \"./IModeljs-css\";\r\n\r\n// cSpell:ignore noopener noreferrer gprid forin nbsp csrf xsrf\r\n\r\n/** Options that can be supplied with [[IModelAppOptions]] to customize frontend security.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface FrontendSecurityOptions {\r\n /** Configures protection from Cross Site Request Forgery attacks. */\r\n readonly csrfProtection?: {\r\n /** If enabled, IModelApp will extract the CSRF token for the current session from the document's cookies and send it with each request as a header value. */\r\n readonly enabled: boolean;\r\n /** Defaults to XSRF-TOKEN. */\r\n readonly cookieName?: string;\r\n /** Defaults to X-XSRF-TOKEN. */\r\n readonly headerName?: string;\r\n };\r\n}\r\n\r\n/** Options that can be supplied to [[IModelApp.startup]] to customize frontend behavior.\r\n * @public\r\n */\r\nexport interface IModelAppOptions {\r\n /** If present, supplies the [[FrontendHubAccess]] for this session. */\r\n hubAccess?: FrontendHubAccess;\r\n /** If present, supplies the Id of this application. Applications must set this to the Bentley Global Product Registry Id (GPRID) for usage logging. */\r\n applicationId?: string;\r\n /** If present, supplies the version of this application. Must be set for usage logging. */\r\n applicationVersion?: string;\r\n /** If present, supplies the [[UserPreferencesAccess]] for this session.\r\n * @beta\r\n */\r\n userPreferences?: UserPreferencesAccess;\r\n /** If present, supplies the [[ViewManager]] for this session. */\r\n viewManager?: ViewManager;\r\n /** If present, supplies Map Layer Options for this session such as Azure Access Keys\r\n * @beta\r\n */\r\n mapLayerOptions?: MapLayerOptions;\r\n /** Geospatial service providers for elevation, geoid, and geocoding.\r\n * If not supplied, deprecated Bing-backed defaults are used for backward compatibility.\r\n * @note If you have not yet migrated to custom providers, continue supplying the deprecated\r\n * [[MapLayerOptions.BingMaps]] key as an interim measure. To fully remove the Bing dependency, supply custom implementations here.\r\n * @beta\r\n */\r\n geospatialProviders?: {\r\n /** Terrain height lookup. Defaults to [[BingElevationProvider]]. */\r\n elevationProvider?: ElevationProvider;\r\n /** Geodetic-to-sea-level offset. Defaults to [[BingElevationProvider]] (which implements both). */\r\n geoidProvider?: GeoidProvider;\r\n /** Geocoding (query string to location). Defaults to [[BingLocationProvider]]. */\r\n locationProvider?: LocationProvider;\r\n };\r\n /** If present, supplies the properties with which to initialize the [[TileAdmin]] for this session. */\r\n tileAdmin?: TileAdmin.Props;\r\n /** If present, supplies the [[NotificationManager]] for this session. */\r\n notifications?: NotificationManager;\r\n /** If present, supplies the [[ToolAdmin]] for this session. */\r\n toolAdmin?: ToolAdmin;\r\n /** If present, supplies the [[AccuDraw]] for this session. */\r\n accuDraw?: AccuDraw;\r\n /** If present, supplies the [[AccuSnap]] for this session. */\r\n accuSnap?: AccuSnap;\r\n /** If present, supplies the [[Localization]] for this session. Defaults to [ITwinLocalization]($i18n). */\r\n localization?: Localization;\r\n /** The AuthorizationClient used to obtain [AccessToken]($bentley)s. */\r\n authorizationClient?: AuthorizationClient;\r\n /** If present, supplies security options for the frontend. */\r\n security?: FrontendSecurityOptions;\r\n /** @internal */\r\n sessionId?: GuidString;\r\n /** @internal */\r\n locateManager?: ElementLocateManager;\r\n /** If present, supplies the [[TentativePoint]] for this session. */\r\n tentativePoint?: TentativePoint;\r\n /** @internal */\r\n quantityFormatter?: QuantityFormatter;\r\n /** If present, supplies an implementation of the render system, or options for initializing the default render system. */\r\n renderSys?: RenderSystem | RenderSystem.Options;\r\n /** If present, supplies the [[UiAdmin]] for this session. */\r\n uiAdmin?: UiAdmin;\r\n /** If present, supplies the [[FormatsProvider]] for this session. */\r\n formatsProvider?: FormatsProvider;\r\n /** If present, determines whether iModelApp is a NoRenderApp\r\n * @internal\r\n */\r\n noRender?: boolean;\r\n\r\n /**\r\n * @deprecated in 3.7 - might be removed in next major version. Specify desired RPC interfaces in the platform-specific RPC manager call instead.\r\n * See [[MobileRpcManager.initializeClient]], [[ElectronRpcManager.initializeFrontend]], [[BentleyCloudRpcManager.initializeClient]].\r\n */\r\n rpcInterfaces?: RpcInterfaceDefinition[];\r\n\r\n /** @beta */\r\n realityDataAccess?: RealityDataAccess;\r\n /** If present, overrides where public assets are fetched. The default is to fetch assets relative to the current URL.\r\n * The path should always end with a trailing `/`.\r\n */\r\n publicPath?: string;\r\n /**\r\n * Configuration controlling whether incremental schema loading is enabled or disabled.\r\n * @beta\r\n */\r\n incrementalSchemaLoading?: \"enabled\" | \"disabled\";\r\n}\r\n\r\n/** Options for [[IModelApp.makeModalDiv]]\r\n * @public\r\n */\r\nexport interface ModalOptions {\r\n /** Width for the Modal dialog box. */\r\n width?: number;\r\n /** The dialog should be dismissed if the user clicks anywhere or hits Enter or Escape on the keyboard. */\r\n autoClose?: boolean;\r\n /** Show an 'x' in the upper right corner to close the dialog */\r\n closeBox?: boolean;\r\n /** The parent for the semi transparent *darkening* div. If not present, use `document.body` */\r\n rootDiv?: HTMLElement;\r\n}\r\n\r\n/** Return type for [[IModelApp.makeModalDiv]]\r\n * @public\r\n */\r\nexport interface ModalReturn {\r\n /** The modal HTMLDivElement created. */\r\n modal: HTMLDivElement;\r\n /** A function that can be set as an event handler to stop the modal dialog. This can be used if [[ModalOptions.autoClose]] or [[IModalOptions.closeBox]]\r\n * were not enabled for the dialog.\r\n */\r\n stop: (_ev: Event) => void;\r\n}\r\n\r\n/** We hang the IModelApp object off the global `window` object in IModelApp.startup for debugging purposes.\r\n * It's removed in IModelApp.shutdown.\r\n */\r\ninterface IModelAppForDebugger {\r\n iModelAppForDebugger?: typeof IModelApp;\r\n}\r\n\r\n/**\r\n * Global singleton that connects the user interface with the iTwin.js services. There can be only one IModelApp active in a session. All\r\n * members of IModelApp are static, and it serves as a singleton object for gaining access to session information.\r\n *\r\n * Before any interactive operations may be performed by the `@itwin/core-frontend package`, [[IModelApp.startup]] must be called and awaited.\r\n * Applications may customize the frontend behavior of iTwin.js by supplying options to [[IModelApp.startup]].\r\n *\r\n * @public\r\n */\r\nexport class IModelApp {\r\n private static _initialized = false;\r\n private static _accuDraw: AccuDraw;\r\n private static _accuSnap: AccuSnap;\r\n private static _applicationId: string;\r\n private static _applicationVersion: string;\r\n private static _localization: Localization;\r\n private static _locateManager: ElementLocateManager;\r\n private static _notifications: NotificationManager;\r\n private static _quantityFormatter: QuantityFormatter;\r\n private static _renderSystem?: RenderSystem;\r\n private static _userPreferences?: UserPreferencesAccess;\r\n private static _tentativePoint: TentativePoint;\r\n private static _tileAdmin: TileAdmin;\r\n private static _toolAdmin: ToolAdmin;\r\n private static _viewManager: ViewManager;\r\n private static _uiAdmin: UiAdmin;\r\n private static _noRender: boolean;\r\n private static _wantEventLoop = false;\r\n private static _animationRequested = false;\r\n private static _animationInterval: BeDuration | undefined = BeDuration.fromSeconds(1);\r\n private static _animationIntervalId?: number;\r\n private static _securityOptions: FrontendSecurityOptions;\r\n private static _mapLayerFormatRegistry: MapLayerFormatRegistry;\r\n private static _terrainProviderRegistry: TerrainProviderRegistry;\r\n private static _elevationProvider: ElevationProvider | undefined;\r\n private static _geoidProvider: GeoidProvider | undefined;\r\n private static _locationProvider: LocationProvider | undefined;\r\n private static _realityDataSourceProviders: RealityDataSourceProviderRegistry;\r\n private static _hubAccess?: FrontendHubAccess;\r\n private static _realityDataAccess?: RealityDataAccess;\r\n private static _publicPath: string;\r\n private static _formatsProviderManager: FormatsProviderManager;\r\n private static _incrementalSchemaLoading?: \"enabled\" | \"disabled\";\r\n\r\n // No instances of IModelApp may be created. All members are static and must be on the singleton object IModelApp.\r\n protected constructor() { }\r\n\r\n /** Event raised just before the frontend IModelApp is to be [[shutdown]]. */\r\n public static readonly onBeforeShutdown = new BeEvent<() => void>();\r\n\r\n /** Event raised after IModelApp [[startup]] completes. */\r\n public static readonly onAfterStartup = new BeEvent<() => void>();\r\n\r\n /** The AuthorizationClient used to obtain [AccessToken]($bentley)s. */\r\n public static authorizationClient?: AuthorizationClient;\r\n /** The [[ToolRegistry]] for this session. */\r\n public static readonly tools = new ToolRegistry();\r\n /** A uniqueId for this session */\r\n public static sessionId: GuidString;\r\n /** The [[MapLayerFormatRegistry]] for this session. */\r\n public static get mapLayerFormatRegistry(): MapLayerFormatRegistry { return this._mapLayerFormatRegistry; }\r\n /** The [[TerrainProviderRegistry]] for this session. */\r\n public static get terrainProviderRegistry(): TerrainProviderRegistry { return this._terrainProviderRegistry; }\r\n /** The [[ElevationProvider]] for this session.\r\n * @beta\r\n */\r\n public static get elevationProvider(): ElevationProvider { return expectDefined(this._elevationProvider); }\r\n public static set elevationProvider(provider: ElevationProvider) { this._elevationProvider = provider; }\r\n /** The [[GeoidProvider]] for this session.\r\n * @beta\r\n */\r\n public static get geoidProvider(): GeoidProvider { return expectDefined(this._geoidProvider); }\r\n public static set geoidProvider(provider: GeoidProvider) { this._geoidProvider = provider; }\r\n /** The [[LocationProvider]] for this session.\r\n * @beta\r\n */\r\n public static get locationProvider(): LocationProvider { return expectDefined(this._locationProvider); }\r\n public static set locationProvider(provider: LocationProvider) { this._locationProvider = provider; }\r\n /** The [[RealityDataSourceProviderRegistry]] for this session.\r\n * @beta\r\n */\r\n public static get realityDataSourceProviders(): RealityDataSourceProviderRegistry { return this._realityDataSourceProviders; }\r\n /** The [[RenderSystem]] for this session. */\r\n public static get renderSystem(): RenderSystem { return expectDefined(this._renderSystem); }\r\n /** The [[ViewManager]] for this session. */\r\n public static get viewManager(): ViewManager { return this._viewManager; }\r\n /** The [[NotificationManager]] for this session. */\r\n public static get notifications(): NotificationManager { return this._notifications; }\r\n /** The [[TileAdmin]] for this session. */\r\n public static get tileAdmin(): TileAdmin { return this._tileAdmin; }\r\n /** The [[QuantityFormatter]] for this session. */\r\n public static get quantityFormatter(): QuantityFormatter { return this._quantityFormatter; }\r\n /** The [[ToolAdmin]] for this session. */\r\n public static get toolAdmin(): ToolAdmin { return this._toolAdmin; }\r\n /** The [[AccuDraw]] for this session. */\r\n public static get accuDraw(): AccuDraw { return this._accuDraw; }\r\n /** The [[AccuSnap]] for this session. */\r\n public static get accuSnap(): AccuSnap { return this._accuSnap; }\r\n public static get locateManager(): ElementLocateManager { return this._locateManager; }\r\n /** The [[TentativePoint]] for this session]]. */\r\n public static get tentativePoint(): TentativePoint { return this._tentativePoint; }\r\n /** The [[Localization]] for this session. */\r\n public static get localization(): Localization { return this._localization; }\r\n /** The [[UserPreferencesAccess]] for this session.\r\n * @beta\r\n */\r\n public static get userPreferences(): UserPreferencesAccess | undefined { return this._userPreferences; }\r\n /** The Id of this application. Applications must set this to the Global Product Registry ID (GPRID) for usage logging. */\r\n public static get applicationId(): string { return this._applicationId; }\r\n /** The version of this application. Must be set for usage logging. */\r\n public static get applicationVersion(): string { return this._applicationVersion; }\r\n /** True after [[startup]] has been called, until [[shutdown]] is called. */\r\n public static get initialized() { return this._initialized; }\r\n\r\n /** Provides access to IModelHub services. */\r\n public static get hubAccess(): FrontendHubAccess | undefined { return this._hubAccess; }\r\n\r\n /** Provides access to the RealityData service implementation for this IModelApp\r\n * @beta\r\n */\r\n public static get realityDataAccess(): RealityDataAccess | undefined { return this._realityDataAccess; }\r\n\r\n /**\r\n * Indicates whether incremental schema loading is enabled.\r\n * If not further specified, incremental schema loading is currently disabled by default.\r\n * @beta\r\n */\r\n public static get isIncrementalSchemaLoadingEnabled(): boolean { return this._incrementalSchemaLoading === \"enabled\"; };\r\n\r\n /** Whether the [renderSystem[]] has been successfully initialized.\r\n * This will always be `false` before calling [[startup]] and after calling [[shutdown]].\r\n * In rare circumstances (e.g., while executing in a headless test environment) it may remain `false` due to a failure to\r\n * obtain a [WebGL rendering context](https://www.google.com/search?channel=fs&client=ubuntu-sn&q=mdn+webglrenderingcontext).\r\n * As long as you have called [[startup]], you can generally assume it to be `true`.\r\n */\r\n public static get hasRenderSystem() {\r\n return this._renderSystem !== undefined && this._renderSystem.isValid;\r\n }\r\n\r\n /** The [[UiAdmin]] for this session. */\r\n public static get uiAdmin() { return this._uiAdmin; }\r\n /** The requested security options for the frontend. */\r\n public static get securityOptions() { return this._securityOptions; }\r\n\r\n /** If present, overrides where public assets are fetched. The default is to fetch assets relative to the current URL.\r\n * The path should always end with a trailing `/`.\r\n */\r\n public static get publicPath() { return this._publicPath; }\r\n\r\n /** The [[FormatsProvider]] for this session.\r\n * @param provider The provider to use for formatting quantities.\r\n * @beta\r\n */\r\n public static get formatsProvider(): FormatsProvider { return this._formatsProviderManager; }\r\n public static set formatsProvider(provider: FormatsProvider) {\r\n this._formatsProviderManager.formatsProvider = provider;\r\n }\r\n\r\n /** @alpha */\r\n public static readonly extensionAdmin = this._createExtensionAdmin();\r\n\r\n /** Map of classFullName to EntityState class */\r\n private static _entityClasses = new Map<string, typeof EntityState>();\r\n\r\n /** Register all of the subclasses of EntityState from a module.\r\n * @internal\r\n */\r\n public static registerModuleEntities(moduleObj: any) {\r\n for (const thisMember in moduleObj) { // eslint-disable-line guard-for-in\r\n const thisEntityState = moduleObj[thisMember];\r\n if (thisEntityState.prototype instanceof EntityState) {\r\n this.registerEntityState(thisEntityState.classFullName, thisEntityState);\r\n }\r\n }\r\n }\r\n\r\n /** Register an EntityState class by its classFullName\r\n * @internal\r\n */\r\n public static registerEntityState(classFullName: string, classType: typeof EntityState) {\r\n const lowerName = classFullName.toLowerCase();\r\n if (this._entityClasses.has(lowerName)) {\r\n const errMsg = `Class ${classFullName} is already registered. Make sure static schemaName and className members are correct on class ${classType.name}`;\r\n Logger.logError(FrontendLoggerCategory.IModelConnection, errMsg);\r\n throw new Error(errMsg);\r\n }\r\n\r\n this._entityClasses.set(lowerName, classType);\r\n }\r\n\r\n /** @internal */\r\n public static lookupEntityClass(classFullName: string) { return this._entityClasses.get(classFullName.toLowerCase()); }\r\n\r\n /**\r\n * Obtain WebGL rendering compatibility information for the client system. This information describes whether the client meets the\r\n * minimum rendering capabilities. It also describes whether the system lacks any optional capabilities that could improve quality\r\n * and/or performance.\r\n * @note As of 4.x, iTwin.js requires WebGL 2. If the client does not support WebGL 2, the `status` field of the returned compatibility info will be [WebGLRenderCompatibilityStatus.CannotCreateContext]($webgl-compatibility).\r\n */\r\n public static queryRenderCompatibility(): WebGLRenderCompatibilityInfo {\r\n return queryRenderCompatibility(true, (canvas, useWebGL2, inputContextAttributes) => System.createContext(canvas, useWebGL2, inputContextAttributes));\r\n }\r\n\r\n /**\r\n * This method must be called before any other `@itwin/core-frontend` methods are used.\r\n * Somewhere in your startup code, call [[IModelApp.startup]]. E.g.:\r\n * ``` ts\r\n * await IModelApp.startup( {applicationId: myAppId} );\r\n * ```\r\n * @param opts The options for configuring IModelApp\r\n */\r\n public static async startup(opts?: IModelAppOptions): Promise<void> {\r\n if (this._initialized)\r\n return; // we're already initialized, do nothing.\r\n this._initialized = true;\r\n\r\n opts = opts ?? {};\r\n this._securityOptions = opts.security ?? {};\r\n\r\n if (process.env.NODE_ENV === \"development\") {\r\n // Make IModelApp globally accessible for debugging purposes. We'll remove it on shutdown.\r\n (window as IModelAppForDebugger).iModelAppForDebugger = this;\r\n }\r\n\r\n this.sessionId = opts.sessionId ?? Guid.createValue();\r\n this._applicationId = opts.applicationId ?? \"2686\"; // Default to product id of iTwin.js\r\n this._applicationVersion = opts.applicationVersion ?? \"1.0.0\";\r\n this.authorizationClient = opts.authorizationClient;\r\n this._hubAccess = opts.hubAccess;\r\n this._noRender = opts.noRender ?? false;\r\n\r\n this._setupRpcRequestContext();\r\n\r\n this._localization = opts.localization ?? new ITwinLocalization();\r\n const toolsNs = \"CoreTools\";\r\n await this.localization.initialize([\"iModelJs\", toolsNs]);\r\n [\r\n selectTool,\r\n idleTool,\r\n viewTool,\r\n clipViewTool,\r\n measureTool,\r\n accudrawTool,\r\n ].forEach((tool) => this.tools.registerModule(tool, toolsNs));\r\n\r\n this.registerEntityState(EntityState.classFullName, EntityState);\r\n this.registerEntityState(ElementState.classFullName, ElementState);\r\n [\r\n modelState,\r\n sheetState,\r\n viewState,\r\n drawingViewState,\r\n spatialViewState,\r\n displayStyleState,\r\n modelselector,\r\n categorySelectorState,\r\n auxCoordState,\r\n ].forEach((module) => this.registerModuleEntities(module));\r\n\r\n this._renderSystem = (opts.renderSys instanceof RenderSystem) ? opts.renderSys : this.createRenderSys(opts.renderSys);\r\n if (opts.userPreferences)\r\n this._userPreferences = opts.userPreferences;\r\n this._viewManager = opts.viewManager ?? new ViewManager();\r\n this._tileAdmin = await TileAdmin.create(opts.tileAdmin);\r\n this._notifications = opts.notifications ?? new NotificationManager();\r\n this._toolAdmin = opts.toolAdmin ?? new ToolAdmin();\r\n this._accuDraw = opts.accuDraw ?? new AccuDraw();\r\n this._accuSnap = opts.accuSnap ?? new AccuSnap();\r\n this._locateManager = opts.locateManager ?? new ElementLocateManager();\r\n this._tentativePoint = opts.tentativePoint ?? new TentativePoint();\r\n this._quantityFormatter = opts.quantityFormatter ?? new QuantityFormatter();\r\n this._uiAdmin = opts.uiAdmin ?? new UiAdmin();\r\n this._mapLayerFormatRegistry = new MapLayerFormatRegistry(opts.mapLayerOptions);\r\n this._terrainProviderRegistry = new TerrainProviderRegistry();\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- intentional: Bing is the backward-compat default until it is removed in a future major version\r\n let defaultBingElevation: BingElevationProvider | undefined;\r\n const geo = opts.geospatialProviders;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const lazyBing = () => defaultBingElevation ??= new BingElevationProvider();\r\n this._elevationProvider = geo?.elevationProvider ?? lazyBing();\r\n this._geoidProvider = geo?.geoidProvider ?? lazyBing();\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n this._locationProvider = geo?.locationProvider ?? new BingLocationProvider();\r\n this._realityDataSourceProviders = new RealityDataSourceProviderRegistry();\r\n this._realityDataAccess = opts.realityDataAccess;\r\n this._formatsProviderManager = new FormatsProviderManager(opts.formatsProvider ?? new QuantityTypeFormatsProvider());\r\n this._incrementalSchemaLoading = opts.incrementalSchemaLoading ?? \"disabled\";\r\n\r\n this._publicPath = opts.publicPath ?? \"\";\r\n if (this._publicPath !== \"\" && !this._publicPath.endsWith(\"/\")) {\r\n this._publicPath += \"/\";\r\n }\r\n\r\n [\r\n this.renderSystem,\r\n this.viewManager,\r\n this.toolAdmin,\r\n this.accuDraw,\r\n this.accuSnap,\r\n this.locateManager,\r\n this.tentativePoint,\r\n this.uiAdmin,\r\n ].forEach((sys) => sys.onInitialized());\r\n\r\n await this.quantityFormatter.onInitialized();\r\n this.onAfterStartup.raiseEvent();\r\n }\r\n\r\n /** Must be called before the application exits to release any held resources. */\r\n public static async shutdown() {\r\n if (!this._initialized)\r\n return;\r\n\r\n // notify listeners that this IModelApp is about to be shut down.\r\n this.onBeforeShutdown.raiseEvent();\r\n this.onBeforeShutdown.clear();\r\n\r\n if (process.env.NODE_ENV === \"development\") {\r\n (window as IModelAppForDebugger).iModelAppForDebugger = undefined;\r\n }\r\n\r\n this._wantEventLoop = false;\r\n window.removeEventListener(\"resize\", () => IModelApp.requestNextAnimation());\r\n this.clearIntervalAnimation();\r\n [this.toolAdmin, this.viewManager, this.tileAdmin].forEach((sys) => sys.onShutDown());\r\n this.tools.shutdown();\r\n this._renderSystem = dispose(this._renderSystem);\r\n this._elevationProvider = undefined;\r\n this._geoidProvider = undefined;\r\n this._locationProvider = undefined;\r\n this._entityClasses.clear();\r\n this.authorizationClient = undefined;\r\n this._initialized = false;\r\n this.quantityFormatter[Symbol.dispose]();\r\n this.resetFormatsProvider();\r\n this.onAfterStartup.clear();\r\n }\r\n\r\n /** Controls how frequently the application polls for changes that may require a new animation frame to be requested.\r\n * Such changes include resizing a Viewport or changing the device pixel ratio by zooming in or out in the browser.\r\n * The default interval is 1 second. It may be desirable to override the default for specific apps and/or devices.\r\n * - Increasing the interval can conserve battery life on battery-powered devices at the expense of slower response to resize events.\r\n * - An application that only displays a single Viewport whose dimensions only change when the dimensions of the application window change, and which does not support changing application zoom level, could disable the interval altogether.\r\n * @param interval The interval at which to poll for changes. If undefined (or negative), the application will never poll. If zero, the application will poll as frequently as possible.\r\n * @beta\r\n */\r\n public static get animationInterval(): BeDuration | undefined { return IModelApp._animationInterval; }\r\n public static set animationInterval(interval: BeDuration | undefined) {\r\n if (undefined !== interval && interval.isTowardsPast)\r\n interval = undefined;\r\n\r\n if (interval !== IModelApp._animationInterval) {\r\n IModelApp._animationInterval = interval;\r\n if (IModelApp._wantEventLoop)\r\n IModelApp.requestIntervalAnimation();\r\n }\r\n }\r\n\r\n /** Request that the event loop execute on the next [animation frame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame).\r\n * There is generally no reason for applications to invoke this method directly.\r\n */\r\n public static requestNextAnimation() {\r\n // Only want to call requestAnimationFrame if it is defined. Need to check whether current iModelApp is a NoRenderApp.\r\n if (IModelApp._noRender)\r\n return;\r\n\r\n if (!IModelApp._animationRequested) {\r\n IModelApp._animationRequested = true;\r\n requestAnimationFrame(() => IModelApp.eventLoop());\r\n }\r\n }\r\n\r\n /** @internal */\r\n private static clearIntervalAnimation(): void {\r\n if (undefined !== IModelApp._animationIntervalId) {\r\n window.clearInterval(IModelApp._animationIntervalId);\r\n IModelApp._animationIntervalId = undefined;\r\n }\r\n }\r\n\r\n /** @internal */\r\n private static requestIntervalAnimation(): void {\r\n IModelApp.clearIntervalAnimation();\r\n\r\n if (undefined !== IModelApp.animationInterval)\r\n IModelApp._animationIntervalId = window.setInterval(() => {\r\n IModelApp.requestNextAnimation();\r\n }, IModelApp.animationInterval.milliseconds);\r\n }\r\n\r\n /** Return true if the main event processing loop has been started.\r\n * @internal\r\n */\r\n public static get isEventLoopStarted() { return IModelApp._wantEventLoop; }\r\n\r\n /** @internal */\r\n public static startEventLoop() {\r\n if (!IModelApp._wantEventLoop) {\r\n IModelApp._wantEventLoop = true;\r\n window.addEventListener(\"resize\", () => IModelApp.requestNextAnimation());\r\n IModelApp.requestIntervalAnimation();\r\n IModelApp.requestNextAnimation();\r\n }\r\n }\r\n\r\n /** Strictly for tests. @internal */\r\n public static stopEventLoop() {\r\n this._wantEventLoop = false;\r\n }\r\n\r\n /** The main event processing loop for Tools and rendering. */\r\n private static eventLoop() {\r\n IModelApp._animationRequested = false;\r\n if (!IModelApp._wantEventLoop) // flag turned on at startup\r\n return;\r\n\r\n try {\r\n IModelApp.toolAdmin.processEvent(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n IModelApp.viewManager.renderLoop();\r\n IModelApp.tileAdmin.process();\r\n } catch (exception) {\r\n ToolAdmin.exceptionHandler(exception); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n\r\n IModelApp._wantEventLoop = false;\r\n IModelApp._animationRequested = true; // unrecoverable after exception, don't request any further frames.\r\n window.removeEventListener(\"resize\", () => IModelApp.requestNextAnimation());\r\n }\r\n }\r\n\r\n /** Get the user's access token for this IModelApp, or a blank string if none is available.\r\n * @note Access tokens expire periodically and are automatically refreshed, if possible. Therefore tokens should not be saved, and the value\r\n * returned by this method may change over time throughout the course of a session.\r\n */\r\n public static async getAccessToken(): Promise<AccessToken> {\r\n try {\r\n return (await this.authorizationClient?.getAccessToken()) ?? \"\";\r\n } catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static createRenderSys(opts?: RenderSystem.Options): RenderSystem { return System.create(opts); }\r\n\r\n private static _setupRpcRequestContext() {\r\n RpcConfiguration.requestContext.getId = (_request: RpcRequest): string => {\r\n return Guid.createValue();\r\n };\r\n\r\n RpcConfiguration.requestContext.serialize = async (_request: RpcRequest): Promise<SerializedRpcActivity> => {\r\n const id = _request.id;\r\n const serialized: SerializedRpcActivity = {\r\n id,\r\n applicationId: this.applicationId,\r\n applicationVersion: this.applicationVersion,\r\n sessionId: this.sessionId,\r\n authorization: ProcessDetector.isMobileAppFrontend ? \"\" : await this.getAccessToken(),\r\n };\r\n\r\n const csrf = IModelApp.securityOptions.csrfProtection;\r\n if (csrf && csrf.enabled) {\r\n const cookieName = csrf.cookieName || \"XSRF-TOKEN\";\r\n const cookieValue = document.cookie.split(\"; \").find((r) => r.startsWith(`${cookieName}=`));\r\n\r\n if (cookieValue) {\r\n const headerName = csrf.headerName || \"X-XSRF-TOKEN\";\r\n const headerValue = cookieValue.split(\"=\")[1];\r\n serialized.csrfToken = { headerName, headerValue };\r\n }\r\n }\r\n\r\n return serialized;\r\n };\r\n }\r\n\r\n /** Shortcut for creating an HTMLElement with optional parent, className, id, innerHTML, innerText. */\r\n public static makeHTMLElement<K extends keyof HTMLElementTagNameMap>(type: K, opt?: {\r\n /** The parent for the new HTMLElement */\r\n parent?: HTMLElement;\r\n /** The className for the new HTMLElement */\r\n className?: string;\r\n /** The Id for the new HTMLElement */\r\n id?: string;\r\n /** innerHTML for the new HTMLElement */\r\n innerHTML?: string;\r\n /** innerText for the new HTMLElement */\r\n innerText?: string;\r\n }) {\r\n const el = document.createElement(type);\r\n if (undefined !== opt) {\r\n if (undefined !== opt.className)\r\n el.className = opt.className;\r\n if (undefined !== opt.id)\r\n el.id = opt.id;\r\n if (undefined !== opt.innerHTML)\r\n el.innerHTML = opt.innerHTML;\r\n if (undefined !== opt.innerText)\r\n el.innerText = opt.innerText;\r\n if (undefined !== opt.parent)\r\n opt.parent.appendChild(el);\r\n }\r\n return el;\r\n }\r\n\r\n /** Shortcut for making a modal dialog on top of the root of the application. The returned HTMLDivElement will be placed topmost, all other application\r\n * windows will be covered with a semi-transparent background that intercepts all key/mouse/touch events until the modal is dismissed.\r\n * @param options The options that describe how the modal should work.\r\n */\r\n public static makeModalDiv(options: ModalOptions): ModalReturn {\r\n const root = options.rootDiv ? options.rootDiv : document.body;\r\n // create the overlay div to \"black out\" the application to indicate everything is inactive until the modal has been dismissed.\r\n const overlay = IModelApp.makeHTMLElement(\"div\", { parent: root, className: \"imodeljs-modal-overlay\" });\r\n overlay.tabIndex = -1; // so we can catch keystroke events\r\n\r\n // function to remove modal dialog\r\n const stop = (ev: Event) => {\r\n root.removeChild(overlay);\r\n ev.stopPropagation();\r\n };\r\n\r\n if (options.autoClose) {\r\n overlay.onclick = overlay.oncontextmenu = stop;\r\n overlay.onkeydown = overlay.onkeyup = (ev: KeyboardEvent) => { // ignore all keystrokes other than enter and escape\r\n switch (ev.key) {\r\n case \"Enter\":\r\n case \"Escape\":\r\n stop(ev);\r\n return;\r\n }\r\n ev.stopPropagation();\r\n };\r\n overlay.focus();\r\n }\r\n\r\n const modal = IModelApp.makeHTMLElement(\"div\", { parent: overlay, className: \"imodeljs-modal\" });\r\n if (undefined !== options.width) {\r\n modal.style.width = `${options.width}px`;\r\n // allow the dialog to be smaller than the width\r\n modal.style.maxWidth = `min(100% - (2 * var(--width-border)), ${options.width}px)`;\r\n }\r\n if (options.closeBox) {\r\n const close = IModelApp.makeHTMLElement(\"p\", { parent: modal, className: \"imodeljs-modal-close\" });\r\n close.innerText = \"\\u00d7\"; // unicode \"times\" symbol\r\n close.onclick = stop;\r\n }\r\n\r\n return { modal, stop };\r\n }\r\n\r\n /** Applications may implement this method to supply a Logo Card.\r\n * @beta\r\n */\r\n public static applicationLogoCard?: () => HTMLTableRowElement;\r\n\r\n /** Applications may implement this method to supply a Logo Card footer which will always be placed last.\r\n * @beta\r\n */\r\n public static applicationLogoCardFooter?: () => HTMLElement;\r\n\r\n /** Make a new Logo Card. Call this method from your implementation of [[IModelApp.applicationLogoCard]]\r\n * @param opts Options for Logo Card\r\n * @beta\r\n */\r\n public static makeLogoCard(\r\n opts: {\r\n /** The heading to be put at the top of this logo card inside an <h2>. May include HTML. */\r\n heading: string | HTMLElement;\r\n /** The URL or HTMLImageElement for the icon on this logo card. */\r\n iconSrc?: string | HTMLImageElement;\r\n /** The width of the icon, if `iconSrc` is a string. Default is 64. */\r\n iconWidth?: number;\r\n /** A *notice* string to be shown on the logo card. May include HTML. */\r\n notice?: string | HTMLElement;\r\n }): HTMLTableRowElement {\r\n const card = IModelApp.makeHTMLElement(\"tr\");\r\n const iconCell = IModelApp.makeHTMLElement(\"td\", { parent: card, className: \"logo-card-logo\" });\r\n if (undefined !== opts.iconSrc) {\r\n if (typeof opts.iconSrc === \"string\") {\r\n const logo = IModelApp.makeHTMLElement(\"img\");\r\n logo.src = opts.iconSrc;\r\n logo.width = opts.iconWidth ? opts.iconWidth : 64;\r\n opts.iconSrc = logo;\r\n }\r\n iconCell.appendChild(opts.iconSrc);\r\n }\r\n const noticeCell = IModelApp.makeHTMLElement(\"td\", { parent: card, className: \"logo-card-message\" });\r\n if (undefined !== opts.heading) {\r\n if (typeof opts.heading === \"string\")\r\n IModelApp.makeHTMLElement(\"h2\", { parent: noticeCell, innerHTML: opts.heading, className: \"logo-card-header\" });\r\n else\r\n noticeCell.appendChild(opts.heading);\r\n }\r\n if (undefined !== opts.notice) {\r\n if (typeof opts.notice === \"string\")\r\n IModelApp.makeHTMLElement(\"p\", { parent: noticeCell, innerHTML: opts.notice, className: \"logo-cards\" });\r\n else\r\n noticeCell.appendChild(opts.notice);\r\n }\r\n return card;\r\n }\r\n\r\n /** Make the logo card for the library itself. This card gets placed at the top of the stack.\r\n * @internal\r\n */\r\n public static makeIModelJsLogoCard() {\r\n return this.makeLogoCard({\r\n iconSrc: `${this.publicPath}images/about-imodeljs.svg`,\r\n heading: `<span class=\"itwinjs-header-lead\">${this.localization.getLocalizedString(\"iModelJs:Notices.PoweredBy\")}</span>&nbsp;iTwin.js`,\r\n notice: `${ITWINJS_CORE_VERSION}<br>${COPYRIGHT_NOTICE}`,\r\n });\r\n }\r\n\r\n /** Format the tooltip strings returned by [[IModelConnection.getToolTipMessage]].\r\n * @alpha\r\n */\r\n public static formatElementToolTip(msg: string[]): HTMLElement {\r\n let out = \"\";\r\n msg.forEach((line) => out += `${IModelApp.localization?.getLocalizedKeys(line)}<br>`);\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = out;\r\n return div;\r\n }\r\n\r\n /** Localize an error status\r\n * @param status one of the status values from [BentleyStatus]($core-bentley), [IModelStatus]($core-bentley) or [DbResult]($core-bentley)\r\n * @returns a localized error message\r\n * @beta\r\n */\r\n public static translateStatus(status: number) {\r\n let key: { scope: string, val: string, status?: string };\r\n if (typeof status !== \"number\") {\r\n key = { scope: \"Errors\", val: \"IllegalValue\" };\r\n } else {\r\n key = { scope: \"BentleyStatus\", val: BentleyStatus[status] };\r\n if (!key.val)\r\n key = { scope: \"IModelStatus\", val: IModelStatus[status] };\r\n if (!key.val)\r\n key = { scope: \"DbResult\", val: DbResult[status] };\r\n if (!key.val)\r\n key = { scope: \"Errors\", val: \"Status\", status: status.toString() };\r\n }\r\n\r\n return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key);\r\n }\r\n\r\n /**\r\n * Resets the formatsProvider back to the default [[QuantityTypeFormatsProvider]].\r\n * @beta\r\n */\r\n public static resetFormatsProvider() {\r\n this.formatsProvider = new QuantityTypeFormatsProvider();\r\n }\r\n\r\n /**\r\n * Creates an instance of the ExtensionAdmin\r\n * and registers an event to execute after startup is complete\r\n * @returns an instance of ExtensionAdmin\r\n */\r\n private static _createExtensionAdmin(): ExtensionAdmin {\r\n const extensionAdmin = new ExtensionAdmin();\r\n IModelApp.onAfterStartup.addListener(extensionAdmin.onStartup);\r\n return extensionAdmin;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelApp.js","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelApp\r\n */\r\n\r\n// @ts-expect-error package.json will resolve from the lib/{cjs,esm} dir without copying it into the build output we deliver\r\n// eslint-disable-next-line @itwin/import-within-package\r\nimport packageJson from \"../../package.json\";\r\n/** @public */\r\nexport const ITWINJS_CORE_VERSION = packageJson.version as string;\r\nconst COPYRIGHT_NOTICE = `Copyright © 2017-${new Date().getFullYear()} <a href=\"https://www.bentley.com\" target=\"_blank\" rel=\"noopener noreferrer\">Bentley Systems, Inc.</a>`;\r\n\r\nimport { UiAdmin } from \"@itwin/appui-abstract\";\r\nimport { AccessToken, BeDuration, BeEvent, BentleyStatus, DbResult, dispose, expectDefined, Guid, GuidString, IModelStatus, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { AuthorizationClient, Localization, RealityDataAccess, RpcConfiguration, RpcInterfaceDefinition, RpcRequest, SerializedRpcActivity } from \"@itwin/core-common\";\r\nimport { ITwinLocalization } from \"@itwin/core-i18n\";\r\nimport { FormatsProvider } from \"@itwin/core-quantity\";\r\nimport { queryRenderCompatibility, WebGLRenderCompatibilityInfo } from \"@itwin/webgl-compatibility\";\r\nimport { AccuDraw } from \"./AccuDraw\";\r\nimport { AccuSnap } from \"./AccuSnap\";\r\nimport * as auxCoordState from \"./AuxCoordSys\";\r\nimport * as categorySelectorState from \"./CategorySelectorState\";\r\nimport { ExtensionAdmin } from \"./extension/ExtensionAdmin\";\r\nimport * as displayStyleState from \"./DisplayStyleState\";\r\nimport * as drawingViewState from \"./DrawingViewState\";\r\nimport { ElementLocateManager } from \"./ElementLocateManager\";\r\nimport { ElementState, EntityState } from \"./EntityState\";\r\nimport { FrontendHubAccess } from \"./FrontendHubAccess\";\r\nimport { FrontendLoggerCategory } from \"./common/FrontendLoggerCategory\";\r\nimport * as modelselector from \"./ModelSelectorState\";\r\nimport * as modelState from \"./ModelState\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { FormatsProviderManager, QuantityFormatter, QuantityTypeFormatsProvider } from \"./quantity-formatting/QuantityFormatter\";\r\nimport { RenderSystem } from \"./render/RenderSystem\";\r\nimport { System } from \"./internal/render/webgl/System\";\r\nimport * as sheetState from \"./SheetViewState\";\r\nimport * as spatialViewState from \"./SpatialViewState\";\r\nimport { TentativePoint } from \"./TentativePoint\";\r\nimport { RealityDataSourceProviderRegistry } from \"./RealityDataSource\";\r\nimport { BingElevationProvider, MapLayerFormatRegistry, MapLayerOptions, TerrainProviderRegistry, TileAdmin } from \"./tile/internal\";\r\nimport { ElevationProvider, GeoidProvider, LocationProvider } from \"./GeoProviders\";\r\nimport { BingLocationProvider } from \"./BingLocation\";\r\nimport * as accudrawTool from \"./tools/AccuDrawTool\";\r\nimport * as clipViewTool from \"./tools/ClipViewTool\";\r\nimport * as idleTool from \"./tools/IdleTool\";\r\nimport * as measureTool from \"./tools/MeasureTool\";\r\nimport * as selectTool from \"./tools/SelectTool\";\r\nimport { ToolRegistry } from \"./tools/Tool\";\r\nimport { ToolAdmin } from \"./tools/ToolAdmin\";\r\nimport * as viewTool from \"./tools/ViewTool\";\r\nimport * as setupCameraTool from \"./tools/SetupCameraTools\";\r\nimport { UserPreferencesAccess } from \"./UserPreferences\";\r\nimport { ViewManager } from \"./ViewManager\";\r\nimport * as viewState from \"./ViewState\";\r\nimport \"./IModeljs-css\";\r\n\r\n// cSpell:ignore noopener noreferrer gprid forin nbsp csrf xsrf\r\n\r\n/** Options that can be supplied with [[IModelAppOptions]] to customize frontend security.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface FrontendSecurityOptions {\r\n /** Configures protection from Cross Site Request Forgery attacks. */\r\n readonly csrfProtection?: {\r\n /** If enabled, IModelApp will extract the CSRF token for the current session from the document's cookies and send it with each request as a header value. */\r\n readonly enabled: boolean;\r\n /** Defaults to XSRF-TOKEN. */\r\n readonly cookieName?: string;\r\n /** Defaults to X-XSRF-TOKEN. */\r\n readonly headerName?: string;\r\n };\r\n}\r\n\r\n/** Options that can be supplied to [[IModelApp.startup]] to customize frontend behavior.\r\n * @public\r\n */\r\nexport interface IModelAppOptions {\r\n /** If present, supplies the [[FrontendHubAccess]] for this session. */\r\n hubAccess?: FrontendHubAccess;\r\n /** If present, supplies the Id of this application. Applications must set this to the Bentley Global Product Registry Id (GPRID) for usage logging. */\r\n applicationId?: string;\r\n /** If present, supplies the version of this application. Must be set for usage logging. */\r\n applicationVersion?: string;\r\n /** If present, supplies the [[UserPreferencesAccess]] for this session.\r\n * @beta\r\n */\r\n userPreferences?: UserPreferencesAccess;\r\n /** If present, supplies the [[ViewManager]] for this session. */\r\n viewManager?: ViewManager;\r\n /** If present, supplies Map Layer Options for this session such as Azure Access Keys\r\n * @beta\r\n */\r\n mapLayerOptions?: MapLayerOptions;\r\n /** Geospatial service providers for elevation, geoid, and geocoding.\r\n * If not supplied, deprecated Bing-backed defaults are used for backward compatibility.\r\n * @note If you have not yet migrated to custom providers, continue supplying the deprecated\r\n * [[MapLayerOptions.BingMaps]] key as an interim measure. To fully remove the Bing dependency, supply custom implementations here.\r\n * @beta\r\n */\r\n geospatialProviders?: {\r\n /** Terrain height lookup. Defaults to [[BingElevationProvider]]. */\r\n elevationProvider?: ElevationProvider;\r\n /** Geodetic-to-sea-level offset. Defaults to [[BingElevationProvider]] (which implements both). */\r\n geoidProvider?: GeoidProvider;\r\n /** Geocoding (query string to location). Defaults to [[BingLocationProvider]]. */\r\n locationProvider?: LocationProvider;\r\n };\r\n /** If present, supplies the properties with which to initialize the [[TileAdmin]] for this session. */\r\n tileAdmin?: TileAdmin.Props;\r\n /** If present, supplies the [[NotificationManager]] for this session. */\r\n notifications?: NotificationManager;\r\n /** If present, supplies the [[ToolAdmin]] for this session. */\r\n toolAdmin?: ToolAdmin;\r\n /** If present, supplies the [[AccuDraw]] for this session. */\r\n accuDraw?: AccuDraw;\r\n /** If present, supplies the [[AccuSnap]] for this session. */\r\n accuSnap?: AccuSnap;\r\n /** If present, supplies the [[Localization]] for this session. Defaults to [ITwinLocalization]($i18n). */\r\n localization?: Localization;\r\n /** The AuthorizationClient used to obtain [AccessToken]($bentley)s. */\r\n authorizationClient?: AuthorizationClient;\r\n /** If present, supplies security options for the frontend. */\r\n security?: FrontendSecurityOptions;\r\n /** @internal */\r\n sessionId?: GuidString;\r\n /** @internal */\r\n locateManager?: ElementLocateManager;\r\n /** If present, supplies the [[TentativePoint]] for this session. */\r\n tentativePoint?: TentativePoint;\r\n /** @internal */\r\n quantityFormatter?: QuantityFormatter;\r\n /** If present, supplies an implementation of the render system, or options for initializing the default render system. */\r\n renderSys?: RenderSystem | RenderSystem.Options;\r\n /** If present, supplies the [[UiAdmin]] for this session. */\r\n uiAdmin?: UiAdmin;\r\n /** If present, supplies the [[FormatsProvider]] for this session. */\r\n formatsProvider?: FormatsProvider;\r\n /** If present, determines whether iModelApp is a NoRenderApp\r\n * @internal\r\n */\r\n noRender?: boolean;\r\n\r\n /**\r\n * @deprecated in 3.7 - might be removed in next major version. Specify desired RPC interfaces in the platform-specific RPC manager call instead.\r\n * See [[MobileRpcManager.initializeClient]], [[ElectronRpcManager.initializeFrontend]], [[BentleyCloudRpcManager.initializeClient]].\r\n */\r\n rpcInterfaces?: RpcInterfaceDefinition[];\r\n\r\n /** @beta */\r\n realityDataAccess?: RealityDataAccess;\r\n /** If present, overrides where public assets are fetched. The default is to fetch assets relative to the current URL.\r\n * The path should always end with a trailing `/`.\r\n */\r\n publicPath?: string;\r\n /**\r\n * Configuration controlling whether incremental schema loading is enabled or disabled.\r\n * @beta\r\n */\r\n incrementalSchemaLoading?: \"enabled\" | \"disabled\";\r\n}\r\n\r\n/** Options for [[IModelApp.makeModalDiv]]\r\n * @public\r\n */\r\nexport interface ModalOptions {\r\n /** Width for the Modal dialog box. */\r\n width?: number;\r\n /** The dialog should be dismissed if the user clicks anywhere or hits Enter or Escape on the keyboard. */\r\n autoClose?: boolean;\r\n /** Show an 'x' in the upper right corner to close the dialog */\r\n closeBox?: boolean;\r\n /** The parent for the semi transparent *darkening* div. If not present, use `document.body` */\r\n rootDiv?: HTMLElement;\r\n}\r\n\r\n/** Return type for [[IModelApp.makeModalDiv]]\r\n * @public\r\n */\r\nexport interface ModalReturn {\r\n /** The modal HTMLDivElement created. */\r\n modal: HTMLDivElement;\r\n /** A function that can be set as an event handler to stop the modal dialog. This can be used if [[ModalOptions.autoClose]] or [[IModalOptions.closeBox]]\r\n * were not enabled for the dialog.\r\n */\r\n stop: (_ev: Event) => void;\r\n}\r\n\r\n/** We hang the IModelApp object off the global `window` object in IModelApp.startup for debugging purposes.\r\n * It's removed in IModelApp.shutdown.\r\n */\r\ninterface IModelAppForDebugger {\r\n iModelAppForDebugger?: typeof IModelApp;\r\n}\r\n\r\n/**\r\n * Global singleton that connects the user interface with the iTwin.js services. There can be only one IModelApp active in a session. All\r\n * members of IModelApp are static, and it serves as a singleton object for gaining access to session information.\r\n *\r\n * Before any interactive operations may be performed by the `@itwin/core-frontend package`, [[IModelApp.startup]] must be called and awaited.\r\n * Applications may customize the frontend behavior of iTwin.js by supplying options to [[IModelApp.startup]].\r\n *\r\n * @public\r\n */\r\nexport class IModelApp {\r\n private static _initialized = false;\r\n private static _accuDraw: AccuDraw;\r\n private static _accuSnap: AccuSnap;\r\n private static _applicationId: string;\r\n private static _applicationVersion: string;\r\n private static _localization: Localization;\r\n private static _locateManager: ElementLocateManager;\r\n private static _notifications: NotificationManager;\r\n private static _quantityFormatter: QuantityFormatter;\r\n private static _renderSystem?: RenderSystem;\r\n private static _userPreferences?: UserPreferencesAccess;\r\n private static _tentativePoint: TentativePoint;\r\n private static _tileAdmin: TileAdmin;\r\n private static _toolAdmin: ToolAdmin;\r\n private static _viewManager: ViewManager;\r\n private static _uiAdmin: UiAdmin;\r\n private static _noRender: boolean;\r\n private static _wantEventLoop = false;\r\n private static _animationRequested = false;\r\n private static _animationInterval: BeDuration | undefined = BeDuration.fromSeconds(1);\r\n private static _animationIntervalId?: number;\r\n private static _securityOptions: FrontendSecurityOptions;\r\n private static _mapLayerFormatRegistry: MapLayerFormatRegistry;\r\n private static _terrainProviderRegistry: TerrainProviderRegistry;\r\n private static _elevationProvider: ElevationProvider | undefined;\r\n private static _geoidProvider: GeoidProvider | undefined;\r\n private static _locationProvider: LocationProvider | undefined;\r\n private static _realityDataSourceProviders: RealityDataSourceProviderRegistry;\r\n private static _hubAccess?: FrontendHubAccess;\r\n private static _realityDataAccess?: RealityDataAccess;\r\n private static _publicPath: string;\r\n private static _formatsProviderManager: FormatsProviderManager;\r\n private static _incrementalSchemaLoading?: \"enabled\" | \"disabled\";\r\n\r\n // No instances of IModelApp may be created. All members are static and must be on the singleton object IModelApp.\r\n protected constructor() { }\r\n\r\n /** Event raised just before the frontend IModelApp is to be [[shutdown]]. */\r\n public static readonly onBeforeShutdown = new BeEvent<() => void>();\r\n\r\n /** Event raised after IModelApp [[startup]] completes. */\r\n public static readonly onAfterStartup = new BeEvent<() => void>();\r\n\r\n /** The AuthorizationClient used to obtain [AccessToken]($bentley)s. */\r\n public static authorizationClient?: AuthorizationClient;\r\n /** The [[ToolRegistry]] for this session. */\r\n public static readonly tools = new ToolRegistry();\r\n /** A uniqueId for this session */\r\n public static sessionId: GuidString;\r\n /** The [[MapLayerFormatRegistry]] for this session. */\r\n public static get mapLayerFormatRegistry(): MapLayerFormatRegistry { return this._mapLayerFormatRegistry; }\r\n /** The [[TerrainProviderRegistry]] for this session. */\r\n public static get terrainProviderRegistry(): TerrainProviderRegistry { return this._terrainProviderRegistry; }\r\n /** The [[ElevationProvider]] for this session.\r\n * @beta\r\n */\r\n public static get elevationProvider(): ElevationProvider { return expectDefined(this._elevationProvider); }\r\n public static set elevationProvider(provider: ElevationProvider) { this._elevationProvider = provider; }\r\n /** The [[GeoidProvider]] for this session.\r\n * @beta\r\n */\r\n public static get geoidProvider(): GeoidProvider { return expectDefined(this._geoidProvider); }\r\n public static set geoidProvider(provider: GeoidProvider) { this._geoidProvider = provider; }\r\n /** The [[LocationProvider]] for this session.\r\n * @beta\r\n */\r\n public static get locationProvider(): LocationProvider { return expectDefined(this._locationProvider); }\r\n public static set locationProvider(provider: LocationProvider) { this._locationProvider = provider; }\r\n /** The [[RealityDataSourceProviderRegistry]] for this session.\r\n * @beta\r\n */\r\n public static get realityDataSourceProviders(): RealityDataSourceProviderRegistry { return this._realityDataSourceProviders; }\r\n /** The [[RenderSystem]] for this session. */\r\n public static get renderSystem(): RenderSystem { return expectDefined(this._renderSystem); }\r\n /** The [[ViewManager]] for this session. */\r\n public static get viewManager(): ViewManager { return this._viewManager; }\r\n /** The [[NotificationManager]] for this session. */\r\n public static get notifications(): NotificationManager { return this._notifications; }\r\n /** The [[TileAdmin]] for this session. */\r\n public static get tileAdmin(): TileAdmin { return this._tileAdmin; }\r\n /** The [[QuantityFormatter]] for this session. */\r\n public static get quantityFormatter(): QuantityFormatter { return this._quantityFormatter; }\r\n /** The [[ToolAdmin]] for this session. */\r\n public static get toolAdmin(): ToolAdmin { return this._toolAdmin; }\r\n /** The [[AccuDraw]] for this session. */\r\n public static get accuDraw(): AccuDraw { return this._accuDraw; }\r\n /** The [[AccuSnap]] for this session. */\r\n public static get accuSnap(): AccuSnap { return this._accuSnap; }\r\n public static get locateManager(): ElementLocateManager { return this._locateManager; }\r\n /** The [[TentativePoint]] for this session]]. */\r\n public static get tentativePoint(): TentativePoint { return this._tentativePoint; }\r\n /** The [[Localization]] for this session. */\r\n public static get localization(): Localization { return this._localization; }\r\n /** The [[UserPreferencesAccess]] for this session.\r\n * @beta\r\n */\r\n public static get userPreferences(): UserPreferencesAccess | undefined { return this._userPreferences; }\r\n /** The Id of this application. Applications must set this to the Global Product Registry ID (GPRID) for usage logging. */\r\n public static get applicationId(): string { return this._applicationId; }\r\n /** The version of this application. Must be set for usage logging. */\r\n public static get applicationVersion(): string { return this._applicationVersion; }\r\n /** True after [[startup]] has been called, until [[shutdown]] is called. */\r\n public static get initialized() { return this._initialized; }\r\n\r\n /** Provides access to IModelHub services. */\r\n public static get hubAccess(): FrontendHubAccess | undefined { return this._hubAccess; }\r\n\r\n /** Provides access to the RealityData service implementation for this IModelApp\r\n * @beta\r\n */\r\n public static get realityDataAccess(): RealityDataAccess | undefined { return this._realityDataAccess; }\r\n\r\n /**\r\n * Indicates whether incremental schema loading is enabled.\r\n * If not further specified, incremental schema loading is currently disabled by default.\r\n * @beta\r\n */\r\n public static get isIncrementalSchemaLoadingEnabled(): boolean { return this._incrementalSchemaLoading === \"enabled\"; };\r\n\r\n /** Whether the [renderSystem[]] has been successfully initialized.\r\n * This will always be `false` before calling [[startup]] and after calling [[shutdown]].\r\n * In rare circumstances (e.g., while executing in a headless test environment) it may remain `false` due to a failure to\r\n * obtain a [WebGL rendering context](https://www.google.com/search?channel=fs&client=ubuntu-sn&q=mdn+webglrenderingcontext).\r\n * As long as you have called [[startup]], you can generally assume it to be `true`.\r\n */\r\n public static get hasRenderSystem() {\r\n return this._renderSystem !== undefined && this._renderSystem.isValid;\r\n }\r\n\r\n /** The [[UiAdmin]] for this session. */\r\n public static get uiAdmin() { return this._uiAdmin; }\r\n /** The requested security options for the frontend. */\r\n public static get securityOptions() { return this._securityOptions; }\r\n\r\n /** If present, overrides where public assets are fetched. The default is to fetch assets relative to the current URL.\r\n * The path should always end with a trailing `/`.\r\n */\r\n public static get publicPath() { return this._publicPath; }\r\n\r\n /** The [[FormatsProvider]] for this session.\r\n * @param provider The provider to use for formatting quantities.\r\n * @beta\r\n */\r\n public static get formatsProvider(): FormatsProvider { return this._formatsProviderManager; }\r\n public static set formatsProvider(provider: FormatsProvider) {\r\n this._formatsProviderManager.formatsProvider = provider;\r\n }\r\n\r\n /** @alpha */\r\n public static readonly extensionAdmin = this._createExtensionAdmin();\r\n\r\n /** Map of classFullName to EntityState class */\r\n private static _entityClasses = new Map<string, typeof EntityState>();\r\n\r\n /** Register all of the subclasses of EntityState from a module.\r\n * @internal\r\n */\r\n public static registerModuleEntities(moduleObj: any) {\r\n for (const thisMember in moduleObj) { // eslint-disable-line guard-for-in\r\n const thisEntityState = moduleObj[thisMember];\r\n if (thisEntityState.prototype instanceof EntityState) {\r\n this.registerEntityState(thisEntityState.classFullName, thisEntityState);\r\n }\r\n }\r\n }\r\n\r\n /** Register an EntityState class by its classFullName\r\n * @internal\r\n */\r\n public static registerEntityState(classFullName: string, classType: typeof EntityState) {\r\n const lowerName = classFullName.toLowerCase();\r\n if (this._entityClasses.has(lowerName)) {\r\n const errMsg = `Class ${classFullName} is already registered. Make sure static schemaName and className members are correct on class ${classType.name}`;\r\n Logger.logError(FrontendLoggerCategory.IModelConnection, errMsg);\r\n throw new Error(errMsg);\r\n }\r\n\r\n this._entityClasses.set(lowerName, classType);\r\n }\r\n\r\n /** @internal */\r\n public static lookupEntityClass(classFullName: string) { return this._entityClasses.get(classFullName.toLowerCase()); }\r\n\r\n /**\r\n * Obtain WebGL rendering compatibility information for the client system. This information describes whether the client meets the\r\n * minimum rendering capabilities. It also describes whether the system lacks any optional capabilities that could improve quality\r\n * and/or performance.\r\n * @note As of 4.x, iTwin.js requires WebGL 2. If the client does not support WebGL 2, the `status` field of the returned compatibility info will be [WebGLRenderCompatibilityStatus.CannotCreateContext]($webgl-compatibility).\r\n */\r\n public static queryRenderCompatibility(): WebGLRenderCompatibilityInfo {\r\n return queryRenderCompatibility(true, (canvas, useWebGL2, inputContextAttributes) => System.createContext(canvas, useWebGL2, inputContextAttributes));\r\n }\r\n\r\n /**\r\n * This method must be called before any other `@itwin/core-frontend` methods are used.\r\n * Somewhere in your startup code, call [[IModelApp.startup]]. E.g.:\r\n * ``` ts\r\n * await IModelApp.startup( {applicationId: myAppId} );\r\n * ```\r\n * @param opts The options for configuring IModelApp\r\n */\r\n public static async startup(opts?: IModelAppOptions): Promise<void> {\r\n if (this._initialized)\r\n return; // we're already initialized, do nothing.\r\n this._initialized = true;\r\n\r\n opts = opts ?? {};\r\n this._securityOptions = opts.security ?? {};\r\n\r\n if (process.env.NODE_ENV === \"development\") {\r\n // Make IModelApp globally accessible for debugging purposes. We'll remove it on shutdown.\r\n (window as IModelAppForDebugger).iModelAppForDebugger = this;\r\n }\r\n\r\n this.sessionId = opts.sessionId ?? Guid.createValue();\r\n this._applicationId = opts.applicationId ?? \"2686\"; // Default to product id of iTwin.js\r\n this._applicationVersion = opts.applicationVersion ?? \"1.0.0\";\r\n this.authorizationClient = opts.authorizationClient;\r\n this._hubAccess = opts.hubAccess;\r\n this._noRender = opts.noRender ?? false;\r\n\r\n this._setupRpcRequestContext();\r\n\r\n this._localization = opts.localization ?? new ITwinLocalization();\r\n const toolsNs = \"CoreTools\";\r\n await this.localization.initialize([\"iModelJs\", toolsNs]);\r\n [\r\n selectTool,\r\n idleTool,\r\n viewTool,\r\n setupCameraTool,\r\n clipViewTool,\r\n measureTool,\r\n accudrawTool,\r\n ].forEach((tool) => this.tools.registerModule(tool, toolsNs));\r\n\r\n this.registerEntityState(EntityState.classFullName, EntityState);\r\n this.registerEntityState(ElementState.classFullName, ElementState);\r\n [\r\n modelState,\r\n sheetState,\r\n viewState,\r\n drawingViewState,\r\n spatialViewState,\r\n displayStyleState,\r\n modelselector,\r\n categorySelectorState,\r\n auxCoordState,\r\n ].forEach((module) => this.registerModuleEntities(module));\r\n\r\n this._renderSystem = (opts.renderSys instanceof RenderSystem) ? opts.renderSys : this.createRenderSys(opts.renderSys);\r\n if (opts.userPreferences)\r\n this._userPreferences = opts.userPreferences;\r\n this._viewManager = opts.viewManager ?? new ViewManager();\r\n this._tileAdmin = await TileAdmin.create(opts.tileAdmin);\r\n this._notifications = opts.notifications ?? new NotificationManager();\r\n this._toolAdmin = opts.toolAdmin ?? new ToolAdmin();\r\n this._accuDraw = opts.accuDraw ?? new AccuDraw();\r\n this._accuSnap = opts.accuSnap ?? new AccuSnap();\r\n this._locateManager = opts.locateManager ?? new ElementLocateManager();\r\n this._tentativePoint = opts.tentativePoint ?? new TentativePoint();\r\n this._quantityFormatter = opts.quantityFormatter ?? new QuantityFormatter();\r\n this._uiAdmin = opts.uiAdmin ?? new UiAdmin();\r\n this._mapLayerFormatRegistry = new MapLayerFormatRegistry(opts.mapLayerOptions);\r\n this._terrainProviderRegistry = new TerrainProviderRegistry();\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- intentional: Bing is the backward-compat default until it is removed in a future major version\r\n let defaultBingElevation: BingElevationProvider | undefined;\r\n const geo = opts.geospatialProviders;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const lazyBing = () => defaultBingElevation ??= new BingElevationProvider();\r\n this._elevationProvider = geo?.elevationProvider ?? lazyBing();\r\n this._geoidProvider = geo?.geoidProvider ?? lazyBing();\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n this._locationProvider = geo?.locationProvider ?? new BingLocationProvider();\r\n this._realityDataSourceProviders = new RealityDataSourceProviderRegistry();\r\n this._realityDataAccess = opts.realityDataAccess;\r\n this._formatsProviderManager = new FormatsProviderManager(opts.formatsProvider ?? new QuantityTypeFormatsProvider());\r\n this._incrementalSchemaLoading = opts.incrementalSchemaLoading ?? \"disabled\";\r\n\r\n this._publicPath = opts.publicPath ?? \"\";\r\n if (this._publicPath !== \"\" && !this._publicPath.endsWith(\"/\")) {\r\n this._publicPath += \"/\";\r\n }\r\n\r\n [\r\n this.renderSystem,\r\n this.viewManager,\r\n this.toolAdmin,\r\n this.accuDraw,\r\n this.accuSnap,\r\n this.locateManager,\r\n this.tentativePoint,\r\n this.uiAdmin,\r\n ].forEach((sys) => sys.onInitialized());\r\n\r\n await this.quantityFormatter.onInitialized();\r\n this.onAfterStartup.raiseEvent();\r\n }\r\n\r\n /** Must be called before the application exits to release any held resources. */\r\n public static async shutdown() {\r\n if (!this._initialized)\r\n return;\r\n\r\n // notify listeners that this IModelApp is about to be shut down.\r\n this.onBeforeShutdown.raiseEvent();\r\n this.onBeforeShutdown.clear();\r\n\r\n if (process.env.NODE_ENV === \"development\") {\r\n (window as IModelAppForDebugger).iModelAppForDebugger = undefined;\r\n }\r\n\r\n this._wantEventLoop = false;\r\n window.removeEventListener(\"resize\", () => IModelApp.requestNextAnimation());\r\n this.clearIntervalAnimation();\r\n [this.toolAdmin, this.viewManager, this.tileAdmin].forEach((sys) => sys.onShutDown());\r\n this.tools.shutdown();\r\n this._renderSystem = dispose(this._renderSystem);\r\n this._elevationProvider = undefined;\r\n this._geoidProvider = undefined;\r\n this._locationProvider = undefined;\r\n this._entityClasses.clear();\r\n this.authorizationClient = undefined;\r\n this._initialized = false;\r\n this.quantityFormatter[Symbol.dispose]();\r\n this.resetFormatsProvider();\r\n this.onAfterStartup.clear();\r\n }\r\n\r\n /** Controls how frequently the application polls for changes that may require a new animation frame to be requested.\r\n * Such changes include resizing a Viewport or changing the device pixel ratio by zooming in or out in the browser.\r\n * The default interval is 1 second. It may be desirable to override the default for specific apps and/or devices.\r\n * - Increasing the interval can conserve battery life on battery-powered devices at the expense of slower response to resize events.\r\n * - An application that only displays a single Viewport whose dimensions only change when the dimensions of the application window change, and which does not support changing application zoom level, could disable the interval altogether.\r\n * @param interval The interval at which to poll for changes. If undefined (or negative), the application will never poll. If zero, the application will poll as frequently as possible.\r\n * @beta\r\n */\r\n public static get animationInterval(): BeDuration | undefined { return IModelApp._animationInterval; }\r\n public static set animationInterval(interval: BeDuration | undefined) {\r\n if (undefined !== interval && interval.isTowardsPast)\r\n interval = undefined;\r\n\r\n if (interval !== IModelApp._animationInterval) {\r\n IModelApp._animationInterval = interval;\r\n if (IModelApp._wantEventLoop)\r\n IModelApp.requestIntervalAnimation();\r\n }\r\n }\r\n\r\n /** Request that the event loop execute on the next [animation frame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame).\r\n * There is generally no reason for applications to invoke this method directly.\r\n */\r\n public static requestNextAnimation() {\r\n // Only want to call requestAnimationFrame if it is defined. Need to check whether current iModelApp is a NoRenderApp.\r\n if (IModelApp._noRender)\r\n return;\r\n\r\n if (!IModelApp._animationRequested) {\r\n IModelApp._animationRequested = true;\r\n requestAnimationFrame(() => IModelApp.eventLoop());\r\n }\r\n }\r\n\r\n /** @internal */\r\n private static clearIntervalAnimation(): void {\r\n if (undefined !== IModelApp._animationIntervalId) {\r\n window.clearInterval(IModelApp._animationIntervalId);\r\n IModelApp._animationIntervalId = undefined;\r\n }\r\n }\r\n\r\n /** @internal */\r\n private static requestIntervalAnimation(): void {\r\n IModelApp.clearIntervalAnimation();\r\n\r\n if (undefined !== IModelApp.animationInterval)\r\n IModelApp._animationIntervalId = window.setInterval(() => {\r\n IModelApp.requestNextAnimation();\r\n }, IModelApp.animationInterval.milliseconds);\r\n }\r\n\r\n /** Return true if the main event processing loop has been started.\r\n * @internal\r\n */\r\n public static get isEventLoopStarted() { return IModelApp._wantEventLoop; }\r\n\r\n /** @internal */\r\n public static startEventLoop() {\r\n if (!IModelApp._wantEventLoop) {\r\n IModelApp._wantEventLoop = true;\r\n window.addEventListener(\"resize\", () => IModelApp.requestNextAnimation());\r\n IModelApp.requestIntervalAnimation();\r\n IModelApp.requestNextAnimation();\r\n }\r\n }\r\n\r\n /** Strictly for tests. @internal */\r\n public static stopEventLoop() {\r\n this._wantEventLoop = false;\r\n }\r\n\r\n /** The main event processing loop for Tools and rendering. */\r\n private static eventLoop() {\r\n IModelApp._animationRequested = false;\r\n if (!IModelApp._wantEventLoop) // flag turned on at startup\r\n return;\r\n\r\n try {\r\n IModelApp.toolAdmin.processEvent(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n IModelApp.viewManager.renderLoop();\r\n IModelApp.tileAdmin.process();\r\n } catch (exception) {\r\n ToolAdmin.exceptionHandler(exception); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n\r\n IModelApp._wantEventLoop = false;\r\n IModelApp._animationRequested = true; // unrecoverable after exception, don't request any further frames.\r\n window.removeEventListener(\"resize\", () => IModelApp.requestNextAnimation());\r\n }\r\n }\r\n\r\n /** Get the user's access token for this IModelApp, or a blank string if none is available.\r\n * @note Access tokens expire periodically and are automatically refreshed, if possible. Therefore tokens should not be saved, and the value\r\n * returned by this method may change over time throughout the course of a session.\r\n */\r\n public static async getAccessToken(): Promise<AccessToken> {\r\n try {\r\n return (await this.authorizationClient?.getAccessToken()) ?? \"\";\r\n } catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static createRenderSys(opts?: RenderSystem.Options): RenderSystem { return System.create(opts); }\r\n\r\n private static _setupRpcRequestContext() {\r\n RpcConfiguration.requestContext.getId = (_request: RpcRequest): string => {\r\n return Guid.createValue();\r\n };\r\n\r\n RpcConfiguration.requestContext.serialize = async (_request: RpcRequest): Promise<SerializedRpcActivity> => {\r\n const id = _request.id;\r\n const serialized: SerializedRpcActivity = {\r\n id,\r\n applicationId: this.applicationId,\r\n applicationVersion: this.applicationVersion,\r\n sessionId: this.sessionId,\r\n authorization: ProcessDetector.isMobileAppFrontend ? \"\" : await this.getAccessToken(),\r\n };\r\n\r\n const csrf = IModelApp.securityOptions.csrfProtection;\r\n if (csrf && csrf.enabled) {\r\n const cookieName = csrf.cookieName || \"XSRF-TOKEN\";\r\n const cookieValue = document.cookie.split(\"; \").find((r) => r.startsWith(`${cookieName}=`));\r\n\r\n if (cookieValue) {\r\n const headerName = csrf.headerName || \"X-XSRF-TOKEN\";\r\n const headerValue = cookieValue.split(\"=\")[1];\r\n serialized.csrfToken = { headerName, headerValue };\r\n }\r\n }\r\n\r\n return serialized;\r\n };\r\n }\r\n\r\n /** Shortcut for creating an HTMLElement with optional parent, className, id, innerHTML, innerText. */\r\n public static makeHTMLElement<K extends keyof HTMLElementTagNameMap>(type: K, opt?: {\r\n /** The parent for the new HTMLElement */\r\n parent?: HTMLElement;\r\n /** The className for the new HTMLElement */\r\n className?: string;\r\n /** The Id for the new HTMLElement */\r\n id?: string;\r\n /** innerHTML for the new HTMLElement */\r\n innerHTML?: string;\r\n /** innerText for the new HTMLElement */\r\n innerText?: string;\r\n }) {\r\n const el = document.createElement(type);\r\n if (undefined !== opt) {\r\n if (undefined !== opt.className)\r\n el.className = opt.className;\r\n if (undefined !== opt.id)\r\n el.id = opt.id;\r\n if (undefined !== opt.innerHTML)\r\n el.innerHTML = opt.innerHTML;\r\n if (undefined !== opt.innerText)\r\n el.innerText = opt.innerText;\r\n if (undefined !== opt.parent)\r\n opt.parent.appendChild(el);\r\n }\r\n return el;\r\n }\r\n\r\n /** Shortcut for making a modal dialog on top of the root of the application. The returned HTMLDivElement will be placed topmost, all other application\r\n * windows will be covered with a semi-transparent background that intercepts all key/mouse/touch events until the modal is dismissed.\r\n * @param options The options that describe how the modal should work.\r\n */\r\n public static makeModalDiv(options: ModalOptions): ModalReturn {\r\n const root = options.rootDiv ? options.rootDiv : document.body;\r\n // create the overlay div to \"black out\" the application to indicate everything is inactive until the modal has been dismissed.\r\n const overlay = IModelApp.makeHTMLElement(\"div\", { parent: root, className: \"imodeljs-modal-overlay\" });\r\n overlay.tabIndex = -1; // so we can catch keystroke events\r\n\r\n // function to remove modal dialog\r\n const stop = (ev: Event) => {\r\n root.removeChild(overlay);\r\n ev.stopPropagation();\r\n };\r\n\r\n if (options.autoClose) {\r\n overlay.onclick = overlay.oncontextmenu = stop;\r\n overlay.onkeydown = overlay.onkeyup = (ev: KeyboardEvent) => { // ignore all keystrokes other than enter and escape\r\n switch (ev.key) {\r\n case \"Enter\":\r\n case \"Escape\":\r\n stop(ev);\r\n return;\r\n }\r\n ev.stopPropagation();\r\n };\r\n overlay.focus();\r\n }\r\n\r\n const modal = IModelApp.makeHTMLElement(\"div\", { parent: overlay, className: \"imodeljs-modal\" });\r\n if (undefined !== options.width) {\r\n modal.style.width = `${options.width}px`;\r\n // allow the dialog to be smaller than the width\r\n modal.style.maxWidth = `min(100% - (2 * var(--width-border)), ${options.width}px)`;\r\n }\r\n if (options.closeBox) {\r\n const close = IModelApp.makeHTMLElement(\"p\", { parent: modal, className: \"imodeljs-modal-close\" });\r\n close.innerText = \"\\u00d7\"; // unicode \"times\" symbol\r\n close.onclick = stop;\r\n }\r\n\r\n return { modal, stop };\r\n }\r\n\r\n /** Applications may implement this method to supply a Logo Card.\r\n * @beta\r\n */\r\n public static applicationLogoCard?: () => HTMLTableRowElement;\r\n\r\n /** Applications may implement this method to supply a Logo Card footer which will always be placed last.\r\n * @beta\r\n */\r\n public static applicationLogoCardFooter?: () => HTMLElement;\r\n\r\n /** Make a new Logo Card. Call this method from your implementation of [[IModelApp.applicationLogoCard]]\r\n * @param opts Options for Logo Card\r\n * @beta\r\n */\r\n public static makeLogoCard(\r\n opts: {\r\n /** The heading to be put at the top of this logo card inside an <h2>. May include HTML. */\r\n heading: string | HTMLElement;\r\n /** The URL or HTMLImageElement for the icon on this logo card. */\r\n iconSrc?: string | HTMLImageElement;\r\n /** The width of the icon, if `iconSrc` is a string. Default is 64. */\r\n iconWidth?: number;\r\n /** A *notice* string to be shown on the logo card. May include HTML. */\r\n notice?: string | HTMLElement;\r\n }): HTMLTableRowElement {\r\n const card = IModelApp.makeHTMLElement(\"tr\");\r\n const iconCell = IModelApp.makeHTMLElement(\"td\", { parent: card, className: \"logo-card-logo\" });\r\n if (undefined !== opts.iconSrc) {\r\n if (typeof opts.iconSrc === \"string\") {\r\n const logo = IModelApp.makeHTMLElement(\"img\");\r\n logo.src = opts.iconSrc;\r\n logo.width = opts.iconWidth ? opts.iconWidth : 64;\r\n opts.iconSrc = logo;\r\n }\r\n iconCell.appendChild(opts.iconSrc);\r\n }\r\n const noticeCell = IModelApp.makeHTMLElement(\"td\", { parent: card, className: \"logo-card-message\" });\r\n if (undefined !== opts.heading) {\r\n if (typeof opts.heading === \"string\")\r\n IModelApp.makeHTMLElement(\"h2\", { parent: noticeCell, innerHTML: opts.heading, className: \"logo-card-header\" });\r\n else\r\n noticeCell.appendChild(opts.heading);\r\n }\r\n if (undefined !== opts.notice) {\r\n if (typeof opts.notice === \"string\")\r\n IModelApp.makeHTMLElement(\"p\", { parent: noticeCell, innerHTML: opts.notice, className: \"logo-cards\" });\r\n else\r\n noticeCell.appendChild(opts.notice);\r\n }\r\n return card;\r\n }\r\n\r\n /** Make the logo card for the library itself. This card gets placed at the top of the stack.\r\n * @internal\r\n */\r\n public static makeIModelJsLogoCard() {\r\n return this.makeLogoCard({\r\n iconSrc: `${this.publicPath}images/about-imodeljs.svg`,\r\n heading: `<span class=\"itwinjs-header-lead\">${this.localization.getLocalizedString(\"iModelJs:Notices.PoweredBy\")}</span>&nbsp;iTwin.js`,\r\n notice: `${ITWINJS_CORE_VERSION}<br>${COPYRIGHT_NOTICE}`,\r\n });\r\n }\r\n\r\n /** Format the tooltip strings returned by [[IModelConnection.getToolTipMessage]].\r\n * @alpha\r\n */\r\n public static formatElementToolTip(msg: string[]): HTMLElement {\r\n let out = \"\";\r\n msg.forEach((line) => out += `${IModelApp.localization?.getLocalizedKeys(line)}<br>`);\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = out;\r\n return div;\r\n }\r\n\r\n /** Localize an error status\r\n * @param status one of the status values from [BentleyStatus]($core-bentley), [IModelStatus]($core-bentley) or [DbResult]($core-bentley)\r\n * @returns a localized error message\r\n * @beta\r\n */\r\n public static translateStatus(status: number) {\r\n let key: { scope: string, val: string, status?: string };\r\n if (typeof status !== \"number\") {\r\n key = { scope: \"Errors\", val: \"IllegalValue\" };\r\n } else {\r\n key = { scope: \"BentleyStatus\", val: BentleyStatus[status] };\r\n if (!key.val)\r\n key = { scope: \"IModelStatus\", val: IModelStatus[status] };\r\n if (!key.val)\r\n key = { scope: \"DbResult\", val: DbResult[status] };\r\n if (!key.val)\r\n key = { scope: \"Errors\", val: \"Status\", status: status.toString() };\r\n }\r\n\r\n return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key);\r\n }\r\n\r\n /**\r\n * Resets the formatsProvider back to the default [[QuantityTypeFormatsProvider]].\r\n * @beta\r\n */\r\n public static resetFormatsProvider() {\r\n this.formatsProvider = new QuantityTypeFormatsProvider();\r\n }\r\n\r\n /**\r\n * Creates an instance of the ExtensionAdmin\r\n * and registers an event to execute after startup is complete\r\n * @returns an instance of ExtensionAdmin\r\n */\r\n private static _createExtensionAdmin(): ExtensionAdmin {\r\n const extensionAdmin = new ExtensionAdmin();\r\n IModelApp.onAfterStartup.addListener(extensionAdmin.onStartup);\r\n return extensionAdmin;\r\n }\r\n}\r\n"]}
@@ -2,7 +2,7 @@ import { GuidString } from "@itwin/core-bentley";
2
2
  import { RealityData, RealityDataSourceKey, RealityDataSourceProps } from "@itwin/core-common";
3
3
  import { PublisherProductInfo, RealityDataSource, SpatialLocationAndExtents } from "./RealityDataSource";
4
4
  /** This class provides access to the reality data provider services.
5
- * It encapsulates access to a reality data weiter it be from local access, http or ProjectWise Context Share.
5
+ * It encapsulates access to a reality data whether it be from local access, http or ProjectWise Context Share.
6
6
  * The key provided at the creation determines if this is ProjectWise Context Share reference.
7
7
  * If not then it is considered local (ex: C:\temp\TileRoot.json) or plain http access (http://someserver.com/data/TileRoot.json)
8
8
  * There is a one to one relationship between a reality data and the instances of present class.
@@ -1 +1 @@
1
- {"version":3,"file":"RealityDataSourceCesiumIonAssetImpl.d.ts","sourceRoot":"","sources":["../../src/RealityDataSourceCesiumIonAssetImpl.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAe,WAAW,EAAuB,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjI,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEzG;;;;;;EAME;AACF,qBAAa,mCAAoC,YAAW,iBAAiB;IAC3E,SAAgB,GAAG,EAAE,oBAAoB,CAAC;IAC1C,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAqB;IACxC,sIAAsI;IACtI,OAAO,CAAC,QAAQ,CAAc;IAC9B,6DAA6D;IAC7D,OAAO,CAAC,qBAAqB,CAAC,CAAS;IAEvC;;OAEG;IACH,SAAS,aAAa,KAAK,EAAE,sBAAsB;IAKnD;;OAEG;WACiB,aAAa,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAY3I,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED;;MAEE;IACF,IAAW,WAAW,IAAI,WAAW,GAAG,SAAS,CAEhD;IACD,IAAW,aAAa,IAAI,MAAM,GAAG,SAAS,CAE7C;IACD;;OAEG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IAOD,OAAO,CAAC,UAAU;IASlB;;;OAGG;IACU,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe5E,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAsB3E;;OAEG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/D;;OAEG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAO7C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1D;;;;OAIG;IACU,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAK3F;;;;;OAKG;IACU,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;CAIlF"}
1
+ {"version":3,"file":"RealityDataSourceCesiumIonAssetImpl.d.ts","sourceRoot":"","sources":["../../src/RealityDataSourceCesiumIonAssetImpl.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAe,WAAW,EAAuB,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjI,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEzG;;;;;;EAME;AACF,qBAAa,mCAAoC,YAAW,iBAAiB;IAC3E,SAAgB,GAAG,EAAE,oBAAoB,CAAC;IAC1C,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAqB;IACxC,sIAAsI;IACtI,OAAO,CAAC,QAAQ,CAAc;IAC9B,6DAA6D;IAC7D,OAAO,CAAC,qBAAqB,CAAC,CAAS;IAEvC;;OAEG;IACH,SAAS,aAAa,KAAK,EAAE,sBAAsB;IAKnD;;OAEG;WACiB,aAAa,CAAC,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAY3I,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED;;MAEE;IACF,IAAW,WAAW,IAAI,WAAW,GAAG,SAAS,CAEhD;IACD,IAAW,aAAa,IAAI,MAAM,GAAG,SAAS,CAE7C;IACD;;OAEG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IAOD,OAAO,CAAC,UAAU;IASlB;;;OAGG;IACU,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe5E,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAuC3E;;OAEG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/D;;OAEG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAO7C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1D;;;;OAIG;IACU,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAK3F;;;;;OAKG;IACU,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;CAIlF"}
@@ -13,7 +13,7 @@ const core_bentley_1 = require("@itwin/core-bentley");
13
13
  const core_common_1 = require("@itwin/core-common");
14
14
  const internal_1 = require("./tile/internal");
15
15
  /** This class provides access to the reality data provider services.
16
- * It encapsulates access to a reality data weiter it be from local access, http or ProjectWise Context Share.
16
+ * It encapsulates access to a reality data whether it be from local access, http or ProjectWise Context Share.
17
17
  * The key provided at the creation determines if this is ProjectWise Context Share reference.
18
18
  * If not then it is considered local (ex: C:\temp\TileRoot.json) or plain http access (http://someserver.com/data/TileRoot.json)
19
19
  * There is a one to one relationship between a reality data and the instances of present class.
@@ -104,10 +104,28 @@ class RealityDataSourceCesiumIonAssetImpl {
104
104
  // The following is only if the reality data is not stored on PW Context Share.
105
105
  const cesiumAsset = internal_1.CesiumIonAssetProvider.parseCesiumUrl(url);
106
106
  if (cesiumAsset) {
107
- const tokenAndUrl = await (0, internal_1.getCesiumAccessTokenAndEndpointUrl)(`${cesiumAsset.id}`, cesiumAsset.key);
108
- if (tokenAndUrl.url && tokenAndUrl.token) {
109
- url = tokenAndUrl.url;
110
- this._requestAuthorization = `Bearer ${tokenAndUrl.token}`;
107
+ let resolvedToken;
108
+ let resolvedUrl;
109
+ if (cesiumAsset.key) {
110
+ // Legacy key-bearing URL (e.g. persisted saved view) - authenticate directly with the embedded Ion key.
111
+ // Such URLs are intentionally exempt from the cesiumAccess-over-cesiumIonKey precedence rule and are not
112
+ // routed through a registered CesiumAccessClient; see [[CesiumAccessClient]].
113
+ const tokenAndUrl = await (0, internal_1.getCesiumAccessTokenAndEndpointUrl)(`${cesiumAsset.id}`, cesiumAsset.key);
114
+ resolvedToken = tokenAndUrl.token;
115
+ resolvedUrl = tokenAndUrl.url;
116
+ }
117
+ else {
118
+ // delegate to the registered CesiumAccessClient
119
+ const client = (0, internal_1.getCesiumAccessClient)();
120
+ const endpoint = await client.getAssetEndpoint(`${cesiumAsset.id}`, iTwinId);
121
+ if (endpoint) {
122
+ resolvedToken = endpoint.accessToken;
123
+ resolvedUrl = endpoint.url;
124
+ }
125
+ }
126
+ if (resolvedUrl && resolvedToken) {
127
+ url = resolvedUrl;
128
+ this._requestAuthorization = `Bearer ${resolvedToken}`;
111
129
  }
112
130
  }
113
131
  // The following is only if the reality data is not stored on PW Context Share.
@@ -1 +1 @@
1
- {"version":3,"file":"RealityDataSourceCesiumIonAssetImpl.js","sourceRoot":"","sources":["../../src/RealityDataSourceCesiumIonAssetImpl.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { request } from \"./request/Request\";\r\nimport { assert, BentleyStatus, GuidString } from \"@itwin/core-bentley\";\r\nimport { IModelError, RealityData, RealityDataProvider, RealityDataSourceKey, RealityDataSourceProps } from \"@itwin/core-common\";\r\nimport { CesiumIonAssetProvider, getCesiumAccessTokenAndEndpointUrl, getCesiumAssetUrl, getCesiumOSMBuildingsUrl } from \"./tile/internal\";\r\nimport { PublisherProductInfo, RealityDataSource, SpatialLocationAndExtents } from \"./RealityDataSource\";\r\n\r\n/** This class provides access to the reality data provider services.\r\n * It encapsulates access to a reality data weiter it be from local access, http or ProjectWise Context Share.\r\n * The key provided at the creation determines if this is ProjectWise Context Share reference.\r\n * If not then it is considered local (ex: C:\\temp\\TileRoot.json) or plain http access (http://someserver.com/data/TileRoot.json)\r\n * There is a one to one relationship between a reality data and the instances of present class.\r\n* @internal\r\n*/\r\nexport class RealityDataSourceCesiumIonAssetImpl implements RealityDataSource {\r\n public readonly key: RealityDataSourceKey;\r\n /** The URL that supplies the 3d tiles for displaying the reality model. */\r\n private _tilesetUrl: string | undefined;\r\n /** For use by all Reality Data. For RD stored on PW Context Share, represents the portion from the root of the Azure Blob Container*/\r\n private _baseUrl: string = \"\";\r\n /** Request authorization for non PW ContextShare requests.*/\r\n private _requestAuthorization?: string;\r\n\r\n /** Construct a new reality data source.\r\n * @param props JSON representation of the reality data source\r\n */\r\n protected constructor(props: RealityDataSourceProps) {\r\n assert(props.sourceKey.provider === RealityDataProvider.CesiumIonAsset);\r\n this.key = props.sourceKey;\r\n }\r\n\r\n /**\r\n * Create an instance of this class from a source key and iTwin context/\r\n */\r\n public static async createFromKey(sourceKey: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined> {\r\n if (sourceKey.provider !== RealityDataProvider.CesiumIonAsset)\r\n return undefined;\r\n const rdSource = new RealityDataSourceCesiumIonAssetImpl({ sourceKey });\r\n let tilesetUrl: string | undefined;\r\n try {\r\n tilesetUrl = await rdSource.getServiceUrl(iTwinId);\r\n } catch { }\r\n\r\n return (tilesetUrl !== undefined) ? rdSource : undefined;\r\n }\r\n\r\n public get isContextShare(): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * Returns Reality Data if available\r\n */\r\n public get realityData(): RealityData | undefined {\r\n return undefined;\r\n }\r\n public get realityDataId(): string | undefined {\r\n return undefined;\r\n }\r\n /**\r\n * Returns Reality Data type if available\r\n */\r\n public get realityDataType(): string | undefined {\r\n return undefined;\r\n }\r\n\r\n // This is to set the root url from the provided root document path.\r\n // If the root document is stored on PW Context Share then the root document property of the Reality Data is provided,\r\n // otherwise the full path to root document is given.\r\n // The base URL contains the base URL from which tile relative path are constructed.\r\n // The tile's path root will need to be reinserted for child tiles to return a 200\r\n private setBaseUrl(url: string): void {\r\n const urlParts = url.split(\"/\");\r\n urlParts.pop();\r\n if (urlParts.length === 0)\r\n this._baseUrl = \"\";\r\n else\r\n this._baseUrl = `${urlParts.join(\"/\")}/`;\r\n }\r\n\r\n /**\r\n * This method returns the URL to access the actual 3d tiles from the service provider.\r\n * @returns string containing the URL to reality data.\r\n */\r\n public async getServiceUrl(_iTwinId: GuidString | undefined): Promise<string | undefined> {\r\n // If url was not resolved - resolve it\r\n this._tilesetUrl = this.key.id;\r\n if (this.key.id === CesiumIonAssetProvider.osmBuildingId) {\r\n this._tilesetUrl = getCesiumOSMBuildingsUrl();\r\n } else {\r\n const parsedId = CesiumIonAssetProvider.parseCesiumUrl(this.key.id);\r\n if (parsedId) {\r\n this._tilesetUrl = getCesiumAssetUrl(parsedId.id, parsedId.key);\r\n }\r\n }\r\n\r\n return this._tilesetUrl;\r\n }\r\n\r\n public async getRootDocument(iTwinId: GuidString | undefined): Promise<any> {\r\n let url = await this.getServiceUrl(iTwinId);\r\n if (!url)\r\n throw new IModelError(BentleyStatus.ERROR, \"Unable to get service url\");\r\n\r\n // The following is only if the reality data is not stored on PW Context Share.\r\n const cesiumAsset = CesiumIonAssetProvider.parseCesiumUrl(url);\r\n if (cesiumAsset) {\r\n const tokenAndUrl = await getCesiumAccessTokenAndEndpointUrl(`${cesiumAsset.id}`, cesiumAsset.key);\r\n if (tokenAndUrl.url && tokenAndUrl.token) {\r\n url = tokenAndUrl.url;\r\n this._requestAuthorization = `Bearer ${tokenAndUrl.token}`;\r\n }\r\n }\r\n\r\n // The following is only if the reality data is not stored on PW Context Share.\r\n this.setBaseUrl(url);\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(url, \"json\", { headers });\r\n }\r\n\r\n /**\r\n * Returns the tile content. The path to the tile is relative to the base url of present reality data whatever the type.\r\n */\r\n public async getTileContent(name: string): Promise<ArrayBuffer> {\r\n const tileUrl = this._baseUrl + name;\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(tileUrl, \"arraybuffer\", { headers });\r\n }\r\n\r\n /**\r\n * Returns the tile content in json format. The path to the tile is relative to the base url of present reality data whatever the type.\r\n */\r\n public async getTileJson(name: string): Promise<any> {\r\n const tileUrl = this._baseUrl + name;\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(tileUrl, \"json\", { headers });\r\n }\r\n\r\n public getTileContentType(url: string): \"tile\" | \"tileset\" {\r\n return url.endsWith(\"json\") ? \"tileset\" : \"tile\";\r\n }\r\n\r\n /**\r\n * Gets spatial location and extents of this reality data source\r\n * @returns spatial location and extents\r\n * @internal\r\n */\r\n public async getSpatialLocationAndExtents(): Promise<SpatialLocationAndExtents | undefined> {\r\n // Cesium Ion asset we currenlty support are unbound (cover all earth)\r\n const spatialLocation: SpatialLocationAndExtents | undefined = undefined;\r\n return spatialLocation;\r\n }\r\n /**\r\n * Gets information to identify the product and engine that create this reality data\r\n * Will return undefined if cannot be resolved\r\n * @returns information to identify the product and engine that create this reality data\r\n * @alpha\r\n */\r\n public async getPublisherProductInfo(): Promise<PublisherProductInfo | undefined> {\r\n let publisherInfo: PublisherProductInfo | undefined;\r\n return publisherInfo;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"RealityDataSourceCesiumIonAssetImpl.js","sourceRoot":"","sources":["../../src/RealityDataSourceCesiumIonAssetImpl.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,+CAA4C;AAC5C,sDAAwE;AACxE,oDAAiI;AACjI,8CAAiK;AAGjK;;;;;;EAME;AACF,MAAa,mCAAmC;IAC9B,GAAG,CAAuB;IAC1C,2EAA2E;IACnE,WAAW,CAAqB;IACxC,sIAAsI;IAC9H,QAAQ,GAAW,EAAE,CAAC;IAC9B,6DAA6D;IACrD,qBAAqB,CAAU;IAEvC;;OAEG;IACH,YAAsB,KAA6B;QACjD,IAAA,qBAAM,EAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,iCAAmB,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAA+B,EAAE,OAA+B;QAChG,IAAI,SAAS,CAAC,QAAQ,KAAK,iCAAmB,CAAC,cAAc;YAC3D,OAAO,SAAS,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,mCAAmC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;QAEX,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;MAEE;IACF,IAAW,WAAW;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAW,aAAa;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD;;OAEG;IACH,IAAW,eAAe;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oEAAoE;IACpE,sHAAsH;IACtH,qDAAqD;IACrD,oFAAoF;IACpF,kFAAkF;IAC1E,UAAU,CAAC,GAAW;QAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;;YAEnB,IAAI,CAAC,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,aAAa,CAAC,QAAgC;QACzD,uCAAuC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,iCAAsB,CAAC,aAAa,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,GAAG,IAAA,mCAAwB,GAAE,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,iCAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,GAAG,IAAA,4BAAiB,EAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAA+B;QAC1D,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YACN,MAAM,IAAI,yBAAW,CAAC,4BAAa,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAE1E,+EAA+E;QAC/E,MAAM,WAAW,GAAG,iCAAsB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,aAAiC,CAAC;YACtC,IAAI,WAA+B,CAAC;YACpC,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,wGAAwG;gBACxG,yGAAyG;gBACzG,8EAA8E;gBAC9E,MAAM,WAAW,GAAG,MAAM,IAAA,6CAAkC,EAAC,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;gBACnG,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC;gBAClC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,MAAM,MAAM,GAAG,IAAA,gCAAqB,GAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC7E,IAAI,QAAQ,EAAE,CAAC;oBACb,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC;oBACrC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;gBACjC,GAAG,GAAG,WAAW,CAAC;gBAClB,IAAI,CAAC,qBAAqB,GAAG,UAAU,aAAa,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE9D,OAAO,IAAA,iBAAO,EAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc,CAAC,IAAY;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrC,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE9D,OAAO,IAAA,iBAAO,EAAC,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,IAAY;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrC,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE9D,OAAO,IAAA,iBAAO,EAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEM,kBAAkB,CAAC,GAAW;QACnC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,4BAA4B;QACvC,sEAAsE;QACtE,MAAM,eAAe,GAA0C,SAAS,CAAC;QACzE,OAAO,eAAe,CAAC;IACzB,CAAC;IACD;;;;;OAKG;IACI,KAAK,CAAC,uBAAuB;QAClC,IAAI,aAA+C,CAAC;QACpD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAxKD,kFAwKC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\nimport { request } from \"./request/Request\";\r\nimport { assert, BentleyStatus, GuidString } from \"@itwin/core-bentley\";\r\nimport { IModelError, RealityData, RealityDataProvider, RealityDataSourceKey, RealityDataSourceProps } from \"@itwin/core-common\";\r\nimport { CesiumIonAssetProvider, getCesiumAccessClient, getCesiumAccessTokenAndEndpointUrl, getCesiumAssetUrl, getCesiumOSMBuildingsUrl } from \"./tile/internal\";\r\nimport { PublisherProductInfo, RealityDataSource, SpatialLocationAndExtents } from \"./RealityDataSource\";\r\n\r\n/** This class provides access to the reality data provider services.\r\n * It encapsulates access to a reality data whether it be from local access, http or ProjectWise Context Share.\r\n * The key provided at the creation determines if this is ProjectWise Context Share reference.\r\n * If not then it is considered local (ex: C:\\temp\\TileRoot.json) or plain http access (http://someserver.com/data/TileRoot.json)\r\n * There is a one to one relationship between a reality data and the instances of present class.\r\n* @internal\r\n*/\r\nexport class RealityDataSourceCesiumIonAssetImpl implements RealityDataSource {\r\n public readonly key: RealityDataSourceKey;\r\n /** The URL that supplies the 3d tiles for displaying the reality model. */\r\n private _tilesetUrl: string | undefined;\r\n /** For use by all Reality Data. For RD stored on PW Context Share, represents the portion from the root of the Azure Blob Container*/\r\n private _baseUrl: string = \"\";\r\n /** Request authorization for non PW ContextShare requests.*/\r\n private _requestAuthorization?: string;\r\n\r\n /** Construct a new reality data source.\r\n * @param props JSON representation of the reality data source\r\n */\r\n protected constructor(props: RealityDataSourceProps) {\r\n assert(props.sourceKey.provider === RealityDataProvider.CesiumIonAsset);\r\n this.key = props.sourceKey;\r\n }\r\n\r\n /**\r\n * Create an instance of this class from a source key and iTwin context/\r\n */\r\n public static async createFromKey(sourceKey: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined> {\r\n if (sourceKey.provider !== RealityDataProvider.CesiumIonAsset)\r\n return undefined;\r\n const rdSource = new RealityDataSourceCesiumIonAssetImpl({ sourceKey });\r\n let tilesetUrl: string | undefined;\r\n try {\r\n tilesetUrl = await rdSource.getServiceUrl(iTwinId);\r\n } catch { }\r\n\r\n return (tilesetUrl !== undefined) ? rdSource : undefined;\r\n }\r\n\r\n public get isContextShare(): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * Returns Reality Data if available\r\n */\r\n public get realityData(): RealityData | undefined {\r\n return undefined;\r\n }\r\n public get realityDataId(): string | undefined {\r\n return undefined;\r\n }\r\n /**\r\n * Returns Reality Data type if available\r\n */\r\n public get realityDataType(): string | undefined {\r\n return undefined;\r\n }\r\n\r\n // This is to set the root url from the provided root document path.\r\n // If the root document is stored on PW Context Share then the root document property of the Reality Data is provided,\r\n // otherwise the full path to root document is given.\r\n // The base URL contains the base URL from which tile relative path are constructed.\r\n // The tile's path root will need to be reinserted for child tiles to return a 200\r\n private setBaseUrl(url: string): void {\r\n const urlParts = url.split(\"/\");\r\n urlParts.pop();\r\n if (urlParts.length === 0)\r\n this._baseUrl = \"\";\r\n else\r\n this._baseUrl = `${urlParts.join(\"/\")}/`;\r\n }\r\n\r\n /**\r\n * This method returns the URL to access the actual 3d tiles from the service provider.\r\n * @returns string containing the URL to reality data.\r\n */\r\n public async getServiceUrl(_iTwinId: GuidString | undefined): Promise<string | undefined> {\r\n // If url was not resolved - resolve it\r\n this._tilesetUrl = this.key.id;\r\n if (this.key.id === CesiumIonAssetProvider.osmBuildingId) {\r\n this._tilesetUrl = getCesiumOSMBuildingsUrl();\r\n } else {\r\n const parsedId = CesiumIonAssetProvider.parseCesiumUrl(this.key.id);\r\n if (parsedId) {\r\n this._tilesetUrl = getCesiumAssetUrl(parsedId.id, parsedId.key);\r\n }\r\n }\r\n\r\n return this._tilesetUrl;\r\n }\r\n\r\n public async getRootDocument(iTwinId: GuidString | undefined): Promise<any> {\r\n let url = await this.getServiceUrl(iTwinId);\r\n if (!url)\r\n throw new IModelError(BentleyStatus.ERROR, \"Unable to get service url\");\r\n\r\n // The following is only if the reality data is not stored on PW Context Share.\r\n const cesiumAsset = CesiumIonAssetProvider.parseCesiumUrl(url);\r\n if (cesiumAsset) {\r\n let resolvedToken: string | undefined;\r\n let resolvedUrl: string | undefined;\r\n if (cesiumAsset.key) {\r\n // Legacy key-bearing URL (e.g. persisted saved view) - authenticate directly with the embedded Ion key.\r\n // Such URLs are intentionally exempt from the cesiumAccess-over-cesiumIonKey precedence rule and are not\r\n // routed through a registered CesiumAccessClient; see [[CesiumAccessClient]].\r\n const tokenAndUrl = await getCesiumAccessTokenAndEndpointUrl(`${cesiumAsset.id}`, cesiumAsset.key);\r\n resolvedToken = tokenAndUrl.token;\r\n resolvedUrl = tokenAndUrl.url;\r\n } else {\r\n // delegate to the registered CesiumAccessClient\r\n const client = getCesiumAccessClient();\r\n const endpoint = await client.getAssetEndpoint(`${cesiumAsset.id}`, iTwinId);\r\n if (endpoint) {\r\n resolvedToken = endpoint.accessToken;\r\n resolvedUrl = endpoint.url;\r\n }\r\n }\r\n if (resolvedUrl && resolvedToken) {\r\n url = resolvedUrl;\r\n this._requestAuthorization = `Bearer ${resolvedToken}`;\r\n }\r\n }\r\n\r\n // The following is only if the reality data is not stored on PW Context Share.\r\n this.setBaseUrl(url);\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(url, \"json\", { headers });\r\n }\r\n\r\n /**\r\n * Returns the tile content. The path to the tile is relative to the base url of present reality data whatever the type.\r\n */\r\n public async getTileContent(name: string): Promise<ArrayBuffer> {\r\n const tileUrl = this._baseUrl + name;\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(tileUrl, \"arraybuffer\", { headers });\r\n }\r\n\r\n /**\r\n * Returns the tile content in json format. The path to the tile is relative to the base url of present reality data whatever the type.\r\n */\r\n public async getTileJson(name: string): Promise<any> {\r\n const tileUrl = this._baseUrl + name;\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(tileUrl, \"json\", { headers });\r\n }\r\n\r\n public getTileContentType(url: string): \"tile\" | \"tileset\" {\r\n return url.endsWith(\"json\") ? \"tileset\" : \"tile\";\r\n }\r\n\r\n /**\r\n * Gets spatial location and extents of this reality data source\r\n * @returns spatial location and extents\r\n * @internal\r\n */\r\n public async getSpatialLocationAndExtents(): Promise<SpatialLocationAndExtents | undefined> {\r\n // Cesium Ion asset we currenlty support are unbound (cover all earth)\r\n const spatialLocation: SpatialLocationAndExtents | undefined = undefined;\r\n return spatialLocation;\r\n }\r\n /**\r\n * Gets information to identify the product and engine that create this reality data\r\n * Will return undefined if cannot be resolved\r\n * @returns information to identify the product and engine that create this reality data\r\n * @alpha\r\n */\r\n public async getPublisherProductInfo(): Promise<PublisherProductInfo | undefined> {\r\n let publisherInfo: PublisherProductInfo | undefined;\r\n return publisherInfo;\r\n }\r\n}\r\n\r\n"]}
@@ -7,6 +7,7 @@ export * from "./GeoProviders";
7
7
  export * from "./BriefcaseTxns";
8
8
  export * from "./CatalogConnection";
9
9
  export * from "./CategorySelectorState";
10
+ export * from "./CesiumAccessClient";
10
11
  export * from "./ChangeFlags";
11
12
  export * from "./CheckpointConnection";
12
13
  export * from "./common";
@@ -110,6 +111,7 @@ export * from "./tools/IdleTool";
110
111
  export * from "./tools/MeasureTool";
111
112
  export * from "./tools/PrimitiveTool";
112
113
  export * from "./tools/SelectTool";
114
+ export * from "./tools/SetupCameraTools";
113
115
  export * from "./tools/Tool";
114
116
  export * from "./tools/ToolSettings";
115
117
  export * from "./tools/ToolAdmin";
@@ -1 +1 @@
1
- {"version":3,"file":"core-frontend.d.ts","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-frontend.d.ts","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,0DAA0D,CAAC;AACzE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8CAA8C,CAAC;AAC7D,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,iBAAiB,EAAE,oBAAoB,EAC5C,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAC5G,mBAAmB,EACnB,KAAK,oBAAoB,EAAE,eAAe,EAC1C,KAAK,mBAAmB,EAAE,WAAW,EACrC,KAAK,yBAAyB,EAC9B,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,SAAS,EACpD,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAAE,YAAY,EACpC,KAAK,iBAAiB,EAAE,KAAK,4BAA4B,EAAE,qBAAqB,EAAE,KAAK,yBAAyB,EAChH,KAAK,gCAAgC,EACrC,KAAK,UAAU,EACf,mBAAmB,EACnB,KAAK,6BAA6B,EAAE,4BAA4B,EAAE,kBAAkB,EACpF,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,eAAe,EAAE,iBAAiB,EAClC,KAAK,gBAAgB,EACrB,kBAAkB,EAAE,QAAQ,EAC5B,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EACzE,eAAe,EACf,QAAQ,EAER,qBAAqB,EACrB,MAAM,EAAE,KAAK,WAAW,EACxB,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EACvF,KAAK,aAAa,EAClB,iBAAiB,EAAE,OAAO,EAC1B,yBAAyB,EACzB,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAC/E,6BAA6B,EAAE,uBAAuB,EACtD,qBAAqB,EACrB,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,KAAK,eAAe,EAAE,sBAAsB,EAC7I,KAAK,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,KAAK,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,KAAK,oBAAoB,EAChJ,KAAK,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,KAAK,eAAe,EAAE,KAAK,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,qBAAqB,EACtO,iBAAiB,EACjB,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,+BAA+B,EAAE,WAAW,EAC5C,KAAK,0BAA0B,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,mBAAmB,EACjG,KAAK,eAAe,EAAE,uBAAuB,GAC9C,MAAM,iBAAiB,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,0BAA0B,CAAC;AAGzC,OAAO,8BAA8B,CAAC;AAEtC;;GAEG;AAEH;;;;GAIG;AACH;;;GAGG;AACH;;;;GAIG;AACH;;;;GAIG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;;GAIG;AACH;;;;GAIG;AACH;;;;GAIG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;;GAIG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;GAGG;AACH;;;;GAIG;AACH;;;GAGG;AACH;;;EAGE"}
@@ -29,6 +29,7 @@ __exportStar(require("./GeoProviders"), exports);
29
29
  __exportStar(require("./BriefcaseTxns"), exports);
30
30
  __exportStar(require("./CatalogConnection"), exports);
31
31
  __exportStar(require("./CategorySelectorState"), exports);
32
+ __exportStar(require("./CesiumAccessClient"), exports);
32
33
  __exportStar(require("./ChangeFlags"), exports);
33
34
  __exportStar(require("./CheckpointConnection"), exports);
34
35
  __exportStar(require("./common"), exports);
@@ -184,6 +185,7 @@ __exportStar(require("./tools/IdleTool"), exports);
184
185
  __exportStar(require("./tools/MeasureTool"), exports);
185
186
  __exportStar(require("./tools/PrimitiveTool"), exports);
186
187
  __exportStar(require("./tools/SelectTool"), exports);
188
+ __exportStar(require("./tools/SetupCameraTools"), exports);
187
189
  __exportStar(require("./tools/Tool"), exports);
188
190
  __exportStar(require("./tools/ToolSettings"), exports);
189
191
  __exportStar(require("./tools/ToolAdmin"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"core-frontend.js","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nexport * from \"./AccuDraw\";\r\nexport * from \"./AccuSnap\";\r\nexport * from \"./AuxCoordSys\";\r\nexport * from \"./BingLocation\";\r\nexport * from \"./BriefcaseConnection\";\r\nexport * from \"./GeoProviders\";\r\nexport * from \"./BriefcaseTxns\";\r\nexport * from \"./CatalogConnection\";\r\nexport * from \"./CategorySelectorState\";\r\nexport * from \"./ChangeFlags\";\r\nexport * from \"./CheckpointConnection\";\r\nexport * from \"./common\";\r\nexport * from \"./ContextRealityModelState\";\r\nexport * from \"./CoordSystem\";\r\nexport * from \"./DecorationsCache\";\r\nexport * from \"./DevTools\";\r\nexport * from \"./DisplayStyleState\";\r\nexport * from \"./DrawingViewState\";\r\nexport * from \"./ElementLocateManager\";\r\nexport * from \"./EmphasizeElements\";\r\nexport * from \"./EntityState\";\r\nexport * from \"./EnvironmentDecorations\";\r\nexport * from \"./FeatureOverrideProvider\";\r\nexport * from \"./FlashSettings\";\r\nexport * from \"./FrontendHubAccess\";\r\nexport * from \"./Frustum2d\";\r\nexport * from \"./FrustumAnimator\";\r\nexport * from \"./FuzzySearch\";\r\nexport * from \"./GeoServices\";\r\nexport * from \"./GlobeAnimator\";\r\nexport * from \"./GraphicalEditingScope\";\r\nexport * from \"./HitDetail\";\r\nexport * from \"./IModelApp\";\r\nexport * from \"./IModelConnection\";\r\nexport * from \"./IModelRoutingContext\";\r\nexport * from \"./IpcApp\";\r\nexport * from \"./LinePlaneIntersect\";\r\nexport * from \"./MarginPercent\";\r\nexport * from \"./Marker\";\r\nexport * from \"./ModelSelectorState\";\r\nexport * from \"./ModelState\";\r\nexport * from \"./NativeApp\";\r\nexport * from \"./NativeAppLogger\";\r\nexport * from \"./NoRenderApp\";\r\nexport * from \"./NotificationManager\";\r\nexport * from \"./PerModelCategoryVisibility\";\r\nexport * from \"./PlanarClipMaskState\";\r\nexport * from \"./SelectionSet\";\r\nexport * from \"./SheetViewState\";\r\nexport * from \"./SpatialClassifiersState\";\r\nexport * from \"./SpatialViewState\";\r\nexport * from \"./Sprites\";\r\nexport * from \"./StandardView\";\r\nexport * from \"./SubCategoriesCache\";\r\nexport * from \"./TentativePoint\";\r\nexport * from \"./Tiles\";\r\nexport * from \"./UserPreferences\";\r\nexport * from \"./ViewAnimation\";\r\nexport * from \"./ViewContext\";\r\nexport * from \"./ViewGlobalLocation\";\r\nexport * from \"./ViewingSpace\";\r\nexport * from \"./ViewManager\";\r\nexport * from \"./Viewport\";\r\nexport * from \"./ViewportSync\";\r\nexport * from \"./ViewPose\";\r\nexport * from \"./ViewState\";\r\nexport * from \"./ViewStatus\";\r\nexport * from \"./extension/Extension\";\r\nexport * from \"./extension/providers/LocalExtensionProvider\";\r\nexport * from \"./extension/providers/RemoteExtensionProvider\";\r\nexport * from \"./properties/AngleDescription\";\r\nexport * from \"./properties/FormattedQuantityDescription\";\r\nexport * from \"./properties/LengthDescription\";\r\nexport * from \"./quantity-formatting/QuantityFormatter\";\r\nexport * from \"./quantity-formatting/BaseUnitFormattingSettingsProvider\";\r\nexport * from \"./quantity-formatting/LocalUnitFormatProvider\";\r\nexport * from \"./quantity-formatting/QuantityTypesEditorSpecs\";\r\nexport * from \"./render/CanvasDecoration\";\r\nexport * from \"./render/CreateRenderMaterialArgs\";\r\nexport * from \"./render/CreateTextureArgs\";\r\nexport * from \"./render/Decorations\";\r\nexport * from \"./render/FeatureSymbology\";\r\nexport * from \"./render/FrameStats\";\r\nexport * from \"./render/GraphicBranch\";\r\nexport * from \"./render/GraphicBuilder\";\r\nexport * from \"./render/GraphicTemplate\";\r\nexport * from \"./render/MeshArgs\";\r\nexport * from \"./render/ParticleCollectionBuilder\";\r\nexport * from \"./render/Pixel\";\r\nexport * from \"./render/PolylineArgs\";\r\nexport * from \"./render/RealityMeshParams\";\r\nexport * from \"./render/RenderClipVolume\";\r\nexport * from \"./render/RenderGraphic\";\r\nexport * from \"./render/RenderMemory\";\r\nexport * from \"./render/RenderSystem\";\r\nexport * from \"./render/RenderTarget\";\r\nexport * from \"./render/Scene\";\r\nexport * from \"./render/ScreenSpaceEffectBuilder\";\r\nexport * from \"./render/VisibleFeature\";\r\nexport * from \"./internal/render/webgl/IModelFrameLifecycle\";\r\nexport type {\r\n TxnEntityChange,\r\n TxnEntityChangeIterable,\r\n TxnEntityChangeType,\r\n TxnEntityChanges,\r\n TxnEntityChangesFilterOptions,\r\n TxnEntityMetadata,\r\n TxnEntityMetadataCriterion,\r\n} from \"./TxnEntityChanges\";\r\nexport {\r\n type TileTreeDiscloser, DisclosedTileTreeSet,\r\n type ReadGltfGraphicsArgs, type GltfGraphic, type GltfTemplate, readGltfGraphics, readGltfTemplate, readGltf,\r\n readElementGraphics,\r\n type BatchTableProperties, RealityTileTree,\r\n type RealityTileGeometry, RealityTile,\r\n type RenderGraphicTileTreeArgs,\r\n type GpuMemoryLimit, type GpuMemoryLimits, TileAdmin,\r\n type TileContent,\r\n type TiledGraphicsProvider,\r\n type TileDrawArgParams, TileDrawArgs,\r\n type CollectTileStatus, type TileGeometryCollectorOptions, TileGeometryCollector, type GeometryTileTreeReference,\r\n type GeometryTileTreeReferenceOptions,\r\n type TileParams,\r\n TileRequestChannels,\r\n type TileContentDecodingStatistics, TileRequestChannelStatistics, TileRequestChannel,\r\n TileRequest,\r\n type TileTreeOwner,\r\n type TileTreeParams,\r\n TileGraphicType, TileTreeReference,\r\n type TileTreeSupplier,\r\n TileTreeLoadStatus, TileTree,\r\n Tile, TileLoadStatus, TileVisibility, TileLoadPriority, TileBoundingBoxes,\r\n TileUsageMarker,\r\n TileUser,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n BingElevationProvider,\r\n QuadId, type QuadIdProps,\r\n MapTilingScheme, GeographicTilingScheme, WebMercatorProjection, WebMercatorTilingScheme,\r\n type MapLayerIndex,\r\n MapTileProjection, MapTile,\r\n MapLayerTileTreeReference,\r\n MapLayerSourceStatus, type MapLayerSourceProps, MapLayerSource, MapLayerSources,\r\n MapLayerImageryProviderStatus, MapLayerImageryProvider,\r\n ImageryMapLayerFormat,\r\n MapLayerFormat, type ValidateSourceArgs, type MapLayerFormatType, type MapLayerSourceValidation, type MapLayerOptions, MapLayerFormatRegistry,\r\n type MapLayerTokenEndpoint, type MapLayerAuthenticationInfo, type MapLayerAccessToken, type MapLayerAccessTokenParams, type MapLayerAccessClient,\r\n type MapFeatureInfoOptions, MapFeatureInfoRecord, type MapFeatureInfo, type MapLayerFeatureInfo, type MapSubLayerFeatureInfo, type MapLayerFeature, type MapLayerFeatureGeometry, type MapLayerFeatureAttribute, MapLayerFeatureRecord,\r\n MapCartoRectangle,\r\n ImageryMapLayerTreeReference,\r\n EllipsoidTerrainProvider,\r\n getCesiumAssetUrl,\r\n MapTileTreeScaleRangeVisibility, MapTileTree,\r\n type TerrainMeshProviderOptions, type RequestMeshDataArgs, type ReadMeshArgs, TerrainMeshProvider,\r\n type TerrainProvider, TerrainProviderRegistry,\r\n} from \"./tile/internal\";\r\nexport * from \"./tools/AccuDrawTool\";\r\nexport * from \"./tools/AccuDrawViewportUI\";\r\nexport * from \"./tools/ClipViewTool\";\r\nexport * from \"./tools/EditManipulator\";\r\nexport * from \"./tools/ElementSetTool\";\r\nexport * from \"./tools/EventController\";\r\nexport * from \"./tools/IdleTool\";\r\nexport * from \"./tools/MeasureTool\";\r\nexport * from \"./tools/PrimitiveTool\";\r\nexport * from \"./tools/SelectTool\";\r\nexport * from \"./tools/Tool\";\r\nexport * from \"./tools/ToolSettings\";\r\nexport * from \"./tools/ToolAdmin\";\r\nexport * from \"./tools/ToolAssistance\";\r\nexport * from \"./tools/ViewTool\";\r\nexport * from \"./workers/RegisterWorker\";\r\nexport * from \"./BackgroundMapGeometry\";\r\nexport * from \"./ViewCreator2d\";\r\nexport * from \"./ViewCreator3d\";\r\nexport * from \"./LocalhostIpcApp\";\r\nexport * from \"./request/utils\";\r\nexport * from \"./RealityDataSource\";\r\n\r\nexport * from \"./internal/cross-package\";\r\n\r\n// TODO/FIX: \"./extension/ExtensionRuntime\" import has to be last to avoid circular dependency errors.\r\nimport \"./extension/ExtensionRuntime\";\r\n\r\n/** @docs-package-description\r\n * The core-frontend package always runs in a web browser. It contains classes for [querying iModels and showing views]($docs/learning/frontend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description IModelApp\r\n * Classes for configuring and administering an iTwin.js application.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description IModelConnection\r\n * Classes for working with a connection to an [iModel briefcase]($docs/learning/IModels.md)\r\n */\r\n/**\r\n * @docs-group-description ElementState\r\n * Classes for working with the *state* of Elements in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description ModelState\r\n * Classes for working with the *state* of Models in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Tools\r\n * Classes for [working with Tools]($docs/learning/frontend/Tools.md)\r\n */\r\n/**\r\n * @docs-group-description Measure\r\n * Classes for reporting point to point distances and mass properties of elements.\r\n */\r\n/**\r\n * @docs-group-description Views\r\n * Classes for [working with Views]($docs/learning/frontend/Views.md)\r\n */\r\n/**\r\n * @docs-group-description LocatingElements\r\n * Classes for locating and snapping to elements in views.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description AccuDraw\r\n * AccuDraw provides helpful assistance for creating and modifying elements in a view.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Notifications\r\n * Notifications provide feedback to the user of something of interest.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Extensions\r\n * Classes for creating and managing Extensions.\r\n */\r\n/**\r\n * @docs-group-description Properties\r\n * Classes for working with property records and descriptions.\r\n */\r\n/**\r\n * @docs-group-description Rendering\r\n * Classes for rendering the contents of views.\r\n */\r\n/**\r\n * @docs-group-description SelectionSet\r\n * Classes for working with the set of selected elements.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description NativeApp\r\n * Classes for working with Native Applications\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package\r\n */\r\n/**\r\n * @docs-group-description QuantityFormatting\r\n * Classes for formatting and parsing quantity values.\r\n */\r\n/**\r\n * @docs-group-description Tiles\r\n * Classes representing graphics as [hierarchical 3d tiles](https://github.com/CesiumGS/3d-tiles).\r\n */\r\n/**\r\n * @docs-group-description HubAccess\r\n * APIs for working with IModelHub\r\n */\r\n/**\r\n * @docs-group-description UserPreferences\r\n * APIs for working with user preferences in an iModelApp.\r\n * See [the learning articles]($docs/learning/frontend/preferences.md).\r\n */\r\n/**\r\n * @docs-group-description MapLayers\r\n * Classes supporting map layers display.\r\n */\r\n/**\r\n * @docs-group-description TileStorage\r\n * Class for working with cloud storage using iTwin/object-storage cloud providers\r\n*/"]}
1
+ {"version":3,"file":"core-frontend.js","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nexport * from \"./AccuDraw\";\r\nexport * from \"./AccuSnap\";\r\nexport * from \"./AuxCoordSys\";\r\nexport * from \"./BingLocation\";\r\nexport * from \"./BriefcaseConnection\";\r\nexport * from \"./GeoProviders\";\r\nexport * from \"./BriefcaseTxns\";\r\nexport * from \"./CatalogConnection\";\r\nexport * from \"./CategorySelectorState\";\r\nexport * from \"./CesiumAccessClient\";\r\nexport * from \"./ChangeFlags\";\r\nexport * from \"./CheckpointConnection\";\r\nexport * from \"./common\";\r\nexport * from \"./ContextRealityModelState\";\r\nexport * from \"./CoordSystem\";\r\nexport * from \"./DecorationsCache\";\r\nexport * from \"./DevTools\";\r\nexport * from \"./DisplayStyleState\";\r\nexport * from \"./DrawingViewState\";\r\nexport * from \"./ElementLocateManager\";\r\nexport * from \"./EmphasizeElements\";\r\nexport * from \"./EntityState\";\r\nexport * from \"./EnvironmentDecorations\";\r\nexport * from \"./FeatureOverrideProvider\";\r\nexport * from \"./FlashSettings\";\r\nexport * from \"./FrontendHubAccess\";\r\nexport * from \"./Frustum2d\";\r\nexport * from \"./FrustumAnimator\";\r\nexport * from \"./FuzzySearch\";\r\nexport * from \"./GeoServices\";\r\nexport * from \"./GlobeAnimator\";\r\nexport * from \"./GraphicalEditingScope\";\r\nexport * from \"./HitDetail\";\r\nexport * from \"./IModelApp\";\r\nexport * from \"./IModelConnection\";\r\nexport * from \"./IModelRoutingContext\";\r\nexport * from \"./IpcApp\";\r\nexport * from \"./LinePlaneIntersect\";\r\nexport * from \"./MarginPercent\";\r\nexport * from \"./Marker\";\r\nexport * from \"./ModelSelectorState\";\r\nexport * from \"./ModelState\";\r\nexport * from \"./NativeApp\";\r\nexport * from \"./NativeAppLogger\";\r\nexport * from \"./NoRenderApp\";\r\nexport * from \"./NotificationManager\";\r\nexport * from \"./PerModelCategoryVisibility\";\r\nexport * from \"./PlanarClipMaskState\";\r\nexport * from \"./SelectionSet\";\r\nexport * from \"./SheetViewState\";\r\nexport * from \"./SpatialClassifiersState\";\r\nexport * from \"./SpatialViewState\";\r\nexport * from \"./Sprites\";\r\nexport * from \"./StandardView\";\r\nexport * from \"./SubCategoriesCache\";\r\nexport * from \"./TentativePoint\";\r\nexport * from \"./Tiles\";\r\nexport * from \"./UserPreferences\";\r\nexport * from \"./ViewAnimation\";\r\nexport * from \"./ViewContext\";\r\nexport * from \"./ViewGlobalLocation\";\r\nexport * from \"./ViewingSpace\";\r\nexport * from \"./ViewManager\";\r\nexport * from \"./Viewport\";\r\nexport * from \"./ViewportSync\";\r\nexport * from \"./ViewPose\";\r\nexport * from \"./ViewState\";\r\nexport * from \"./ViewStatus\";\r\nexport * from \"./extension/Extension\";\r\nexport * from \"./extension/providers/LocalExtensionProvider\";\r\nexport * from \"./extension/providers/RemoteExtensionProvider\";\r\nexport * from \"./properties/AngleDescription\";\r\nexport * from \"./properties/FormattedQuantityDescription\";\r\nexport * from \"./properties/LengthDescription\";\r\nexport * from \"./quantity-formatting/QuantityFormatter\";\r\nexport * from \"./quantity-formatting/BaseUnitFormattingSettingsProvider\";\r\nexport * from \"./quantity-formatting/LocalUnitFormatProvider\";\r\nexport * from \"./quantity-formatting/QuantityTypesEditorSpecs\";\r\nexport * from \"./render/CanvasDecoration\";\r\nexport * from \"./render/CreateRenderMaterialArgs\";\r\nexport * from \"./render/CreateTextureArgs\";\r\nexport * from \"./render/Decorations\";\r\nexport * from \"./render/FeatureSymbology\";\r\nexport * from \"./render/FrameStats\";\r\nexport * from \"./render/GraphicBranch\";\r\nexport * from \"./render/GraphicBuilder\";\r\nexport * from \"./render/GraphicTemplate\";\r\nexport * from \"./render/MeshArgs\";\r\nexport * from \"./render/ParticleCollectionBuilder\";\r\nexport * from \"./render/Pixel\";\r\nexport * from \"./render/PolylineArgs\";\r\nexport * from \"./render/RealityMeshParams\";\r\nexport * from \"./render/RenderClipVolume\";\r\nexport * from \"./render/RenderGraphic\";\r\nexport * from \"./render/RenderMemory\";\r\nexport * from \"./render/RenderSystem\";\r\nexport * from \"./render/RenderTarget\";\r\nexport * from \"./render/Scene\";\r\nexport * from \"./render/ScreenSpaceEffectBuilder\";\r\nexport * from \"./render/VisibleFeature\";\r\nexport * from \"./internal/render/webgl/IModelFrameLifecycle\";\r\nexport type {\r\n TxnEntityChange,\r\n TxnEntityChangeIterable,\r\n TxnEntityChangeType,\r\n TxnEntityChanges,\r\n TxnEntityChangesFilterOptions,\r\n TxnEntityMetadata,\r\n TxnEntityMetadataCriterion,\r\n} from \"./TxnEntityChanges\";\r\nexport {\r\n type TileTreeDiscloser, DisclosedTileTreeSet,\r\n type ReadGltfGraphicsArgs, type GltfGraphic, type GltfTemplate, readGltfGraphics, readGltfTemplate, readGltf,\r\n readElementGraphics,\r\n type BatchTableProperties, RealityTileTree,\r\n type RealityTileGeometry, RealityTile,\r\n type RenderGraphicTileTreeArgs,\r\n type GpuMemoryLimit, type GpuMemoryLimits, TileAdmin,\r\n type TileContent,\r\n type TiledGraphicsProvider,\r\n type TileDrawArgParams, TileDrawArgs,\r\n type CollectTileStatus, type TileGeometryCollectorOptions, TileGeometryCollector, type GeometryTileTreeReference,\r\n type GeometryTileTreeReferenceOptions,\r\n type TileParams,\r\n TileRequestChannels,\r\n type TileContentDecodingStatistics, TileRequestChannelStatistics, TileRequestChannel,\r\n TileRequest,\r\n type TileTreeOwner,\r\n type TileTreeParams,\r\n TileGraphicType, TileTreeReference,\r\n type TileTreeSupplier,\r\n TileTreeLoadStatus, TileTree,\r\n Tile, TileLoadStatus, TileVisibility, TileLoadPriority, TileBoundingBoxes,\r\n TileUsageMarker,\r\n TileUser,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n BingElevationProvider,\r\n QuadId, type QuadIdProps,\r\n MapTilingScheme, GeographicTilingScheme, WebMercatorProjection, WebMercatorTilingScheme,\r\n type MapLayerIndex,\r\n MapTileProjection, MapTile,\r\n MapLayerTileTreeReference,\r\n MapLayerSourceStatus, type MapLayerSourceProps, MapLayerSource, MapLayerSources,\r\n MapLayerImageryProviderStatus, MapLayerImageryProvider,\r\n ImageryMapLayerFormat,\r\n MapLayerFormat, type ValidateSourceArgs, type MapLayerFormatType, type MapLayerSourceValidation, type MapLayerOptions, MapLayerFormatRegistry,\r\n type MapLayerTokenEndpoint, type MapLayerAuthenticationInfo, type MapLayerAccessToken, type MapLayerAccessTokenParams, type MapLayerAccessClient,\r\n type MapFeatureInfoOptions, MapFeatureInfoRecord, type MapFeatureInfo, type MapLayerFeatureInfo, type MapSubLayerFeatureInfo, type MapLayerFeature, type MapLayerFeatureGeometry, type MapLayerFeatureAttribute, MapLayerFeatureRecord,\r\n MapCartoRectangle,\r\n ImageryMapLayerTreeReference,\r\n EllipsoidTerrainProvider,\r\n getCesiumAssetUrl,\r\n MapTileTreeScaleRangeVisibility, MapTileTree,\r\n type TerrainMeshProviderOptions, type RequestMeshDataArgs, type ReadMeshArgs, TerrainMeshProvider,\r\n type TerrainProvider, TerrainProviderRegistry,\r\n} from \"./tile/internal\";\r\nexport * from \"./tools/AccuDrawTool\";\r\nexport * from \"./tools/AccuDrawViewportUI\";\r\nexport * from \"./tools/ClipViewTool\";\r\nexport * from \"./tools/EditManipulator\";\r\nexport * from \"./tools/ElementSetTool\";\r\nexport * from \"./tools/EventController\";\r\nexport * from \"./tools/IdleTool\";\r\nexport * from \"./tools/MeasureTool\";\r\nexport * from \"./tools/PrimitiveTool\";\r\nexport * from \"./tools/SelectTool\";\r\nexport * from \"./tools/SetupCameraTools\";\r\nexport * from \"./tools/Tool\";\r\nexport * from \"./tools/ToolSettings\";\r\nexport * from \"./tools/ToolAdmin\";\r\nexport * from \"./tools/ToolAssistance\";\r\nexport * from \"./tools/ViewTool\";\r\nexport * from \"./workers/RegisterWorker\";\r\nexport * from \"./BackgroundMapGeometry\";\r\nexport * from \"./ViewCreator2d\";\r\nexport * from \"./ViewCreator3d\";\r\nexport * from \"./LocalhostIpcApp\";\r\nexport * from \"./request/utils\";\r\nexport * from \"./RealityDataSource\";\r\n\r\nexport * from \"./internal/cross-package\";\r\n\r\n// TODO/FIX: \"./extension/ExtensionRuntime\" import has to be last to avoid circular dependency errors.\r\nimport \"./extension/ExtensionRuntime\";\r\n\r\n/** @docs-package-description\r\n * The core-frontend package always runs in a web browser. It contains classes for [querying iModels and showing views]($docs/learning/frontend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description IModelApp\r\n * Classes for configuring and administering an iTwin.js application.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description IModelConnection\r\n * Classes for working with a connection to an [iModel briefcase]($docs/learning/IModels.md)\r\n */\r\n/**\r\n * @docs-group-description ElementState\r\n * Classes for working with the *state* of Elements in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description ModelState\r\n * Classes for working with the *state* of Models in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Tools\r\n * Classes for [working with Tools]($docs/learning/frontend/Tools.md)\r\n */\r\n/**\r\n * @docs-group-description Measure\r\n * Classes for reporting point to point distances and mass properties of elements.\r\n */\r\n/**\r\n * @docs-group-description Views\r\n * Classes for [working with Views]($docs/learning/frontend/Views.md)\r\n */\r\n/**\r\n * @docs-group-description LocatingElements\r\n * Classes for locating and snapping to elements in views.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description AccuDraw\r\n * AccuDraw provides helpful assistance for creating and modifying elements in a view.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Notifications\r\n * Notifications provide feedback to the user of something of interest.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Extensions\r\n * Classes for creating and managing Extensions.\r\n */\r\n/**\r\n * @docs-group-description Properties\r\n * Classes for working with property records and descriptions.\r\n */\r\n/**\r\n * @docs-group-description Rendering\r\n * Classes for rendering the contents of views.\r\n */\r\n/**\r\n * @docs-group-description SelectionSet\r\n * Classes for working with the set of selected elements.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description NativeApp\r\n * Classes for working with Native Applications\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package\r\n */\r\n/**\r\n * @docs-group-description QuantityFormatting\r\n * Classes for formatting and parsing quantity values.\r\n */\r\n/**\r\n * @docs-group-description Tiles\r\n * Classes representing graphics as [hierarchical 3d tiles](https://github.com/CesiumGS/3d-tiles).\r\n */\r\n/**\r\n * @docs-group-description HubAccess\r\n * APIs for working with IModelHub\r\n */\r\n/**\r\n * @docs-group-description UserPreferences\r\n * APIs for working with user preferences in an iModelApp.\r\n * See [the learning articles]($docs/learning/frontend/preferences.md).\r\n */\r\n/**\r\n * @docs-group-description MapLayers\r\n * Classes supporting map layers display.\r\n */\r\n/**\r\n * @docs-group-description TileStorage\r\n * Class for working with cloud storage using iTwin/object-storage cloud providers\r\n*/"]}