@itwin/core-frontend 4.10.0-dev.8 → 5.0.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +0 -2
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  6. package/lib/cjs/AccuSnap.js +17 -8
  7. package/lib/cjs/AccuSnap.js.map +1 -1
  8. package/lib/cjs/BackgroundMapGeometry.js +3 -3
  9. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  10. package/lib/cjs/BingLocation.js +1 -1
  11. package/lib/cjs/BingLocation.js.map +1 -1
  12. package/lib/cjs/BriefcaseConnection.d.ts +0 -1
  13. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  14. package/lib/cjs/BriefcaseConnection.js +2 -3
  15. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  16. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  17. package/lib/cjs/ChangeFlags.d.ts +1 -1
  18. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  19. package/lib/cjs/ChangeFlags.js.map +1 -1
  20. package/lib/cjs/CheckpointConnection.js +1 -1
  21. package/lib/cjs/CheckpointConnection.js.map +1 -1
  22. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  23. package/lib/cjs/DisplayStyleState.js +6 -6
  24. package/lib/cjs/DisplayStyleState.js.map +1 -1
  25. package/lib/cjs/DrawingViewState.d.ts +8 -6
  26. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  27. package/lib/cjs/DrawingViewState.js +20 -10
  28. package/lib/cjs/DrawingViewState.js.map +1 -1
  29. package/lib/cjs/EnvironmentDecorations.js +1 -1
  30. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  31. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  32. package/lib/cjs/HitDetail.d.ts +37 -5
  33. package/lib/cjs/HitDetail.d.ts.map +1 -1
  34. package/lib/cjs/HitDetail.js +12 -2
  35. package/lib/cjs/HitDetail.js.map +1 -1
  36. package/lib/cjs/IModelApp.d.ts.map +1 -1
  37. package/lib/cjs/IModelApp.js +1 -2
  38. package/lib/cjs/IModelApp.js.map +1 -1
  39. package/lib/cjs/IModelConnection.d.ts +1 -0
  40. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  41. package/lib/cjs/IModelConnection.js +9 -8
  42. package/lib/cjs/IModelConnection.js.map +1 -1
  43. package/lib/cjs/IpcApp.d.ts.map +1 -1
  44. package/lib/cjs/IpcApp.js +8 -1
  45. package/lib/cjs/IpcApp.js.map +1 -1
  46. package/lib/cjs/LinePlaneIntersect.js +1 -2
  47. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  48. package/lib/cjs/ModelState.d.ts +0 -8
  49. package/lib/cjs/ModelState.d.ts.map +1 -1
  50. package/lib/cjs/ModelState.js +0 -8
  51. package/lib/cjs/ModelState.js.map +1 -1
  52. package/lib/cjs/NativeApp.d.ts +1 -1
  53. package/lib/cjs/NativeApp.d.ts.map +1 -1
  54. package/lib/cjs/NativeApp.js.map +1 -1
  55. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  56. package/lib/cjs/NotificationManager.d.ts +2 -2
  57. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  58. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  59. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +1 -2
  60. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  61. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -1
  62. package/lib/cjs/RealityDataSourceContextShareImpl.js +2 -3
  63. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  64. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +1 -1
  65. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  66. package/lib/cjs/SheetViewState.d.ts +4 -11
  67. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  68. package/lib/cjs/SheetViewState.js +18 -12
  69. package/lib/cjs/SheetViewState.js.map +1 -1
  70. package/lib/cjs/SpatialViewState.d.ts +0 -1
  71. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  72. package/lib/cjs/SpatialViewState.js +1 -2
  73. package/lib/cjs/SpatialViewState.js.map +1 -1
  74. package/lib/cjs/SubCategoriesCache.js +1 -1
  75. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  76. package/lib/cjs/TentativePoint.js +1 -1
  77. package/lib/cjs/TentativePoint.js.map +1 -1
  78. package/lib/cjs/ViewCreator3d.js +1 -1
  79. package/lib/cjs/ViewCreator3d.js.map +1 -1
  80. package/lib/cjs/ViewGlobalLocation.js +9 -9
  81. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  82. package/lib/cjs/ViewState.d.ts +14 -1
  83. package/lib/cjs/ViewState.d.ts.map +1 -1
  84. package/lib/cjs/ViewState.js +4 -2
  85. package/lib/cjs/ViewState.js.map +1 -1
  86. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  87. package/lib/cjs/ViewingSpace.js +3 -0
  88. package/lib/cjs/ViewingSpace.js.map +1 -1
  89. package/lib/cjs/Viewport.d.ts.map +1 -1
  90. package/lib/cjs/Viewport.js +2 -4
  91. package/lib/cjs/Viewport.js.map +1 -1
  92. package/lib/cjs/ViewportSync.js +6 -6
  93. package/lib/cjs/ViewportSync.js.map +1 -1
  94. package/lib/cjs/common/ImageUtil.js +15 -16
  95. package/lib/cjs/common/ImageUtil.js.map +1 -1
  96. package/lib/cjs/common/WorkerProxy.d.ts +8 -4
  97. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
  98. package/lib/cjs/common/WorkerProxy.js +1 -2
  99. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  100. package/lib/cjs/common/gltf/GltfParser.js +7 -8
  101. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  102. package/lib/cjs/common/gltf/GltfSchema.d.ts +1 -1
  103. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  104. package/lib/cjs/common/gltf/GltfSchema.js +5 -5
  105. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  106. package/lib/cjs/common/imdl/CompactEdges.js +1 -2
  107. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  108. package/lib/cjs/common/imdl/ImdlModel.js +2 -3
  109. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  110. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  111. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  112. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  113. package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -12
  114. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  115. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
  116. package/lib/cjs/common/internal/render/EdgeParams.js +2 -3
  117. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  118. package/lib/cjs/common/internal/render/GeometryList.d.ts +1 -1
  119. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +3 -3
  120. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  121. package/lib/cjs/common/internal/render/LineCode.js +1 -2
  122. package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
  123. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
  124. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
  125. package/lib/cjs/common/internal/render/MeshPrimitives.js +3 -3
  126. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  127. package/lib/cjs/common/internal/render/OvrFlags.d.ts +4 -2
  128. package/lib/cjs/common/internal/render/OvrFlags.d.ts.map +1 -1
  129. package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
  130. package/lib/cjs/common/internal/render/PointStringParams.js +1 -2
  131. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
  132. package/lib/cjs/common/internal/render/PolylineParams.js +4 -5
  133. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  134. package/lib/cjs/common/internal/render/SurfaceParams.js +3 -3
  135. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
  136. package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -1
  137. package/lib/cjs/common/internal/render/VertexTable.js +4 -7
  138. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
  139. package/lib/cjs/common/internal/render/VertexTableBuilder.js +2 -2
  140. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
  141. package/lib/cjs/common/internal/render/VertexTableSplitter.js +4 -4
  142. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  143. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
  144. package/lib/cjs/extension/providers/ExtensionLoadScript.js +1 -2
  145. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  146. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +2 -3
  147. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  148. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  149. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +1 -1
  150. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  151. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +2 -2
  152. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  153. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js +2 -2
  154. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  155. package/lib/cjs/quantity-formatting/QuantityFormatter.js +3 -3
  156. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  157. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBranch.d.ts +12 -1
  159. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  160. package/lib/cjs/render/GraphicBranch.js +2 -2
  161. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  162. package/lib/cjs/render/GraphicTemplate.js +1 -2
  163. package/lib/cjs/render/GraphicTemplate.js.map +1 -1
  164. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  165. package/lib/cjs/render/Pixel.d.ts +14 -4
  166. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  167. package/lib/cjs/render/Pixel.js +22 -5
  168. package/lib/cjs/render/Pixel.js.map +1 -1
  169. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +1 -0
  170. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -1
  171. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
  172. package/lib/cjs/render/RenderMemory.d.ts +2 -0
  173. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  174. package/lib/cjs/render/RenderMemory.js +2 -0
  175. package/lib/cjs/render/RenderMemory.js.map +1 -1
  176. package/lib/cjs/render/RenderPlan.d.ts +2 -1
  177. package/lib/cjs/render/RenderPlan.d.ts.map +1 -1
  178. package/lib/cjs/render/RenderPlan.js +5 -3
  179. package/lib/cjs/render/RenderPlan.js.map +1 -1
  180. package/lib/cjs/render/RenderSystem.d.ts +1 -1
  181. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  182. package/lib/cjs/render/RenderSystem.js +8 -9
  183. package/lib/cjs/render/RenderSystem.js.map +1 -1
  184. package/lib/cjs/render/UpsampleRealityMeshParams.js +1 -2
  185. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
  186. package/lib/cjs/render/VisibleFeature.js +1 -2
  187. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  188. package/lib/cjs/render/webgl/AttributeBuffers.js +5 -5
  189. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  190. package/lib/cjs/render/webgl/BatchUniforms.d.ts +4 -0
  191. package/lib/cjs/render/webgl/BatchUniforms.d.ts.map +1 -1
  192. package/lib/cjs/render/webgl/BatchUniforms.js +18 -0
  193. package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
  194. package/lib/cjs/render/webgl/BranchState.d.ts +9 -0
  195. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  196. package/lib/cjs/render/webgl/BranchState.js +6 -0
  197. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  198. package/lib/cjs/render/webgl/BranchUniforms.d.ts +1 -0
  199. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  200. package/lib/cjs/render/webgl/BranchUniforms.js +14 -1
  201. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  202. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  203. package/lib/cjs/render/webgl/ClippingProgram.js +2 -2
  204. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  205. package/lib/cjs/render/webgl/ContourUniforms.d.ts +22 -0
  206. package/lib/cjs/render/webgl/ContourUniforms.d.ts.map +1 -0
  207. package/lib/cjs/render/webgl/ContourUniforms.js +98 -0
  208. package/lib/cjs/render/webgl/ContourUniforms.js.map +1 -0
  209. package/lib/cjs/render/webgl/Contours.d.ts +34 -0
  210. package/lib/cjs/render/webgl/Contours.d.ts.map +1 -0
  211. package/lib/cjs/render/webgl/Contours.js +127 -0
  212. package/lib/cjs/render/webgl/Contours.js.map +1 -0
  213. package/lib/cjs/render/webgl/DrawCommand.js +3 -3
  214. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  215. package/lib/cjs/render/webgl/EdgeSettings.js +1 -1
  216. package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
  217. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -0
  218. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  219. package/lib/cjs/render/webgl/FeatureOverrides.js +48 -51
  220. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  221. package/lib/cjs/render/webgl/FrustumUniforms.js +2 -2
  222. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  223. package/lib/cjs/render/webgl/GL.d.ts +2 -1
  224. package/lib/cjs/render/webgl/GL.d.ts.map +1 -1
  225. package/lib/cjs/render/webgl/GL.js +1 -0
  226. package/lib/cjs/render/webgl/GL.js.map +1 -1
  227. package/lib/cjs/render/webgl/Graphic.d.ts +12 -0
  228. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  229. package/lib/cjs/render/webgl/Graphic.js +31 -0
  230. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  231. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -2
  232. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  233. package/lib/cjs/render/webgl/Material.js +4 -4
  234. package/lib/cjs/render/webgl/Material.js.map +1 -1
  235. package/lib/cjs/render/webgl/Matrix.js +3 -3
  236. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  237. package/lib/cjs/render/webgl/RealityMesh.js +1 -1
  238. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  239. package/lib/cjs/render/webgl/RenderFlags.d.ts +2 -1
  240. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  241. package/lib/cjs/render/webgl/RenderFlags.js +4 -2
  242. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  243. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  244. package/lib/cjs/render/webgl/SceneCompositor.js +19 -7
  245. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  246. package/lib/cjs/render/webgl/ScratchDrawParams.js +2 -3
  247. package/lib/cjs/render/webgl/ScratchDrawParams.js.map +1 -1
  248. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +2 -2
  249. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  250. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +15 -13
  251. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  252. package/lib/cjs/render/webgl/ShaderBuilder.js +18 -10
  253. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  254. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  255. package/lib/cjs/render/webgl/ShaderProgram.js +26 -0
  256. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  257. package/lib/cjs/render/webgl/SurfaceGeometry.js +2 -2
  258. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  259. package/lib/cjs/render/webgl/Sync.js +3 -4
  260. package/lib/cjs/render/webgl/Sync.js.map +1 -1
  261. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  262. package/lib/cjs/render/webgl/System.js +7 -7
  263. package/lib/cjs/render/webgl/System.js.map +1 -1
  264. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  265. package/lib/cjs/render/webgl/Target.js +2 -1
  266. package/lib/cjs/render/webgl/Target.js.map +1 -1
  267. package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
  268. package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
  269. package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
  270. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  271. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  272. package/lib/cjs/render/webgl/TechniqueId.js +1 -2
  273. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  274. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  275. package/lib/cjs/render/webgl/Texture.js +2 -2
  276. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  277. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  278. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +2 -3
  279. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  280. package/lib/cjs/render/webgl/glsl/Animation.js +1 -2
  281. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  282. package/lib/cjs/render/webgl/glsl/Atmosphere.js +2 -3
  283. package/lib/cjs/render/webgl/glsl/Atmosphere.js.map +1 -1
  284. package/lib/cjs/render/webgl/glsl/Blur.js +2 -3
  285. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  286. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -3
  287. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  288. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -3
  289. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  290. package/lib/cjs/render/webgl/glsl/Clipping.js +3 -3
  291. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  292. package/lib/cjs/render/webgl/glsl/Color.js +2 -3
  293. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  294. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +2 -3
  295. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  296. package/lib/cjs/render/webgl/glsl/CombineTextures.js +2 -3
  297. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  298. package/lib/cjs/render/webgl/glsl/Common.js +7 -7
  299. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  300. package/lib/cjs/render/webgl/glsl/Composite.js +2 -3
  301. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  302. package/lib/cjs/render/webgl/glsl/Contours.d.ts +4 -0
  303. package/lib/cjs/render/webgl/glsl/Contours.d.ts.map +1 -0
  304. package/lib/cjs/render/webgl/glsl/Contours.js +137 -0
  305. package/lib/cjs/render/webgl/glsl/Contours.js.map +1 -0
  306. package/lib/cjs/render/webgl/glsl/CopyColor.js +2 -3
  307. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  308. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -3
  309. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  310. package/lib/cjs/render/webgl/glsl/CopyStencil.js +9 -10
  311. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  312. package/lib/cjs/render/webgl/glsl/Decode.js +2 -2
  313. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  314. package/lib/cjs/render/webgl/glsl/EDL.js +8 -9
  315. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  316. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -3
  317. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  318. package/lib/cjs/render/webgl/glsl/Edge.js +3 -4
  319. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  320. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
  321. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +35 -28
  323. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  324. package/lib/cjs/render/webgl/glsl/Fragment.js +15 -15
  325. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  326. package/lib/cjs/render/webgl/glsl/Instancing.js +3 -4
  327. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  328. package/lib/cjs/render/webgl/glsl/Lighting.js +1 -2
  329. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  330. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +2 -3
  331. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  332. package/lib/cjs/render/webgl/glsl/LookupTable.js +1 -2
  333. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  334. package/lib/cjs/render/webgl/glsl/Monochrome.js +2 -3
  335. package/lib/cjs/render/webgl/glsl/Monochrome.js.map +1 -1
  336. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +9 -9
  337. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  338. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +1 -1
  339. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  340. package/lib/cjs/render/webgl/glsl/PointCloud.js +3 -4
  341. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  342. package/lib/cjs/render/webgl/glsl/PointString.js +2 -3
  343. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  344. package/lib/cjs/render/webgl/glsl/Polyline.js +6 -6
  345. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  346. package/lib/cjs/render/webgl/glsl/RealityMesh.js +8 -8
  347. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  348. package/lib/cjs/render/webgl/glsl/RenderPass.js +1 -2
  349. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  350. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -3
  351. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  352. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -3
  353. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  354. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -3
  355. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  356. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +4 -4
  357. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  358. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  359. package/lib/cjs/render/webgl/glsl/Surface.js +11 -9
  360. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  361. package/lib/cjs/render/webgl/glsl/Thematic.js +2 -3
  362. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  363. package/lib/cjs/render/webgl/glsl/Translucency.js +3 -3
  364. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  365. package/lib/cjs/render/webgl/glsl/Vertex.js +13 -13
  366. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  367. package/lib/cjs/render/webgl/glsl/Viewport.js +3 -4
  368. package/lib/cjs/render/webgl/glsl/Viewport.js.map +1 -1
  369. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -2
  370. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  371. package/lib/cjs/render/webgl/glsl/Wiremesh.js +2 -3
  372. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  373. package/lib/cjs/request/Request.d.ts.map +1 -1
  374. package/lib/cjs/request/Request.js +2 -2
  375. package/lib/cjs/request/Request.js.map +1 -1
  376. package/lib/cjs/request/utils.js +3 -4
  377. package/lib/cjs/request/utils.js.map +1 -1
  378. package/lib/cjs/tile/ClassifierTileTree.js +3 -3
  379. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  380. package/lib/cjs/tile/ContextShareProvider.js +2 -2
  381. package/lib/cjs/tile/ContextShareProvider.js.map +1 -1
  382. package/lib/cjs/tile/GltfReader.d.ts +1 -1
  383. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  384. package/lib/cjs/tile/GltfReader.js +18 -16
  385. package/lib/cjs/tile/GltfReader.js.map +1 -1
  386. package/lib/cjs/tile/IModelTile.js +2 -2
  387. package/lib/cjs/tile/IModelTile.js.map +1 -1
  388. package/lib/cjs/tile/IModelTileTree.js +2 -2
  389. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  390. package/lib/cjs/tile/ImdlDecoder.js +1 -2
  391. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  392. package/lib/cjs/tile/ImdlGraphicsCreator.js +7 -8
  393. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  394. package/lib/cjs/tile/ImdlParser.js +1 -2
  395. package/lib/cjs/tile/ImdlParser.js.map +1 -1
  396. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  397. package/lib/cjs/tile/ImdlReader.js +3 -3
  398. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  399. package/lib/cjs/tile/MeshoptCompression.js +1 -2
  400. package/lib/cjs/tile/MeshoptCompression.js.map +1 -1
  401. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  402. package/lib/cjs/tile/OrbitGtTileTree.js +3 -4
  403. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  404. package/lib/cjs/tile/PntsReader.js +2 -3
  405. package/lib/cjs/tile/PntsReader.js.map +1 -1
  406. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  407. package/lib/cjs/tile/PrimaryTileTree.js +12 -12
  408. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  409. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  410. package/lib/cjs/tile/RealityModelTileTree.js +3 -4
  411. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  412. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  413. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  414. package/lib/cjs/tile/RealityTileLoader.js +1 -1
  415. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  416. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  417. package/lib/cjs/tile/RenderGraphicTileTree.js +1 -2
  418. package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
  419. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +1 -1
  420. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  421. package/lib/cjs/tile/Tile.js +2 -2
  422. package/lib/cjs/tile/Tile.js.map +1 -1
  423. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  424. package/lib/cjs/tile/TileAdmin.js +3 -4
  425. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  426. package/lib/cjs/tile/TileDrawArgs.d.ts +4 -0
  427. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  428. package/lib/cjs/tile/TileDrawArgs.js +2 -0
  429. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  430. package/lib/cjs/tile/TileRequest.js +1 -1
  431. package/lib/cjs/tile/TileRequest.js.map +1 -1
  432. package/lib/cjs/tile/TileRequestChannel.js +1 -1
  433. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  434. package/lib/cjs/tile/TileStorage.js +1 -1
  435. package/lib/cjs/tile/TileStorage.js.map +1 -1
  436. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  437. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  438. package/lib/cjs/tile/TileTreeReference.js +3 -0
  439. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  440. package/lib/cjs/tile/ViewFlagOverrides.js +1 -2
  441. package/lib/cjs/tile/ViewFlagOverrides.js.map +1 -1
  442. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -1
  443. package/lib/cjs/tile/map/ArcGISTileMap.js +0 -1
  444. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  445. package/lib/cjs/tile/map/ArcGisUtilities.js +1 -1
  446. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  447. package/lib/cjs/tile/map/BingElevation.js +3 -3
  448. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  449. package/lib/cjs/tile/map/CesiumTerrainProvider.js +7 -8
  450. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  451. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -1
  452. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  453. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  454. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +4 -5
  455. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  456. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js +1 -2
  457. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  458. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +1 -1
  459. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  460. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  461. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  462. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  463. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +2 -2
  464. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  465. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  466. package/lib/cjs/tile/map/MapTile.js +1 -1
  467. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  468. package/lib/cjs/tile/map/MapTileLoader.js +1 -1
  469. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  470. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  471. package/lib/cjs/tile/map/MapTileTree.js +2 -2
  472. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  473. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  474. package/lib/cjs/tile/map/MapTilingScheme.js +4 -0
  475. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  476. package/lib/cjs/tile/map/UrlUtils.js +1 -2
  477. package/lib/cjs/tile/map/UrlUtils.js.map +1 -1
  478. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  479. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  480. package/lib/cjs/tools/MeasureTool.js +2 -2
  481. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  482. package/lib/cjs/tools/Tool.d.ts +1 -1
  483. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  484. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  485. package/lib/cjs/tools/ViewTool.js +2 -2
  486. package/lib/cjs/tools/ViewTool.js.map +1 -1
  487. package/lib/cjs/workers/RegisterWorker.js +1 -2
  488. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  489. package/lib/esm/AccuDraw.d.ts.map +1 -1
  490. package/lib/esm/AccuDraw.js +0 -2
  491. package/lib/esm/AccuDraw.js.map +1 -1
  492. package/lib/esm/AccuSnap.d.ts.map +1 -1
  493. package/lib/esm/AccuSnap.js +17 -8
  494. package/lib/esm/AccuSnap.js.map +1 -1
  495. package/lib/esm/BingLocation.js +1 -1
  496. package/lib/esm/BingLocation.js.map +1 -1
  497. package/lib/esm/BriefcaseConnection.d.ts +0 -1
  498. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  499. package/lib/esm/BriefcaseConnection.js +2 -3
  500. package/lib/esm/BriefcaseConnection.js.map +1 -1
  501. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  502. package/lib/esm/ChangeFlags.d.ts +1 -1
  503. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  504. package/lib/esm/ChangeFlags.js.map +1 -1
  505. package/lib/esm/CheckpointConnection.js +1 -1
  506. package/lib/esm/CheckpointConnection.js.map +1 -1
  507. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  508. package/lib/esm/DisplayStyleState.js +6 -6
  509. package/lib/esm/DisplayStyleState.js.map +1 -1
  510. package/lib/esm/DrawingViewState.d.ts +8 -6
  511. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  512. package/lib/esm/DrawingViewState.js +20 -10
  513. package/lib/esm/DrawingViewState.js.map +1 -1
  514. package/lib/esm/EnvironmentDecorations.js +1 -1
  515. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  516. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  517. package/lib/esm/HitDetail.d.ts +37 -5
  518. package/lib/esm/HitDetail.d.ts.map +1 -1
  519. package/lib/esm/HitDetail.js +12 -2
  520. package/lib/esm/HitDetail.js.map +1 -1
  521. package/lib/esm/IModelApp.d.ts.map +1 -1
  522. package/lib/esm/IModelApp.js +1 -2
  523. package/lib/esm/IModelApp.js.map +1 -1
  524. package/lib/esm/IModelConnection.d.ts +1 -0
  525. package/lib/esm/IModelConnection.d.ts.map +1 -1
  526. package/lib/esm/IModelConnection.js +9 -8
  527. package/lib/esm/IModelConnection.js.map +1 -1
  528. package/lib/esm/IpcApp.d.ts.map +1 -1
  529. package/lib/esm/IpcApp.js +8 -1
  530. package/lib/esm/IpcApp.js.map +1 -1
  531. package/lib/esm/ModelState.d.ts +0 -8
  532. package/lib/esm/ModelState.d.ts.map +1 -1
  533. package/lib/esm/ModelState.js +0 -8
  534. package/lib/esm/ModelState.js.map +1 -1
  535. package/lib/esm/NativeApp.d.ts +1 -1
  536. package/lib/esm/NativeApp.d.ts.map +1 -1
  537. package/lib/esm/NativeApp.js.map +1 -1
  538. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  539. package/lib/esm/NotificationManager.d.ts +2 -2
  540. package/lib/esm/NotificationManager.d.ts.map +1 -1
  541. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  542. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +1 -2
  543. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  544. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -1
  545. package/lib/esm/RealityDataSourceContextShareImpl.js +2 -3
  546. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  547. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +1 -1
  548. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  549. package/lib/esm/SheetViewState.d.ts +4 -11
  550. package/lib/esm/SheetViewState.d.ts.map +1 -1
  551. package/lib/esm/SheetViewState.js +18 -12
  552. package/lib/esm/SheetViewState.js.map +1 -1
  553. package/lib/esm/SpatialViewState.d.ts +0 -1
  554. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  555. package/lib/esm/SpatialViewState.js +1 -2
  556. package/lib/esm/SpatialViewState.js.map +1 -1
  557. package/lib/esm/SubCategoriesCache.js +1 -1
  558. package/lib/esm/SubCategoriesCache.js.map +1 -1
  559. package/lib/esm/TentativePoint.js +1 -1
  560. package/lib/esm/TentativePoint.js.map +1 -1
  561. package/lib/esm/ViewCreator3d.js +1 -1
  562. package/lib/esm/ViewCreator3d.js.map +1 -1
  563. package/lib/esm/ViewState.d.ts +14 -1
  564. package/lib/esm/ViewState.d.ts.map +1 -1
  565. package/lib/esm/ViewState.js +4 -2
  566. package/lib/esm/ViewState.js.map +1 -1
  567. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  568. package/lib/esm/ViewingSpace.js +3 -0
  569. package/lib/esm/ViewingSpace.js.map +1 -1
  570. package/lib/esm/Viewport.d.ts.map +1 -1
  571. package/lib/esm/Viewport.js +2 -4
  572. package/lib/esm/Viewport.js.map +1 -1
  573. package/lib/esm/common/WorkerProxy.d.ts +8 -4
  574. package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
  575. package/lib/esm/common/WorkerProxy.js.map +1 -1
  576. package/lib/esm/common/gltf/GltfParser.js +6 -6
  577. package/lib/esm/common/gltf/GltfParser.js.map +1 -1
  578. package/lib/esm/common/gltf/GltfSchema.d.ts +1 -1
  579. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  580. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  581. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  582. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  583. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  584. package/lib/esm/common/imdl/ParseImdlDocument.js +4 -5
  585. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  586. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
  587. package/lib/esm/common/internal/render/GeometryList.d.ts +1 -1
  588. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
  589. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
  590. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  591. package/lib/esm/common/internal/render/OvrFlags.d.ts +4 -2
  592. package/lib/esm/common/internal/render/OvrFlags.d.ts.map +1 -1
  593. package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
  594. package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -1
  595. package/lib/esm/common/internal/render/VertexTable.js +3 -5
  596. package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
  597. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
  598. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  599. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +1 -1
  600. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  601. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js +2 -2
  602. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  603. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -1
  604. package/lib/esm/render/GraphicBranch.d.ts +12 -1
  605. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  606. package/lib/esm/render/GraphicBranch.js.map +1 -1
  607. package/lib/esm/render/MockRender.d.ts.map +1 -1
  608. package/lib/esm/render/Pixel.d.ts +14 -4
  609. package/lib/esm/render/Pixel.d.ts.map +1 -1
  610. package/lib/esm/render/Pixel.js +22 -5
  611. package/lib/esm/render/Pixel.js.map +1 -1
  612. package/lib/esm/render/RealityMeshGraphicParams.d.ts +1 -0
  613. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -1
  614. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
  615. package/lib/esm/render/RenderMemory.d.ts +2 -0
  616. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  617. package/lib/esm/render/RenderMemory.js +2 -0
  618. package/lib/esm/render/RenderMemory.js.map +1 -1
  619. package/lib/esm/render/RenderPlan.d.ts +2 -1
  620. package/lib/esm/render/RenderPlan.d.ts.map +1 -1
  621. package/lib/esm/render/RenderPlan.js +2 -0
  622. package/lib/esm/render/RenderPlan.js.map +1 -1
  623. package/lib/esm/render/RenderSystem.d.ts +1 -1
  624. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  625. package/lib/esm/render/RenderSystem.js +8 -9
  626. package/lib/esm/render/RenderSystem.js.map +1 -1
  627. package/lib/esm/render/webgl/BatchUniforms.d.ts +4 -0
  628. package/lib/esm/render/webgl/BatchUniforms.d.ts.map +1 -1
  629. package/lib/esm/render/webgl/BatchUniforms.js +18 -0
  630. package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
  631. package/lib/esm/render/webgl/BranchState.d.ts +9 -0
  632. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  633. package/lib/esm/render/webgl/BranchState.js +6 -0
  634. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  635. package/lib/esm/render/webgl/BranchUniforms.d.ts +1 -0
  636. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  637. package/lib/esm/render/webgl/BranchUniforms.js +14 -1
  638. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  639. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  640. package/lib/esm/render/webgl/ContourUniforms.d.ts +22 -0
  641. package/lib/esm/render/webgl/ContourUniforms.d.ts.map +1 -0
  642. package/lib/esm/render/webgl/ContourUniforms.js +94 -0
  643. package/lib/esm/render/webgl/ContourUniforms.js.map +1 -0
  644. package/lib/esm/render/webgl/Contours.d.ts +34 -0
  645. package/lib/esm/render/webgl/Contours.d.ts.map +1 -0
  646. package/lib/esm/render/webgl/Contours.js +123 -0
  647. package/lib/esm/render/webgl/Contours.js.map +1 -0
  648. package/lib/esm/render/webgl/EdgeSettings.js +1 -1
  649. package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
  650. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -0
  651. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  652. package/lib/esm/render/webgl/FeatureOverrides.js +46 -49
  653. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  654. package/lib/esm/render/webgl/GL.d.ts +2 -1
  655. package/lib/esm/render/webgl/GL.d.ts.map +1 -1
  656. package/lib/esm/render/webgl/GL.js +1 -0
  657. package/lib/esm/render/webgl/GL.js.map +1 -1
  658. package/lib/esm/render/webgl/Graphic.d.ts +12 -0
  659. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  660. package/lib/esm/render/webgl/Graphic.js +31 -0
  661. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  662. package/lib/esm/render/webgl/Material.js +2 -2
  663. package/lib/esm/render/webgl/Material.js.map +1 -1
  664. package/lib/esm/render/webgl/RealityMesh.js +1 -1
  665. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  666. package/lib/esm/render/webgl/RenderFlags.d.ts +2 -1
  667. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  668. package/lib/esm/render/webgl/RenderFlags.js +2 -0
  669. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  670. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  671. package/lib/esm/render/webgl/SceneCompositor.js +16 -4
  672. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  673. package/lib/esm/render/webgl/ShaderBuilder.d.ts +15 -13
  674. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  675. package/lib/esm/render/webgl/ShaderBuilder.js +18 -10
  676. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  677. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  678. package/lib/esm/render/webgl/ShaderProgram.js +26 -0
  679. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  680. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  681. package/lib/esm/render/webgl/System.js +7 -7
  682. package/lib/esm/render/webgl/System.js.map +1 -1
  683. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  684. package/lib/esm/render/webgl/Target.js +2 -1
  685. package/lib/esm/render/webgl/Target.js.map +1 -1
  686. package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
  687. package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
  688. package/lib/esm/render/webgl/TargetUniforms.js +2 -0
  689. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  690. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  691. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  692. package/lib/esm/render/webgl/Texture.js +2 -2
  693. package/lib/esm/render/webgl/Texture.js.map +1 -1
  694. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  695. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
  696. package/lib/esm/render/webgl/glsl/Atmosphere.js +1 -1
  697. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  698. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +1 -1
  699. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +1 -1
  700. package/lib/esm/render/webgl/glsl/Clipping.js +1 -1
  701. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  702. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  703. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  704. package/lib/esm/render/webgl/glsl/Contours.d.ts +4 -0
  705. package/lib/esm/render/webgl/glsl/Contours.d.ts.map +1 -0
  706. package/lib/esm/render/webgl/glsl/Contours.js +134 -0
  707. package/lib/esm/render/webgl/glsl/Contours.js.map +1 -0
  708. package/lib/esm/render/webgl/glsl/CopyColor.js +1 -1
  709. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +1 -1
  710. package/lib/esm/render/webgl/glsl/CopyStencil.js +5 -5
  711. package/lib/esm/render/webgl/glsl/EDL.js +4 -4
  712. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
  713. package/lib/esm/render/webgl/glsl/Edge.js +1 -1
  714. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
  715. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  716. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +21 -15
  717. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  718. package/lib/esm/render/webgl/glsl/Fragment.js +9 -9
  719. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  720. package/lib/esm/render/webgl/glsl/PlanarClassification.js +4 -4
  721. package/lib/esm/render/webgl/glsl/PointCloud.js +1 -1
  722. package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -3
  723. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  724. package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
  725. package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
  726. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
  727. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  728. package/lib/esm/render/webgl/glsl/Surface.js +5 -3
  729. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  730. package/lib/esm/render/webgl/glsl/Translucency.js +1 -1
  731. package/lib/esm/render/webgl/glsl/Wiremesh.js +1 -1
  732. package/lib/esm/request/Request.d.ts.map +1 -1
  733. package/lib/esm/request/Request.js.map +1 -1
  734. package/lib/esm/tile/ClassifierTileTree.js +1 -1
  735. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  736. package/lib/esm/tile/ContextShareProvider.js +2 -2
  737. package/lib/esm/tile/ContextShareProvider.js.map +1 -1
  738. package/lib/esm/tile/GltfReader.d.ts +1 -1
  739. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  740. package/lib/esm/tile/GltfReader.js +14 -12
  741. package/lib/esm/tile/GltfReader.js.map +1 -1
  742. package/lib/esm/tile/ImdlGraphicsCreator.js +4 -4
  743. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  744. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  745. package/lib/esm/tile/ImdlReader.js.map +1 -1
  746. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  747. package/lib/esm/tile/OrbitGtTileTree.js +1 -2
  748. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  749. package/lib/esm/tile/PntsReader.js +1 -1
  750. package/lib/esm/tile/PntsReader.js.map +1 -1
  751. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  752. package/lib/esm/tile/PrimaryTileTree.js +6 -6
  753. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  754. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  755. package/lib/esm/tile/RealityModelTileTree.js +1 -2
  756. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  757. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  758. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  759. package/lib/esm/tile/RealityTileLoader.js +1 -1
  760. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  761. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  762. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +1 -1
  763. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  764. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  765. package/lib/esm/tile/TileAdmin.js +1 -2
  766. package/lib/esm/tile/TileAdmin.js.map +1 -1
  767. package/lib/esm/tile/TileDrawArgs.d.ts +4 -0
  768. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  769. package/lib/esm/tile/TileDrawArgs.js +2 -0
  770. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  771. package/lib/esm/tile/TileRequest.js +1 -1
  772. package/lib/esm/tile/TileRequest.js.map +1 -1
  773. package/lib/esm/tile/TileRequestChannel.js +1 -1
  774. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  775. package/lib/esm/tile/TileStorage.js +1 -1
  776. package/lib/esm/tile/TileStorage.js.map +1 -1
  777. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  778. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  779. package/lib/esm/tile/TileTreeReference.js +3 -0
  780. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  781. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -1
  782. package/lib/esm/tile/map/ArcGISTileMap.js +0 -1
  783. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  784. package/lib/esm/tile/map/ArcGisUtilities.js +1 -1
  785. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  786. package/lib/esm/tile/map/BingElevation.js +3 -3
  787. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  788. package/lib/esm/tile/map/CesiumTerrainProvider.js +3 -3
  789. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  790. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -1
  791. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  792. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  793. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +4 -5
  794. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  795. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +1 -1
  796. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  797. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  798. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  799. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  800. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  801. package/lib/esm/tile/map/MapTile.js +1 -1
  802. package/lib/esm/tile/map/MapTile.js.map +1 -1
  803. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  804. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  805. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  806. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  807. package/lib/esm/tile/map/MapTilingScheme.js +4 -0
  808. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  809. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  810. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  811. package/lib/esm/tools/MeasureTool.js +2 -2
  812. package/lib/esm/tools/MeasureTool.js.map +1 -1
  813. package/lib/esm/tools/Tool.d.ts +1 -1
  814. package/lib/esm/tools/Tool.d.ts.map +1 -1
  815. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  816. package/lib/esm/tools/ViewTool.js +2 -2
  817. package/lib/esm/tools/ViewTool.js.map +1 -1
  818. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  819. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  820. package/package.json +30 -36
@@ -1 +1 @@
1
- {"version":3,"file":"RenderInstancesParamsImpl.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderInstancesParamsImpl.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;AAGH,2DAA0E;AAC1E,uFAAmF;AAEnF,4GAAyG;AACzG,oDAAsE;AAkBtE,MAAM,OAAO;IAMX,YAAmB,OAAoB;QALvB,QAA2B,GAAG,SAAS,CAAC;QACvC,eAAU,GAAG,IAAI,2DAA4B,EAAE,CAAC;QAEzD,sBAAiB,GAAG,KAAK,CAAC;QAGhC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAEM,GAAG,CAAC,QAAkB;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,SAAS,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAEM,MAAM;QACX,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5C,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,YAAY,CAAC;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,YAAY,GAAG,IAAI,0BAAY,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,MAAM,GAA8B;YACxC,CAAC,mCAAyB,CAAC,EAAE,uBAAuB;YACpD,SAAS;SACV,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,gCAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1D,MAAM,CAAC,QAAQ,GAAG;gBAChB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,WAAW,CAAC,YAAY;gBACjC,KAAK,EAAE,WAAW,CAAC,WAAW;aAC/B,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;KA7CkB,mCAAyB;AA+C5C,SAAgB,kCAAkC,CAAC,IAA4C;IAC7F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAFD,gFAEC;AAED,SAAgB,yCAAyC,CAAC,KAAwB,EAAE,QAA+B;IACjH,MAAM,MAAM,GAAG,QAAqC,CAAC;IACrD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,8CAAqB,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AATD,8FASC","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 Rendering\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { _implementationProhibited } from \"../../common/internal/Symbols\";\r\nimport { InstancedGraphicProps } from \"../../common/render/InstancedGraphicParams\";\r\nimport { CreateRenderInstancesParamsBuilderArgs, Instance, RenderInstancesParams, RenderInstancesParamsBuilder } from \"../../common/render/RenderInstancesParams\";\r\nimport { InstancedGraphicPropsBuilder } from \"../../common/internal/render/InstancedGraphicPropsBuilder\";\r\nimport { FeatureTable, PackedFeatureTable } from \"@itwin/core-common\";\r\n\r\n/** Intermediate representation of `RenderInstances[_batch]`. */\r\nexport interface InstancedFeaturesParams {\r\n modelId: Id64String;\r\n data: Uint32Array;\r\n count: number;\r\n}\r\n\r\n/** This exists so that [[RenderInstancesParams]] can be an opaque type that can be copied between Workers.\r\n * (`Symbol`s are dropped during structured cloning).\r\n */\r\nexport interface RenderInstancesParamsImpl extends RenderInstancesParams {\r\n [_implementationProhibited]: \"renderInstancesParams\";\r\n instances: InstancedGraphicProps;\r\n features?: InstancedFeaturesParams;\r\n}\r\n\r\nclass Builder implements RenderInstancesParamsBuilder {\r\n public readonly [_implementationProhibited] = undefined;\r\n private readonly _instances = new InstancedGraphicPropsBuilder();\r\n private readonly _modelId?: Id64String;\r\n private _containsFeatures = false;\r\n\r\n public constructor(modelId?: Id64String) {\r\n this._modelId = modelId;\r\n }\r\n\r\n public add(instance: Instance): void {\r\n this._instances.add(instance);\r\n\r\n if (undefined !== instance.feature) {\r\n this._containsFeatures = true;\r\n }\r\n }\r\n\r\n public finish(): RenderInstancesParams {\r\n const numInstances = this._instances.length;\r\n if (numInstances === 0) {\r\n throw new Error(\"No instances defined\");\r\n }\r\n\r\n let featureTable;\r\n if (this._containsFeatures) {\r\n featureTable = new FeatureTable(numInstances, this._modelId);\r\n }\r\n\r\n const instances = this._instances.finish(featureTable);\r\n const result: RenderInstancesParamsImpl = {\r\n [_implementationProhibited]: \"renderInstancesParams\",\r\n instances,\r\n };\r\n\r\n if (featureTable) {\r\n const packedTable = PackedFeatureTable.pack(featureTable);\r\n result.features = {\r\n data: packedTable.data,\r\n modelId: packedTable.batchModelId,\r\n count: packedTable.numFeatures,\r\n };\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport function createRenderInstancesParamsBuilder(args: CreateRenderInstancesParamsBuilderArgs): RenderInstancesParamsBuilder {\r\n return new Builder(args.modelId);\r\n}\r\n\r\nexport function collectRenderInstancesParamsTransferables(xfers: Set<Transferable>, inParams: RenderInstancesParams): void {\r\n const params = inParams as RenderInstancesParamsImpl;\r\n if (params.instances) {\r\n InstancedGraphicProps.collectTransferables(xfers, params.instances);\r\n }\r\n\r\n if (params.features) {\r\n xfers.add(params.features.data.buffer);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RenderInstancesParamsImpl.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderInstancesParamsImpl.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAyEH,gFAEC;AAED,8FASC;AAnFD,2DAA0E;AAC1E,uFAAmF;AAEnF,4GAAyG;AACzG,oDAAsE;AAkBtE,MAAM,OAAO;IAMX,YAAmB,OAAoB;QALvB,QAA2B,GAAG,SAAS,CAAC;QACvC,eAAU,GAAG,IAAI,2DAA4B,EAAE,CAAC;QAEzD,sBAAiB,GAAG,KAAK,CAAC;QAGhC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAEM,GAAG,CAAC,QAAkB;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,SAAS,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAEM,MAAM;QACX,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5C,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,YAAY,CAAC;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,YAAY,GAAG,IAAI,0BAAY,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,MAAM,GAA8B;YACxC,CAAC,mCAAyB,CAAC,EAAE,uBAAuB;YACpD,SAAS;SACV,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,gCAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1D,MAAM,CAAC,QAAQ,GAAG;gBAChB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,WAAW,CAAC,YAAY;gBACjC,KAAK,EAAE,WAAW,CAAC,WAAW;aAC/B,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;KA7CkB,mCAAyB;AA+C5C,SAAgB,kCAAkC,CAAC,IAA4C;IAC7F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,yCAAyC,CAAC,KAAwB,EAAE,QAA+B;IACjH,MAAM,MAAM,GAAG,QAAqC,CAAC;IACrD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,8CAAqB,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;AACH,CAAC","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 Rendering\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { _implementationProhibited } from \"../../common/internal/Symbols\";\r\nimport { InstancedGraphicProps } from \"../../common/render/InstancedGraphicParams\";\r\nimport { CreateRenderInstancesParamsBuilderArgs, Instance, RenderInstancesParams, RenderInstancesParamsBuilder } from \"../../common/render/RenderInstancesParams\";\r\nimport { InstancedGraphicPropsBuilder } from \"../../common/internal/render/InstancedGraphicPropsBuilder\";\r\nimport { FeatureTable, PackedFeatureTable } from \"@itwin/core-common\";\r\n\r\n/** Intermediate representation of `RenderInstances[_batch]`. */\r\nexport interface InstancedFeaturesParams {\r\n modelId: Id64String;\r\n data: Uint32Array;\r\n count: number;\r\n}\r\n\r\n/** This exists so that [[RenderInstancesParams]] can be an opaque type that can be copied between Workers.\r\n * (`Symbol`s are dropped during structured cloning).\r\n */\r\nexport interface RenderInstancesParamsImpl extends RenderInstancesParams {\r\n [_implementationProhibited]: \"renderInstancesParams\";\r\n instances: InstancedGraphicProps;\r\n features?: InstancedFeaturesParams;\r\n}\r\n\r\nclass Builder implements RenderInstancesParamsBuilder {\r\n public readonly [_implementationProhibited] = undefined;\r\n private readonly _instances = new InstancedGraphicPropsBuilder();\r\n private readonly _modelId?: Id64String;\r\n private _containsFeatures = false;\r\n\r\n public constructor(modelId?: Id64String) {\r\n this._modelId = modelId;\r\n }\r\n\r\n public add(instance: Instance): void {\r\n this._instances.add(instance);\r\n\r\n if (undefined !== instance.feature) {\r\n this._containsFeatures = true;\r\n }\r\n }\r\n\r\n public finish(): RenderInstancesParams {\r\n const numInstances = this._instances.length;\r\n if (numInstances === 0) {\r\n throw new Error(\"No instances defined\");\r\n }\r\n\r\n let featureTable;\r\n if (this._containsFeatures) {\r\n featureTable = new FeatureTable(numInstances, this._modelId);\r\n }\r\n\r\n const instances = this._instances.finish(featureTable);\r\n const result: RenderInstancesParamsImpl = {\r\n [_implementationProhibited]: \"renderInstancesParams\",\r\n instances,\r\n };\r\n\r\n if (featureTable) {\r\n const packedTable = PackedFeatureTable.pack(featureTable);\r\n result.features = {\r\n data: packedTable.data,\r\n modelId: packedTable.batchModelId,\r\n count: packedTable.numFeatures,\r\n };\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport function createRenderInstancesParamsBuilder(args: CreateRenderInstancesParamsBuilderArgs): RenderInstancesParamsBuilder {\r\n return new Builder(args.modelId);\r\n}\r\n\r\nexport function collectRenderInstancesParamsTransferables(xfers: Set<Transferable>, inParams: RenderInstancesParams): void {\r\n const params = inParams as RenderInstancesParamsImpl;\r\n if (params.instances) {\r\n InstancedGraphicProps.collectTransferables(xfers, params.instances);\r\n }\r\n\r\n if (params.features) {\r\n xfers.add(params.features.data.buffer);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseUnitFormattingSettingsProvider.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,+BAA+B,EAAE,mBAAmB,EAAE,kCAAkC,EAAE,iBAAiB,EAC3G,eAAe,EAAE,8BAA8B,EAChD,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,8BAAsB,kCAAmC,YAAW,8BAA8B;IASpF,OAAO,CAAC,kBAAkB;IAAqB,OAAO,CAAC,2BAA2B,CAAC;IAR/F,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAE1D;;;;;OAKG;gBACiB,kBAAkB,EAAE,iBAAiB,EAAU,2BAA2B,CAAC,qBAAS;IAQxG,IAAW,0BAA0B,IAAI,OAAO,CAE/C;IAEM,oBAAoB,2CAAgD,kCAAkC,mBAwB3G;IAEF,wCAAwC;IACjC,sBAAsB,eAAoB,+BAA+B,mBAE9E;IAEW,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,SAAS,CAAC,wCAAwC,YAAmB,gBAAgB,mBAMnF;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,qBAAqB,CAI3B;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,SAAS,KAAK,gBAAgB,iCAE7B;IAED,iIAAiI;cACjH,+BAA+B;IA8B/C,uFAAuF;aACvE,KAAK,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAE7G,iGAAiG;aACjF,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,GAAC,SAAS,CAAC;IAElG,iEAAiE;aACjD,MAAM,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1E,yFAAyF;aACzE,kBAAkB,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAErF,gFAAgF;aAChE,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CACnF"}
1
+ {"version":3,"file":"BaseUnitFormattingSettingsProvider.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,+BAA+B,EAAE,mBAAmB,EAAE,kCAAkC,EAAE,iBAAiB,EAC3G,eAAe,EAAE,8BAA8B,EAChD,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,8BAAsB,kCAAmC,YAAW,8BAA8B;IASpF,OAAO,CAAC,kBAAkB;IAAqB,OAAO,CAAC,2BAA2B,CAAC;IAR/F,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAE1D;;;;;OAKG;gBACiB,kBAAkB,EAAE,iBAAiB,EAAU,2BAA2B,CAAC,EAAE,OAAO,YAAA;IAQxG,IAAW,0BAA0B,IAAI,OAAO,CAE/C;IAEM,oBAAoB,2CAAgD,kCAAkC,mBAwB3G;IAEF,wCAAwC;IACjC,sBAAsB,eAAoB,+BAA+B,mBAE9E;IAEW,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,SAAS,CAAC,wCAAwC,YAAmB,gBAAgB,mBAMnF;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,qBAAqB,CAI3B;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,SAAS,KAAK,gBAAgB,iCAE7B;IAED,iIAAiI;cACjH,+BAA+B;IA8B/C,uFAAuF;aACvE,KAAK,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAE7G,iGAAiG;aACjF,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,GAAC,SAAS,CAAC;IAElG,iEAAiE;aACjD,MAAM,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1E,yFAAyF;aACzE,kBAAkB,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAErF,gFAAgF;aAChE,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CACnF"}
@@ -95,7 +95,7 @@ class BaseUnitFormattingSettingsProvider {
95
95
  async buildQuantityFormatOverridesMap() {
96
96
  const overrideFormatProps = new Map();
97
97
  // use map and await all returned promises - overrides are stored by QuantityType
98
- for await (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {
98
+ for (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {
99
99
  const quantityTypeDef = this._quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);
100
100
  if (quantityTypeDef) {
101
101
  const typeKey = quantityTypeDef.key;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseUnitFormattingSettingsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.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 QuantityFormatting\r\n */\r\n\r\nimport { FormatProps, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { SelectedViewportChangedArgs } from \"../ViewManager\";\r\nimport {\r\n FormattingUnitSystemChangedArgs, OverrideFormatEntry, QuantityFormatOverridesChangedArgs, QuantityFormatter,\r\n QuantityTypeKey, UnitFormattingSettingsProvider,\r\n} from \"./QuantityFormatter\";\r\n\r\n/** This abstract class reacts to changes in the \"active\" iModel and updates the [[QuantityFormatter]] overrides and active\r\n * presentation unit system based on stored preferences. In addition, monitors the [[QuantityFormatter]] for changes to format overrides and the active\r\n * unit system and stores these changes. The \"active\" iModel is determined by listening to the `IModelApp.viewManager.onSelectedViewportChanged` event\r\n * and gets the iModel from the selected viewport.\r\n * @beta\r\n */\r\nexport abstract class BaseUnitFormattingSettingsProvider implements UnitFormattingSettingsProvider {\r\n protected _imodelConnection: IModelConnection | undefined;\r\n\r\n /**\r\n * @param maintainOverridesPerIModel If maintainOverridesPerIModel is true the base class will set up listeners\r\n * to monitor \"active\" iModel changes so the overrides for the QuantityFormatter properly match the overrides set\r\n * up by the user. If false then the overrides are maintained only per user.\r\n * @beta\r\n */\r\n constructor(private _quantityFormatter: QuantityFormatter, private _maintainOverridesPerIModel?: boolean) {\r\n if (this._maintainOverridesPerIModel) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(this.handleViewportChanged);\r\n IModelConnection.onOpen.addListener(this.handleIModelOpen);\r\n IModelConnection.onClose.addListener(this.handleIModelClose);\r\n }\r\n }\r\n\r\n public get maintainOverridesPerIModel(): boolean {\r\n return !!this._maintainOverridesPerIModel;\r\n }\r\n\r\n public storeFormatOverrides = async ({typeKey, overrideEntry, unitSystem}: QuantityFormatOverridesChangedArgs) => {\r\n if (undefined === overrideEntry) {\r\n // remove all overrides for quantity type\r\n if (undefined === unitSystem) {\r\n await this.remove (typeKey);\r\n return;\r\n }else {\r\n // remove only system specific overrides for quantity type\r\n const storedJson = await this.retrieve (typeKey);\r\n if (storedJson) {\r\n delete storedJson[unitSystem];\r\n if (Object.keys(storedJson).length) {\r\n await this.store (typeKey, storedJson);\r\n } else {\r\n await this.remove (typeKey);\r\n }\r\n }\r\n }\r\n } else {\r\n // setting a new override or set of overrides\r\n const storedJson = await this.retrieve (typeKey);\r\n const updatedFormat = {...storedJson, ...overrideEntry};\r\n await this.store (typeKey, updatedFormat);\r\n }\r\n };\r\n\r\n /** save UnitSystem for active iModel */\r\n public storeUnitSystemSetting = async ({system}: FormattingUnitSystemChangedArgs) => {\r\n await this.storeUnitSystemKey(system);\r\n };\r\n\r\n public async loadOverrides(imodel?: IModelConnection): Promise<void> {\r\n await this.applyQuantityFormattingSettingsForIModel(imodel);\r\n }\r\n\r\n protected applyQuantityFormattingSettingsForIModel = async (imodel?: IModelConnection) => {\r\n if (this._maintainOverridesPerIModel)\r\n this._imodelConnection = imodel;\r\n const overrideFormatProps = await this.buildQuantityFormatOverridesMap();\r\n const unitSystemKey = await this.retrieveUnitSystem (this._quantityFormatter.activeUnitSystem);\r\n await this._quantityFormatter.reinitializeFormatAndParsingsMaps(overrideFormatProps, unitSystemKey, true, true);\r\n };\r\n\r\n private handleIModelOpen = async (imodel: IModelConnection) => {\r\n await this.applyQuantityFormattingSettingsForIModel (imodel);\r\n };\r\n\r\n private handleViewportChanged = async (args: SelectedViewportChangedArgs) => {\r\n if(args.current?.iModel && (args.current?.iModel?.iModelId !== this.imodelConnection?.iModelId)) {\r\n await this.applyQuantityFormattingSettingsForIModel (args.current?.iModel);\r\n }\r\n };\r\n\r\n private handleIModelClose = async () => {\r\n this._imodelConnection = undefined;\r\n };\r\n\r\n protected get imodelConnection() {\r\n return this._imodelConnection;\r\n }\r\n\r\n /** function to convert from serialized JSON format for Quantity Type overrides to build a map compatible with QuantityManager */\r\n protected async buildQuantityFormatOverridesMap() {\r\n const overrideFormatProps = new Map<UnitSystemKey, Map<QuantityTypeKey, FormatProps>>();\r\n\r\n // use map and await all returned promises - overrides are stored by QuantityType\r\n for await (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {\r\n const quantityTypeDef = this._quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);\r\n if (quantityTypeDef) {\r\n const typeKey = quantityTypeDef.key;\r\n const overrideEntry = await this.retrieve (typeKey);\r\n if (overrideEntry) {\r\n // extract overrides and insert into appropriate override map entry\r\n Object.keys(overrideEntry).forEach ((systemKey) => {\r\n const unitSystemKey = systemKey as UnitSystemKey;\r\n const props = overrideEntry[unitSystemKey];\r\n if (props) {\r\n if (overrideFormatProps.has(unitSystemKey)) {\r\n overrideFormatProps.get(unitSystemKey)!.set(typeKey, props);\r\n } else {\r\n const newMap = new Map<string, FormatProps>();\r\n newMap.set(typeKey, props);\r\n overrideFormatProps.set(unitSystemKey, newMap);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return overrideFormatProps;\r\n }\r\n\r\n /** Serializes JSON object containing format overrides for a specific quantity type. */\r\n public abstract store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean>;\r\n\r\n /** Retrieves serialized JSON object containing format overrides for a specific quantity type. */\r\n public abstract retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined>;\r\n\r\n /** Removes the override formats for a specific quantity type. */\r\n public abstract remove(quantityTypeKey: QuantityTypeKey): Promise<boolean>;\r\n\r\n /** Retrieves the active unit system typically based on the \"active\" iModelConnection. */\r\n public abstract retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey>;\r\n\r\n /** Store the active unit system typically for the \"active\" iModelConnection. */\r\n public abstract storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean>;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"BaseUnitFormattingSettingsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.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 QuantityFormatting\r\n */\r\n\r\nimport { FormatProps, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { SelectedViewportChangedArgs } from \"../ViewManager\";\r\nimport {\r\n FormattingUnitSystemChangedArgs, OverrideFormatEntry, QuantityFormatOverridesChangedArgs, QuantityFormatter,\r\n QuantityTypeKey, UnitFormattingSettingsProvider,\r\n} from \"./QuantityFormatter\";\r\n\r\n/** This abstract class reacts to changes in the \"active\" iModel and updates the [[QuantityFormatter]] overrides and active\r\n * presentation unit system based on stored preferences. In addition, monitors the [[QuantityFormatter]] for changes to format overrides and the active\r\n * unit system and stores these changes. The \"active\" iModel is determined by listening to the `IModelApp.viewManager.onSelectedViewportChanged` event\r\n * and gets the iModel from the selected viewport.\r\n * @beta\r\n */\r\nexport abstract class BaseUnitFormattingSettingsProvider implements UnitFormattingSettingsProvider {\r\n protected _imodelConnection: IModelConnection | undefined;\r\n\r\n /**\r\n * @param maintainOverridesPerIModel If maintainOverridesPerIModel is true the base class will set up listeners\r\n * to monitor \"active\" iModel changes so the overrides for the QuantityFormatter properly match the overrides set\r\n * up by the user. If false then the overrides are maintained only per user.\r\n * @beta\r\n */\r\n constructor(private _quantityFormatter: QuantityFormatter, private _maintainOverridesPerIModel?: boolean) {\r\n if (this._maintainOverridesPerIModel) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(this.handleViewportChanged);\r\n IModelConnection.onOpen.addListener(this.handleIModelOpen);\r\n IModelConnection.onClose.addListener(this.handleIModelClose);\r\n }\r\n }\r\n\r\n public get maintainOverridesPerIModel(): boolean {\r\n return !!this._maintainOverridesPerIModel;\r\n }\r\n\r\n public storeFormatOverrides = async ({typeKey, overrideEntry, unitSystem}: QuantityFormatOverridesChangedArgs) => {\r\n if (undefined === overrideEntry) {\r\n // remove all overrides for quantity type\r\n if (undefined === unitSystem) {\r\n await this.remove (typeKey);\r\n return;\r\n }else {\r\n // remove only system specific overrides for quantity type\r\n const storedJson = await this.retrieve (typeKey);\r\n if (storedJson) {\r\n delete storedJson[unitSystem];\r\n if (Object.keys(storedJson).length) {\r\n await this.store (typeKey, storedJson);\r\n } else {\r\n await this.remove (typeKey);\r\n }\r\n }\r\n }\r\n } else {\r\n // setting a new override or set of overrides\r\n const storedJson = await this.retrieve (typeKey);\r\n const updatedFormat = {...storedJson, ...overrideEntry};\r\n await this.store (typeKey, updatedFormat);\r\n }\r\n };\r\n\r\n /** save UnitSystem for active iModel */\r\n public storeUnitSystemSetting = async ({system}: FormattingUnitSystemChangedArgs) => {\r\n await this.storeUnitSystemKey(system);\r\n };\r\n\r\n public async loadOverrides(imodel?: IModelConnection): Promise<void> {\r\n await this.applyQuantityFormattingSettingsForIModel(imodel);\r\n }\r\n\r\n protected applyQuantityFormattingSettingsForIModel = async (imodel?: IModelConnection) => {\r\n if (this._maintainOverridesPerIModel)\r\n this._imodelConnection = imodel;\r\n const overrideFormatProps = await this.buildQuantityFormatOverridesMap();\r\n const unitSystemKey = await this.retrieveUnitSystem (this._quantityFormatter.activeUnitSystem);\r\n await this._quantityFormatter.reinitializeFormatAndParsingsMaps(overrideFormatProps, unitSystemKey, true, true);\r\n };\r\n\r\n private handleIModelOpen = async (imodel: IModelConnection) => {\r\n await this.applyQuantityFormattingSettingsForIModel (imodel);\r\n };\r\n\r\n private handleViewportChanged = async (args: SelectedViewportChangedArgs) => {\r\n if(args.current?.iModel && (args.current?.iModel?.iModelId !== this.imodelConnection?.iModelId)) {\r\n await this.applyQuantityFormattingSettingsForIModel (args.current?.iModel);\r\n }\r\n };\r\n\r\n private handleIModelClose = async () => {\r\n this._imodelConnection = undefined;\r\n };\r\n\r\n protected get imodelConnection() {\r\n return this._imodelConnection;\r\n }\r\n\r\n /** function to convert from serialized JSON format for Quantity Type overrides to build a map compatible with QuantityManager */\r\n protected async buildQuantityFormatOverridesMap() {\r\n const overrideFormatProps = new Map<UnitSystemKey, Map<QuantityTypeKey, FormatProps>>();\r\n\r\n // use map and await all returned promises - overrides are stored by QuantityType\r\n for (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {\r\n const quantityTypeDef = this._quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);\r\n if (quantityTypeDef) {\r\n const typeKey = quantityTypeDef.key;\r\n const overrideEntry = await this.retrieve (typeKey);\r\n if (overrideEntry) {\r\n // extract overrides and insert into appropriate override map entry\r\n Object.keys(overrideEntry).forEach ((systemKey) => {\r\n const unitSystemKey = systemKey as UnitSystemKey;\r\n const props = overrideEntry[unitSystemKey];\r\n if (props) {\r\n if (overrideFormatProps.has(unitSystemKey)) {\r\n overrideFormatProps.get(unitSystemKey)!.set(typeKey, props);\r\n } else {\r\n const newMap = new Map<string, FormatProps>();\r\n newMap.set(typeKey, props);\r\n overrideFormatProps.set(unitSystemKey, newMap);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return overrideFormatProps;\r\n }\r\n\r\n /** Serializes JSON object containing format overrides for a specific quantity type. */\r\n public abstract store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean>;\r\n\r\n /** Retrieves serialized JSON object containing format overrides for a specific quantity type. */\r\n public abstract retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined>;\r\n\r\n /** Removes the override formats for a specific quantity type. */\r\n public abstract remove(quantityTypeKey: QuantityTypeKey): Promise<boolean>;\r\n\r\n /** Retrieves the active unit system typically based on the \"active\" iModelConnection. */\r\n public abstract retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey>;\r\n\r\n /** Store the active unit system typically for the \"active\" iModelConnection. */\r\n public abstract storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean>;\r\n}\r\n\r\n"]}
@@ -7,7 +7,8 @@
7
7
  * @module QuantityFormatting
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getDefaultAlternateUnitLabels = exports.BasicUnitsProvider = void 0;
10
+ exports.BasicUnitsProvider = void 0;
11
+ exports.getDefaultAlternateUnitLabels = getDefaultAlternateUnitLabels;
11
12
  const core_quantity_1 = require("@itwin/core-quantity");
12
13
  const UnitsData_1 = require("./UnitsData");
13
14
  // cSpell:ignore ussurvey USCUSTOM
@@ -106,7 +107,6 @@ function getDefaultAlternateUnitLabels() {
106
107
  return altDisplayLabelsMap;
107
108
  return undefined;
108
109
  }
109
- exports.getDefaultAlternateUnitLabels = getDefaultAlternateUnitLabels;
110
110
  // ========================================================================================================================================
111
111
  // Minimum set of UNITs to be removed when official UnitsProvider is available
112
112
  // ========================================================================================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"BasicUnitsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BasicUnitsProvider.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 QuantityFormatting\r\n */\r\n\r\nimport {\r\n BadUnit, BasicUnit, UnitConversionProps, UnitProps, UnitsProvider,\r\n} from \"@itwin/core-quantity\";\r\nimport { UnitNameKey } from \"./QuantityFormatter\";\r\nimport { UNIT_EXTRA_DATA } from \"./UnitsData\";\r\n\r\n// cSpell:ignore ussurvey USCUSTOM\r\n\r\n/** Units provider that provides a limited number of UnitDefinitions that are needed to support basic tools.\r\n * @internal\r\n */\r\nexport class BasicUnitsProvider implements UnitsProvider {\r\n\r\n /** Find a unit given the unitLabel. */\r\n public async findUnit(unitLabel: string, schemaName?: string, phenomenon?: string, unitSystem?: string): Promise<UnitProps> {\r\n const labelToFind = unitLabel.toLowerCase();\r\n const unitFamilyToFind = phenomenon ? phenomenon.toLowerCase() : undefined;\r\n const unitSystemToFind = unitSystem ? unitSystem.toLowerCase() : undefined;\r\n\r\n for (const entry of UNIT_DATA) {\r\n if (schemaName && schemaName !== \"Units\")\r\n continue;\r\n\r\n if (phenomenon && entry.phenomenon.toLowerCase() !== unitFamilyToFind)\r\n continue;\r\n\r\n if (unitSystemToFind && entry.system.toLowerCase() !== unitSystemToFind)\r\n continue;\r\n\r\n if (entry.displayLabel.toLowerCase() === labelToFind || entry.name.toLowerCase() === labelToFind) {\r\n const unitProps = new BasicUnit(entry.name, entry.displayLabel, entry.phenomenon, entry.system);\r\n return unitProps;\r\n }\r\n\r\n if (entry.altDisplayLabels && entry.altDisplayLabels.length > 0) {\r\n if (entry.altDisplayLabels.findIndex((ref) => ref.toLowerCase() === labelToFind) !== -1) {\r\n const unitProps = new BasicUnit(entry.name, entry.displayLabel, entry.phenomenon, entry.system);\r\n return unitProps;\r\n }\r\n }\r\n }\r\n\r\n return new BadUnit();\r\n }\r\n\r\n /** Find all units given phenomenon */\r\n public async getUnitsByFamily(phenomenon: string): Promise<UnitProps[]> {\r\n const units: UnitProps[] = [];\r\n for (const entry of UNIT_DATA) {\r\n if (entry.phenomenon !== phenomenon)\r\n continue;\r\n units.push(new BasicUnit(entry.name, entry.displayLabel, entry.phenomenon, entry.system));\r\n }\r\n return units;\r\n }\r\n\r\n protected findUnitDefinition(name: string): UnitDefinition | undefined {\r\n for (const entry of UNIT_DATA) {\r\n if (entry.name === name)\r\n return entry;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Find a unit given the unit's unique name. */\r\n public async findUnitByName(unitName: string): Promise<UnitProps> {\r\n const unitDataEntry = this.findUnitDefinition(unitName);\r\n if (unitDataEntry) {\r\n return new BasicUnit(unitDataEntry.name, unitDataEntry.displayLabel, unitDataEntry.phenomenon, unitDataEntry.system);\r\n }\r\n return new BadUnit();\r\n }\r\n\r\n /** Return the information needed to convert a value between two different units. The units should be from the same phenomenon. */\r\n public async getConversion(fromUnit: UnitProps, toUnit: UnitProps): Promise<UnitConversionProps> {\r\n const fromUnitData = this.findUnitDefinition(fromUnit.name);\r\n const toUnitData = this.findUnitDefinition(toUnit.name);\r\n\r\n if (fromUnitData && toUnitData) {\r\n const deltaOffset = toUnitData.conversion.offset - fromUnitData.conversion.offset;\r\n const deltaNumerator = toUnitData.conversion.numerator * fromUnitData.conversion.denominator;\r\n const deltaDenominator = toUnitData.conversion.denominator * fromUnitData.conversion.numerator;\r\n\r\n const conversionData = new ConversionData();\r\n conversionData.factor = deltaNumerator / deltaDenominator;\r\n conversionData.offset = deltaOffset;\r\n return conversionData;\r\n }\r\n\r\n return new ConversionData();\r\n }\r\n}\r\n\r\n/** Class that implements the minimum UnitConversionProps interface to provide information needed to convert unit values.\r\n * @alpha\r\n */\r\nclass ConversionData implements UnitConversionProps {\r\n public factor: number = 1.0;\r\n public offset: number = 0.0;\r\n public error: boolean = false;\r\n}\r\n\r\n/** interface use to define unit conversions to a base used for a phenomenon */\r\ninterface ConversionDef {\r\n numerator: number;\r\n denominator: number;\r\n offset: number;\r\n}\r\n\r\n// Temporary interface use to define structure of the unit definitions in this example.\r\ninterface UnitDefinition {\r\n readonly name: string;\r\n readonly phenomenon: string;\r\n readonly displayLabel: string;\r\n readonly altDisplayLabels?: string[];\r\n readonly conversion: ConversionDef;\r\n readonly system: string;\r\n}\r\n\r\n/** Function to generate default set of alternate unit labels\r\n * @internal\r\n */\r\nexport function getDefaultAlternateUnitLabels() {\r\n const altDisplayLabelsMap = new Map<UnitNameKey, Set<string>>();\r\n for (const entry of UNIT_EXTRA_DATA) {\r\n if (entry.altDisplayLabels && entry.altDisplayLabels.length > 0) {\r\n altDisplayLabelsMap.set(entry.name, new Set<string>(entry.altDisplayLabels));\r\n }\r\n }\r\n if (altDisplayLabelsMap.size)\r\n return altDisplayLabelsMap;\r\n return undefined;\r\n}\r\n\r\n// ========================================================================================================================================\r\n// Minimum set of UNITs to be removed when official UnitsProvider is available\r\n// ========================================================================================================================================\r\n// cSpell:ignore MILLIINCH, MICROINCH, MILLIFOOT\r\n// Set of supported units - this information will come from Schema-based units once the EC package is ready to provide this information.\r\nconst UNIT_DATA: UnitDefinition[] = [\r\n // Angles ( base unit radian )\r\n { name: \"Units.RAD\", phenomenon: \"Units.ANGLE\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"rad\" },\r\n // 1 rad = 180.0/PI °\r\n { name: \"Units.ARC_DEG\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 180.0, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: \"°\" },\r\n { name: \"Units.ARC_MINUTE\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 10800.0, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: \"'\" },\r\n { name: \"Units.ARC_SECOND\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 648000.0, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: '\"' },\r\n { name: \"Units.GRAD\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 200, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: \"grad\" },\r\n // Time ( base unit second )\r\n { name: \"Units.S\", phenomenon: \"Units.TIME\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"s\" },\r\n { name: \"Units.MIN\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 60.0, offset: 0.0 }, displayLabel: \"min\" },\r\n { name: \"Units.HR\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 3600.0, offset: 0.0 }, displayLabel: \"h\"},\r\n { name: \"Units.DAY\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 86400.0, offset: 0.0 }, displayLabel: \"days\" },\r\n { name: \"Units.WEEK\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 604800.0, offset: 0.0 }, displayLabel: \"weeks\" },\r\n // 1 sec = 1/31536000.0 yr\r\n { name: \"Units.YR\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 31536000.0, offset: 0.0 }, displayLabel: \"years\" },\r\n // conversion => specified unit to base unit of m\r\n { name: \"Units.M\", phenomenon: \"Units.LENGTH\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m\" },\r\n { name: \"Units.MM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"mm\" },\r\n { name: \"Units.CM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 100.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"cm\" },\r\n { name: \"Units.DM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 10.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"dm\" },\r\n { name: \"Units.KM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1.0, denominator: 1000.0, offset: 0.0 }, displayLabel: \"km\" },\r\n { name: \"Units.UM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"µm\" },\r\n { name: \"Units.MILLIINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"mil\" },\r\n { name: \"Units.MICROINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"µin\" },\r\n { name: \"Units.MILLIFOOT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"mft\" },\r\n { name: \"Units.IN\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"in\" },\r\n { name: \"Units.FT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"ft\" },\r\n { name: \"Units.CHAIN\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 66.0 * 0.3048, offset: 0.0 }, displayLabel: \"chain\" },\r\n { name: \"Units.YRD\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.9144, offset: 0.0 }, displayLabel: \"yd\" },\r\n { name: \"Units.MILE\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 1609.344, offset: 0.0 }, displayLabel: \"mi\" },\r\n { name: \"Units.US_SURVEY_FT\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 1200.0, offset: 0.0 }, displayLabel: \"ft (US Survey)\" },\r\n { name: \"Units.US_SURVEY_YRD\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 3.0 * 1200.0, offset: 0.0 }, displayLabel: \"yrd (US Survey)\" },\r\n { name: \"Units.US_SURVEY_IN\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 100.0, offset: 0.0 }, displayLabel: \"in (US Survey)\" },\r\n { name: \"Units.US_SURVEY_MILE\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 5280.0 * 1200.0, offset: 0.0 }, displayLabel: \"mi (US Survey)\" },\r\n { name: \"Units.US_SURVEY_CHAIN\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 1.0, denominator: 20.11684, offset: 0.0 }, displayLabel: \"chain (US Survey)\" },\r\n // conversion => specified unit to base unit of m²\r\n { name: \"Units.SQ_FT\", phenomenon: \"Units.AREA\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: .09290304, offset: 0.0 }, displayLabel: \"ft²\" },\r\n { name: \"Units.SQ_US_SURVEY_FT\", phenomenon: \"Units.AREA\", system: \"Units.USCUSTOM\", conversion: { numerator: 15499969.0, denominator: 1440000, offset: 0.0 }, displayLabel: \"ft² (US Survey)\" },\r\n { name: \"Units.SQ_M\", phenomenon: \"Units.AREA\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m²\" },\r\n { name: \"Units.SQ_KM\", phenomenon: \"Units.AREA\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1000000.0, offset: 0.0 }, displayLabel: \"km²\" },\r\n // conversion => specified unit to base unit m³\r\n { name: \"Units.CUB_FT\", phenomenon: \"Units.VOLUME\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.028316847, offset: 0.0 }, displayLabel: \"ft³\" },\r\n { name: \"Units.CUB_US_SURVEY_FT\", phenomenon: \"Units.VOLUME\", system: \"Units.USSURVEY\", conversion: { numerator: 1, denominator: 0.0283170164937591, offset: 0.0 }, displayLabel: \"ft³\" },\r\n { name: \"Units.CUB_YRD\", phenomenon: \"Units.VOLUME\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.76455486, offset: 0.0 }, displayLabel: \"yd³\" },\r\n { name: \"Units.CUB_M\", phenomenon: \"Units.VOLUME\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m³\" },\r\n];\r\n"]}
1
+ {"version":3,"file":"BasicUnitsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BasicUnitsProvider.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 QuantityFormatting\r\n */\r\n\r\nimport {\r\n BadUnit, BasicUnit, UnitConversionProps, UnitProps, UnitsProvider,\r\n} from \"@itwin/core-quantity\";\r\nimport { UnitNameKey } from \"./QuantityFormatter\";\r\nimport { UNIT_EXTRA_DATA } from \"./UnitsData\";\r\n\r\n// cSpell:ignore ussurvey USCUSTOM\r\n\r\n/** Units provider that provides a limited number of UnitDefinitions that are needed to support basic tools.\r\n * @internal\r\n */\r\nexport class BasicUnitsProvider implements UnitsProvider {\r\n\r\n /** Find a unit given the unitLabel. */\r\n public async findUnit(unitLabel: string, schemaName?: string, phenomenon?: string, unitSystem?: string): Promise<UnitProps> {\r\n const labelToFind = unitLabel.toLowerCase();\r\n const unitFamilyToFind = phenomenon ? phenomenon.toLowerCase() : undefined;\r\n const unitSystemToFind = unitSystem ? unitSystem.toLowerCase() : undefined;\r\n\r\n for (const entry of UNIT_DATA) {\r\n if (schemaName && schemaName !== \"Units\")\r\n continue;\r\n\r\n if (phenomenon && entry.phenomenon.toLowerCase() !== unitFamilyToFind)\r\n continue;\r\n\r\n if (unitSystemToFind && entry.system.toLowerCase() !== unitSystemToFind)\r\n continue;\r\n\r\n if (entry.displayLabel.toLowerCase() === labelToFind || entry.name.toLowerCase() === labelToFind) {\r\n const unitProps = new BasicUnit(entry.name, entry.displayLabel, entry.phenomenon, entry.system);\r\n return unitProps;\r\n }\r\n\r\n if (entry.altDisplayLabels && entry.altDisplayLabels.length > 0) {\r\n if (entry.altDisplayLabels.findIndex((ref) => ref.toLowerCase() === labelToFind) !== -1) {\r\n const unitProps = new BasicUnit(entry.name, entry.displayLabel, entry.phenomenon, entry.system);\r\n return unitProps;\r\n }\r\n }\r\n }\r\n\r\n return new BadUnit();\r\n }\r\n\r\n /** Find all units given phenomenon */\r\n public async getUnitsByFamily(phenomenon: string): Promise<UnitProps[]> {\r\n const units: UnitProps[] = [];\r\n for (const entry of UNIT_DATA) {\r\n if (entry.phenomenon !== phenomenon)\r\n continue;\r\n units.push(new BasicUnit(entry.name, entry.displayLabel, entry.phenomenon, entry.system));\r\n }\r\n return units;\r\n }\r\n\r\n protected findUnitDefinition(name: string): UnitDefinition | undefined {\r\n for (const entry of UNIT_DATA) {\r\n if (entry.name === name)\r\n return entry;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Find a unit given the unit's unique name. */\r\n public async findUnitByName(unitName: string): Promise<UnitProps> {\r\n const unitDataEntry = this.findUnitDefinition(unitName);\r\n if (unitDataEntry) {\r\n return new BasicUnit(unitDataEntry.name, unitDataEntry.displayLabel, unitDataEntry.phenomenon, unitDataEntry.system);\r\n }\r\n return new BadUnit();\r\n }\r\n\r\n /** Return the information needed to convert a value between two different units. The units should be from the same phenomenon. */\r\n public async getConversion(fromUnit: UnitProps, toUnit: UnitProps): Promise<UnitConversionProps> {\r\n const fromUnitData = this.findUnitDefinition(fromUnit.name);\r\n const toUnitData = this.findUnitDefinition(toUnit.name);\r\n\r\n if (fromUnitData && toUnitData) {\r\n const deltaOffset = toUnitData.conversion.offset - fromUnitData.conversion.offset;\r\n const deltaNumerator = toUnitData.conversion.numerator * fromUnitData.conversion.denominator;\r\n const deltaDenominator = toUnitData.conversion.denominator * fromUnitData.conversion.numerator;\r\n\r\n const conversionData = new ConversionData();\r\n conversionData.factor = deltaNumerator / deltaDenominator;\r\n conversionData.offset = deltaOffset;\r\n return conversionData;\r\n }\r\n\r\n return new ConversionData();\r\n }\r\n}\r\n\r\n/** Class that implements the minimum UnitConversionProps interface to provide information needed to convert unit values.\r\n * @alpha\r\n */\r\nclass ConversionData implements UnitConversionProps {\r\n public factor: number = 1.0;\r\n public offset: number = 0.0;\r\n public error: boolean = false;\r\n}\r\n\r\n/** interface use to define unit conversions to a base used for a phenomenon */\r\ninterface ConversionDef {\r\n numerator: number;\r\n denominator: number;\r\n offset: number;\r\n}\r\n\r\n// Temporary interface use to define structure of the unit definitions in this example.\r\ninterface UnitDefinition {\r\n readonly name: string;\r\n readonly phenomenon: string;\r\n readonly displayLabel: string;\r\n readonly altDisplayLabels?: string[];\r\n readonly conversion: ConversionDef;\r\n readonly system: string;\r\n}\r\n\r\n/** Function to generate default set of alternate unit labels\r\n * @internal\r\n */\r\nexport function getDefaultAlternateUnitLabels() {\r\n const altDisplayLabelsMap = new Map<UnitNameKey, Set<string>>();\r\n for (const entry of UNIT_EXTRA_DATA) {\r\n if (entry.altDisplayLabels && entry.altDisplayLabels.length > 0) {\r\n altDisplayLabelsMap.set(entry.name, new Set<string>(entry.altDisplayLabels));\r\n }\r\n }\r\n if (altDisplayLabelsMap.size)\r\n return altDisplayLabelsMap;\r\n return undefined;\r\n}\r\n\r\n// ========================================================================================================================================\r\n// Minimum set of UNITs to be removed when official UnitsProvider is available\r\n// ========================================================================================================================================\r\n// cSpell:ignore MILLIINCH, MICROINCH, MILLIFOOT\r\n// Set of supported units - this information will come from Schema-based units once the EC package is ready to provide this information.\r\nconst UNIT_DATA: UnitDefinition[] = [\r\n // Angles ( base unit radian )\r\n { name: \"Units.RAD\", phenomenon: \"Units.ANGLE\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"rad\" },\r\n // 1 rad = 180.0/PI °\r\n { name: \"Units.ARC_DEG\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 180.0, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: \"°\" },\r\n { name: \"Units.ARC_MINUTE\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 10800.0, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: \"'\" },\r\n { name: \"Units.ARC_SECOND\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 648000.0, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: '\"' },\r\n { name: \"Units.GRAD\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 200, denominator: 3.141592653589793, offset: 0.0 }, displayLabel: \"grad\" },\r\n // Time ( base unit second )\r\n { name: \"Units.S\", phenomenon: \"Units.TIME\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"s\" },\r\n { name: \"Units.MIN\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 60.0, offset: 0.0 }, displayLabel: \"min\" },\r\n { name: \"Units.HR\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 3600.0, offset: 0.0 }, displayLabel: \"h\"},\r\n { name: \"Units.DAY\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 86400.0, offset: 0.0 }, displayLabel: \"days\" },\r\n { name: \"Units.WEEK\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 604800.0, offset: 0.0 }, displayLabel: \"weeks\" },\r\n // 1 sec = 1/31536000.0 yr\r\n { name: \"Units.YR\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 31536000.0, offset: 0.0 }, displayLabel: \"years\" },\r\n // conversion => specified unit to base unit of m\r\n { name: \"Units.M\", phenomenon: \"Units.LENGTH\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m\" },\r\n { name: \"Units.MM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"mm\" },\r\n { name: \"Units.CM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 100.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"cm\" },\r\n { name: \"Units.DM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 10.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"dm\" },\r\n { name: \"Units.KM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1.0, denominator: 1000.0, offset: 0.0 }, displayLabel: \"km\" },\r\n { name: \"Units.UM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"µm\" },\r\n { name: \"Units.MILLIINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"mil\" },\r\n { name: \"Units.MICROINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"µin\" },\r\n { name: \"Units.MILLIFOOT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"mft\" },\r\n { name: \"Units.IN\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"in\" },\r\n { name: \"Units.FT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"ft\" },\r\n { name: \"Units.CHAIN\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 66.0 * 0.3048, offset: 0.0 }, displayLabel: \"chain\" },\r\n { name: \"Units.YRD\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.9144, offset: 0.0 }, displayLabel: \"yd\" },\r\n { name: \"Units.MILE\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 1609.344, offset: 0.0 }, displayLabel: \"mi\" },\r\n { name: \"Units.US_SURVEY_FT\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 1200.0, offset: 0.0 }, displayLabel: \"ft (US Survey)\" },\r\n { name: \"Units.US_SURVEY_YRD\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 3.0 * 1200.0, offset: 0.0 }, displayLabel: \"yrd (US Survey)\" },\r\n { name: \"Units.US_SURVEY_IN\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 100.0, offset: 0.0 }, displayLabel: \"in (US Survey)\" },\r\n { name: \"Units.US_SURVEY_MILE\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 3937.0, denominator: 5280.0 * 1200.0, offset: 0.0 }, displayLabel: \"mi (US Survey)\" },\r\n { name: \"Units.US_SURVEY_CHAIN\", phenomenon: \"Units.LENGTH\", system: \"Units.USSURVEY\", conversion: { numerator: 1.0, denominator: 20.11684, offset: 0.0 }, displayLabel: \"chain (US Survey)\" },\r\n // conversion => specified unit to base unit of m²\r\n { name: \"Units.SQ_FT\", phenomenon: \"Units.AREA\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: .09290304, offset: 0.0 }, displayLabel: \"ft²\" },\r\n { name: \"Units.SQ_US_SURVEY_FT\", phenomenon: \"Units.AREA\", system: \"Units.USCUSTOM\", conversion: { numerator: 15499969.0, denominator: 1440000, offset: 0.0 }, displayLabel: \"ft² (US Survey)\" },\r\n { name: \"Units.SQ_M\", phenomenon: \"Units.AREA\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m²\" },\r\n { name: \"Units.SQ_KM\", phenomenon: \"Units.AREA\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1000000.0, offset: 0.0 }, displayLabel: \"km²\" },\r\n // conversion => specified unit to base unit m³\r\n { name: \"Units.CUB_FT\", phenomenon: \"Units.VOLUME\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.028316847, offset: 0.0 }, displayLabel: \"ft³\" },\r\n { name: \"Units.CUB_US_SURVEY_FT\", phenomenon: \"Units.VOLUME\", system: \"Units.USSURVEY\", conversion: { numerator: 1, denominator: 0.0283170164937591, offset: 0.0 }, displayLabel: \"ft³\" },\r\n { name: \"Units.CUB_YRD\", phenomenon: \"Units.VOLUME\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.76455486, offset: 0.0 }, displayLabel: \"yd³\" },\r\n { name: \"Units.CUB_M\", phenomenon: \"Units.VOLUME\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m³\" },\r\n];\r\n"]}
@@ -35,7 +35,7 @@ class LocalUnitFormatProvider extends BaseUnitFormattingSettingsProvider_1.BaseU
35
35
  localStorage.setItem(this.buildUnitSystemKey(), unitSystemKey);
36
36
  return true;
37
37
  }
38
- catch (_e) {
38
+ catch {
39
39
  return false;
40
40
  }
41
41
  }
@@ -49,7 +49,7 @@ class LocalUnitFormatProvider extends BaseUnitFormattingSettingsProvider_1.BaseU
49
49
  localStorage.setItem(this.buildOverridesKey(quantityTypeKey), JSON.stringify(overrideProps));
50
50
  return true;
51
51
  }
52
- catch (_e) {
52
+ catch {
53
53
  return false;
54
54
  }
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalUnitFormatProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/LocalUnitFormatProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,6FAA0F;AAE1F;;GAEG;AACH,MAAa,uBAAwB,SAAQ,uEAAkC;IAC7E;8GAC0G;IAC1G,YAAY,iBAAoC,EAAE,0BAAoC;QACpF,KAAK,CAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IACxD,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,gBAAgB;YACvB,OAAO,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,UAAyB;QACvD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACxE,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,cAA+B,CAAC;QACzC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,aAA4B;QAC1D,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,aAAa,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,eAAgC;QACxD,IAAI,IAAI,CAAC,gBAAgB;YACvB,OAAO,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,MAAM,eAAe,EAAE,CAAC;QACvF,OAAO,6BAA6B,eAAe,EAAE,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,eAAgC,EAAE,aAAkC;QACrF,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,eAAgC;QACpD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;QACpF,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,eAAgC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,UAAU,CAAE,GAAG,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhED,0DAgEC","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 QuantityFormatting\r\n */\r\n\r\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { OverrideFormatEntry, QuantityFormatter, QuantityTypeKey } from \"./QuantityFormatter\";\r\nimport { BaseUnitFormattingSettingsProvider } from \"./BaseUnitFormattingSettingsProvider\";\r\n\r\n/** Implementation of BaseUnitFormattingSettingsProvider that stores and retrieves data in local storage.\r\n * @beta\r\n */\r\nexport class LocalUnitFormatProvider extends BaseUnitFormattingSettingsProvider {\r\n /** If `maintainOverridesPerIModel` is true, the base class will set up listeners to monitor active iModel\r\n * changes so the overrides for the QuantityFormatter properly match the overrides set up by the user. */\r\n constructor(quantityFormatter: QuantityFormatter, maintainOverridesPerIModel?: boolean) {\r\n super (quantityFormatter, maintainOverridesPerIModel);\r\n }\r\n\r\n private buildUnitSystemKey() {\r\n if (this.imodelConnection)\r\n return `unitsystem#i:${this.imodelConnection.iModelId}`;\r\n return `unitsystem#user`;\r\n }\r\n\r\n public async retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey> {\r\n const readUnitSystem = localStorage.getItem (this.buildUnitSystemKey());\r\n if (readUnitSystem && readUnitSystem.length) {\r\n return readUnitSystem as UnitSystemKey;\r\n }\r\n\r\n return defaultKey;\r\n }\r\n\r\n public async storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean> {\r\n try {\r\n localStorage.setItem (this.buildUnitSystemKey(), unitSystemKey);\r\n return true;\r\n } catch (_e) {\r\n return false;\r\n }\r\n }\r\n\r\n private buildOverridesKey(quantityTypeKey: QuantityTypeKey) {\r\n if (this.imodelConnection)\r\n return `quantityTypeFormat#i:${this.imodelConnection.iModelId}#q:${quantityTypeKey}`;\r\n return `quantityTypeFormat#user#q:${quantityTypeKey}`;\r\n }\r\n\r\n public async store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean> {\r\n try {\r\n localStorage.setItem (this.buildOverridesKey(quantityTypeKey), JSON.stringify(overrideProps));\r\n return true;\r\n } catch (_e) {\r\n return false;\r\n }\r\n }\r\n\r\n public async retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined> {\r\n const storedFormat = localStorage.getItem (this.buildOverridesKey(quantityTypeKey));\r\n if (storedFormat) {\r\n return JSON.parse(storedFormat);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public async remove(quantityTypeKey: QuantityTypeKey): Promise<boolean> {\r\n const key = this.buildOverridesKey(quantityTypeKey);\r\n if (localStorage.getItem(key)) {\r\n localStorage.removeItem (key);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"LocalUnitFormatProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/LocalUnitFormatProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,6FAA0F;AAE1F;;GAEG;AACH,MAAa,uBAAwB,SAAQ,uEAAkC;IAC7E;8GAC0G;IAC1G,YAAY,iBAAoC,EAAE,0BAAoC;QACpF,KAAK,CAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IACxD,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,gBAAgB;YACvB,OAAO,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,UAAyB;QACvD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACxE,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,cAA+B,CAAC;QACzC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,aAA4B;QAC1D,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,aAAa,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,eAAgC;QACxD,IAAI,IAAI,CAAC,gBAAgB;YACvB,OAAO,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,MAAM,eAAe,EAAE,CAAC;QACvF,OAAO,6BAA6B,eAAe,EAAE,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,eAAgC,EAAE,aAAkC;QACrF,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,eAAgC;QACpD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;QACpF,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,eAAgC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,UAAU,CAAE,GAAG,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhED,0DAgEC","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 QuantityFormatting\r\n */\r\n\r\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { OverrideFormatEntry, QuantityFormatter, QuantityTypeKey } from \"./QuantityFormatter\";\r\nimport { BaseUnitFormattingSettingsProvider } from \"./BaseUnitFormattingSettingsProvider\";\r\n\r\n/** Implementation of BaseUnitFormattingSettingsProvider that stores and retrieves data in local storage.\r\n * @beta\r\n */\r\nexport class LocalUnitFormatProvider extends BaseUnitFormattingSettingsProvider {\r\n /** If `maintainOverridesPerIModel` is true, the base class will set up listeners to monitor active iModel\r\n * changes so the overrides for the QuantityFormatter properly match the overrides set up by the user. */\r\n constructor(quantityFormatter: QuantityFormatter, maintainOverridesPerIModel?: boolean) {\r\n super (quantityFormatter, maintainOverridesPerIModel);\r\n }\r\n\r\n private buildUnitSystemKey() {\r\n if (this.imodelConnection)\r\n return `unitsystem#i:${this.imodelConnection.iModelId}`;\r\n return `unitsystem#user`;\r\n }\r\n\r\n public async retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey> {\r\n const readUnitSystem = localStorage.getItem (this.buildUnitSystemKey());\r\n if (readUnitSystem && readUnitSystem.length) {\r\n return readUnitSystem as UnitSystemKey;\r\n }\r\n\r\n return defaultKey;\r\n }\r\n\r\n public async storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean> {\r\n try {\r\n localStorage.setItem (this.buildUnitSystemKey(), unitSystemKey);\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n private buildOverridesKey(quantityTypeKey: QuantityTypeKey) {\r\n if (this.imodelConnection)\r\n return `quantityTypeFormat#i:${this.imodelConnection.iModelId}#q:${quantityTypeKey}`;\r\n return `quantityTypeFormat#user#q:${quantityTypeKey}`;\r\n }\r\n\r\n public async store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean> {\r\n try {\r\n localStorage.setItem (this.buildOverridesKey(quantityTypeKey), JSON.stringify(overrideProps));\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n public async retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined> {\r\n const storedFormat = localStorage.getItem (this.buildOverridesKey(quantityTypeKey));\r\n if (storedFormat) {\r\n return JSON.parse(storedFormat);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public async remove(quantityTypeKey: QuantityTypeKey): Promise<boolean> {\r\n const key = this.buildOverridesKey(quantityTypeKey);\r\n if (localStorage.getItem(key)) {\r\n localStorage.removeItem (key);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n"]}
@@ -7,7 +7,9 @@
7
7
  * @module QuantityFormatting
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.QuantityFormatter = exports.isCustomQuantityTypeDefinition = exports.getQuantityTypeKey = exports.AlternateUnitLabelsRegistry = exports.QuantityType = void 0;
10
+ exports.QuantityFormatter = exports.AlternateUnitLabelsRegistry = exports.QuantityType = void 0;
11
+ exports.getQuantityTypeKey = getQuantityTypeKey;
12
+ exports.isCustomQuantityTypeDefinition = isCustomQuantityTypeDefinition;
11
13
  const core_bentley_1 = require("@itwin/core-bentley");
12
14
  const core_quantity_1 = require("@itwin/core-quantity");
13
15
  const FrontendLoggerCategory_1 = require("../common/FrontendLoggerCategory");
@@ -74,14 +76,12 @@ function getQuantityTypeKey(type) {
74
76
  return `QuantityTypeEnumValue-${type.toString()}`;
75
77
  return type;
76
78
  }
77
- exports.getQuantityTypeKey = getQuantityTypeKey;
78
79
  /** CustomQuantityTypeDefinition type guard.
79
80
  * @public
80
81
  */
81
82
  function isCustomQuantityTypeDefinition(item) {
82
83
  return !!item.isCompatibleFormatProps;
83
84
  }
84
- exports.isCustomQuantityTypeDefinition = isCustomQuantityTypeDefinition;
85
85
  /** private class to hold standard quantity definitions as defined by QuantityType enum and implement QuantityTypeDefinition interface */
86
86
  class StandardQuantityTypeDefinition {
87
87
  constructor(type, persistenceUnit, _labelKey, _descriptionKey) {