@itwin/core-frontend 3.0.0-dev.131 → 3.0.0-dev.136

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 (207) hide show
  1. package/lib/cjs/SheetViewState.js +2 -0
  2. package/lib/cjs/SheetViewState.js.map +1 -1
  3. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  4. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  5. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  6. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  7. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  8. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  9. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +20 -5
  10. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  11. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +26 -3
  12. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  13. package/lib/cjs/quantity-formatting/QuantityFormatter.js +46 -7
  14. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  15. package/lib/cjs/render/RenderSystem.d.ts +0 -2
  16. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  17. package/lib/cjs/render/RenderSystem.js.map +1 -1
  18. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  19. package/lib/cjs/render/webgl/DrawCommand.js +3 -1
  20. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  21. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  22. package/lib/cjs/render/webgl/Mesh.js +1 -2
  23. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  24. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  25. package/lib/cjs/render/webgl/PlanarClassifier.js +1 -0
  26. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  27. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  28. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -0
  29. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  30. package/lib/cjs/render/webgl/SceneCompositor.js +1 -0
  31. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  32. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +8 -7
  33. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  34. package/lib/cjs/render/webgl/ShaderBuilder.js +20 -18
  35. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  36. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  37. package/lib/cjs/render/webgl/SolarShadowMap.js +1 -0
  38. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  39. package/lib/cjs/render/webgl/System.d.ts +0 -3
  40. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  41. package/lib/cjs/render/webgl/System.js +0 -3
  42. package/lib/cjs/render/webgl/System.js.map +1 -1
  43. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  44. package/lib/cjs/render/webgl/Target.js +5 -0
  45. package/lib/cjs/render/webgl/Target.js.map +1 -1
  46. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  47. package/lib/cjs/render/webgl/Technique.js +74 -29
  48. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  49. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -1
  50. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  51. package/lib/cjs/render/webgl/TechniqueFlags.js +10 -1
  52. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  53. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -1
  54. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  55. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -2
  56. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -2
  57. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  58. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  59. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  60. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  61. package/lib/cjs/render/webgl/glsl/CopyColor.js +17 -2
  62. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  63. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -2
  64. package/lib/cjs/render/webgl/glsl/CopyStencil.js +6 -6
  65. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +1 -1
  66. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +2 -2
  67. package/lib/cjs/render/webgl/glsl/Fragment.js +10 -10
  68. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  69. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +3 -3
  70. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  71. package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -2
  72. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  73. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  74. package/lib/cjs/render/webgl/glsl/SkyBox.js +1 -1
  75. package/lib/cjs/render/webgl/glsl/SkySphere.js +1 -1
  76. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  77. package/lib/cjs/render/webgl/glsl/Surface.js +5 -2
  78. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  79. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  80. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts +9 -0
  81. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  82. package/lib/cjs/render/webgl/glsl/Wiremesh.js +40 -0
  83. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -0
  84. package/lib/cjs/tile/B3dmReader.d.ts +1 -1
  85. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  86. package/lib/cjs/tile/B3dmReader.js +4 -4
  87. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  88. package/lib/cjs/tile/GltfReader.d.ts +3 -1
  89. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  90. package/lib/cjs/tile/GltfReader.js +33 -1
  91. package/lib/cjs/tile/GltfReader.js.map +1 -1
  92. package/lib/cjs/tile/I3dmReader.d.ts +1 -1
  93. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  94. package/lib/cjs/tile/I3dmReader.js +4 -4
  95. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  96. package/lib/cjs/tile/RealityModelTileTree.d.ts +2 -1
  97. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  98. package/lib/cjs/tile/RealityModelTileTree.js +29 -10
  99. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  100. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  101. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  102. package/lib/cjs/tile/RealityTileLoader.js +3 -2
  103. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  104. package/lib/esm/SheetViewState.js +2 -0
  105. package/lib/esm/SheetViewState.js.map +1 -1
  106. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  107. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  108. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  109. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  110. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  111. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  112. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +18 -4
  113. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  114. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +26 -3
  115. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  116. package/lib/esm/quantity-formatting/QuantityFormatter.js +45 -7
  117. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  118. package/lib/esm/render/RenderSystem.d.ts +0 -2
  119. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  120. package/lib/esm/render/RenderSystem.js.map +1 -1
  121. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  122. package/lib/esm/render/webgl/DrawCommand.js +3 -1
  123. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  124. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  125. package/lib/esm/render/webgl/Mesh.js +1 -2
  126. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  127. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  128. package/lib/esm/render/webgl/PlanarClassifier.js +1 -0
  129. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  130. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  131. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -0
  132. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  133. package/lib/esm/render/webgl/SceneCompositor.js +1 -0
  134. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  135. package/lib/esm/render/webgl/ShaderBuilder.d.ts +8 -7
  136. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  137. package/lib/esm/render/webgl/ShaderBuilder.js +20 -18
  138. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  139. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  140. package/lib/esm/render/webgl/SolarShadowMap.js +1 -0
  141. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  142. package/lib/esm/render/webgl/System.d.ts +0 -3
  143. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  144. package/lib/esm/render/webgl/System.js +0 -3
  145. package/lib/esm/render/webgl/System.js.map +1 -1
  146. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  147. package/lib/esm/render/webgl/Target.js +5 -0
  148. package/lib/esm/render/webgl/Target.js.map +1 -1
  149. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  150. package/lib/esm/render/webgl/Technique.js +74 -29
  151. package/lib/esm/render/webgl/Technique.js.map +1 -1
  152. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -1
  153. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  154. package/lib/esm/render/webgl/TechniqueFlags.js +10 -1
  155. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  156. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
  157. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  158. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -2
  159. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -2
  160. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  161. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  162. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  163. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  164. package/lib/esm/render/webgl/glsl/CopyColor.js +17 -2
  165. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  166. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +2 -2
  167. package/lib/esm/render/webgl/glsl/CopyStencil.js +6 -6
  168. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
  169. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +2 -2
  170. package/lib/esm/render/webgl/glsl/Fragment.js +10 -10
  171. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  172. package/lib/esm/render/webgl/glsl/PlanarClassification.js +3 -3
  173. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  174. package/lib/esm/render/webgl/glsl/RealityMesh.js +5 -2
  175. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  176. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  177. package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
  178. package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
  179. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  180. package/lib/esm/render/webgl/glsl/Surface.js +5 -2
  181. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  182. package/lib/esm/render/webgl/glsl/Translucency.js +2 -2
  183. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts +9 -0
  184. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  185. package/lib/esm/render/webgl/glsl/Wiremesh.js +36 -0
  186. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -0
  187. package/lib/esm/tile/B3dmReader.d.ts +1 -1
  188. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  189. package/lib/esm/tile/B3dmReader.js +4 -4
  190. package/lib/esm/tile/B3dmReader.js.map +1 -1
  191. package/lib/esm/tile/GltfReader.d.ts +3 -1
  192. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  193. package/lib/esm/tile/GltfReader.js +33 -1
  194. package/lib/esm/tile/GltfReader.js.map +1 -1
  195. package/lib/esm/tile/I3dmReader.d.ts +1 -1
  196. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  197. package/lib/esm/tile/I3dmReader.js +4 -4
  198. package/lib/esm/tile/I3dmReader.js.map +1 -1
  199. package/lib/esm/tile/RealityModelTileTree.d.ts +2 -1
  200. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  201. package/lib/esm/tile/RealityModelTileTree.js +30 -11
  202. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  203. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  204. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  205. package/lib/esm/tile/RealityTileLoader.js +3 -2
  206. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  207. package/package.json +22 -22
@@ -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, UnitConversion, UnitProps, UnitsProvider,\r\n} from \"@itwin/core-quantity\";\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 /** Find a unit given the unitLabel. */\r\n public async findUnit(unitLabel: 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 (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.altDisplayLabels, 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.altDisplayLabels, 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.altDisplayLabels, 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.altDisplayLabels, 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<UnitConversion> {\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 conversion = new ConversionData();\r\n conversion.factor = deltaNumerator / deltaDenominator;\r\n conversion.offset = deltaOffset;\r\n return conversion;\r\n }\r\n\r\n return new ConversionData();\r\n }\r\n}\r\n\r\n/** Class that implements the minimum UnitConversion interface to provide information needed to convert unit values.\r\n * @alpha\r\n */\r\nclass ConversionData implements UnitConversion {\r\n public factor: number = 1.0;\r\n public offset: number = 0.0;\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// ========================================================================================================================================\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\", altDisplayLabels: [\"radian\"] },\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.1415926535897932384626433832795, offset: 0.0 }, displayLabel: \"°\", altDisplayLabels: [\"deg\", \"^\"] },\r\n { name: \"Units.ARC_MINUTE\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 10800.0, denominator: 3.14159265358979323846264338327950, offset: 0.0 }, displayLabel: \"'\", altDisplayLabels: [\"min\"] },\r\n { name: \"Units.ARC_SECOND\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 648000.0, denominator: 3.1415926535897932384626433832795, offset: 0.0 }, displayLabel: '\"', altDisplayLabels: [\"sec\"] },\r\n { name: \"Units.GRAD\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 200, denominator: 3.1415926535897932384626433832795, offset: 0.0 }, displayLabel: \"grad\", altDisplayLabels: [\"gd\"] },\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\", altDisplayLabels: [\"sec\"] },\r\n { name: \"Units.MIN\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 60.0, offset: 0.0 }, displayLabel: \"min\", altDisplayLabels: [] },\r\n { name: \"Units.HR\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 3600.0, offset: 0.0 }, displayLabel: \"h\", altDisplayLabels: [\"hr\"] },\r\n { name: \"Units.DAY\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 86400.0, offset: 0.0 }, displayLabel: \"days\", altDisplayLabels: [\"day\"] },\r\n { name: \"Units.WEEK\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 604800.0, offset: 0.0 }, displayLabel: \"weeks\", altDisplayLabels: [\"week\"] },\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\", altDisplayLabels: [\"year\"] },\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\", altDisplayLabels: [\"meter\"] },\r\n { name: \"Units.MM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"mm\", altDisplayLabels: [\"MM\"] },\r\n { name: \"Units.CM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 100.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"cm\", altDisplayLabels: [\"CM\"] },\r\n { name: \"Units.DM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 10.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"dm\", altDisplayLabels: [\"DM\"] },\r\n { name: \"Units.KM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1.0, denominator: 1000.0, offset: 0.0 }, displayLabel: \"km\", altDisplayLabels: [\"KM\"] },\r\n { name: \"Units.UM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"µm\", altDisplayLabels: [] },\r\n { name: \"Units.MILLIINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"mil\", altDisplayLabels: [] },\r\n { name: \"Units.MICROINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"µin\", altDisplayLabels: [] },\r\n { name: \"Units.MILLIFOOT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"mft\", altDisplayLabels: [] },\r\n { name: \"Units.IN\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"in\", altDisplayLabels: [\"IN\", \"\\\"\"] },\r\n { name: \"Units.FT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"ft\", altDisplayLabels: [\"F\", \"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\", altDisplayLabels: [\"CHAIN\"] },\r\n { name: \"Units.YRD\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.9144, offset: 0.0 }, displayLabel: \"yd\", altDisplayLabels: [\"YRD\", \"yrd\"] },\r\n { name: \"Units.MILE\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 1609.344, offset: 0.0 }, displayLabel: \"mi\", altDisplayLabels: [\"mile\", \"Miles\", \"Mile\"] },\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)\", altDisplayLabels: [\"ft\", \"SF\", \"USF\", \"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)\", altDisplayLabels: [\"USY\", \"yards (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)\", altDisplayLabels: [\"USI\", \"inches (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)\", altDisplayLabels: [\"miles (US Survey)\", \"mile (US Survey)\", \"USM\"] },\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)\", altDisplayLabels: [\"chains (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²\", altDisplayLabels: [\"sf\"] },\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)\", altDisplayLabels: [\"sussf\"] },\r\n { name: \"Units.SQ_M\", phenomenon: \"Units.AREA\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m²\", altDisplayLabels: [\"sm\"] },\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³\", altDisplayLabels: [\"cf\"] },\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³\", altDisplayLabels: [\"cf\"] },\r\n { name: \"Units.CUB_YRD\", phenomenon: \"Units.VOLUME\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.76455486, offset: 0.0 }, displayLabel: \"yd³\", altDisplayLabels: [\"cy\"] },\r\n { name: \"Units.CUB_M\", phenomenon: \"Units.VOLUME\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m³\", altDisplayLabels: [\"cm\"] },\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, UnitConversion, UnitProps, UnitsProvider,\r\n} from \"@itwin/core-quantity\";\r\nimport { UnitNameKey } from \"./QuantityFormatter\";\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, 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 (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<UnitConversion> {\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 conversion = new ConversionData();\r\n conversion.factor = deltaNumerator / deltaDenominator;\r\n conversion.offset = deltaOffset;\r\n return conversion;\r\n }\r\n\r\n return new ConversionData();\r\n }\r\n}\r\n\r\n/** Class that implements the minimum UnitConversion interface to provide information needed to convert unit values.\r\n * @alpha\r\n */\r\nclass ConversionData implements UnitConversion {\r\n public factor: number = 1.0;\r\n public offset: number = 0.0;\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_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\", altDisplayLabels: [\"radian\"] },\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.1415926535897932384626433832795, offset: 0.0 }, displayLabel: \"°\", altDisplayLabels: [\"deg\", \"^\"] },\r\n { name: \"Units.ARC_MINUTE\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 10800.0, denominator: 3.14159265358979323846264338327950, offset: 0.0 }, displayLabel: \"'\", altDisplayLabels: [\"min\"] },\r\n { name: \"Units.ARC_SECOND\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 648000.0, denominator: 3.1415926535897932384626433832795, offset: 0.0 }, displayLabel: '\"', altDisplayLabels: [\"sec\"] },\r\n { name: \"Units.GRAD\", phenomenon: \"Units.ANGLE\", system: \"Units.METRIC\", conversion: { numerator: 200, denominator: 3.1415926535897932384626433832795, offset: 0.0 }, displayLabel: \"grad\", altDisplayLabels: [\"gd\"] },\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\", altDisplayLabels: [\"sec\"] },\r\n { name: \"Units.MIN\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 60.0, offset: 0.0 }, displayLabel: \"min\", altDisplayLabels: [] },\r\n { name: \"Units.HR\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 3600.0, offset: 0.0 }, displayLabel: \"h\", altDisplayLabels: [\"hr\"] },\r\n { name: \"Units.DAY\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 86400.0, offset: 0.0 }, displayLabel: \"days\", altDisplayLabels: [\"day\"] },\r\n { name: \"Units.WEEK\", phenomenon: \"Units.TIME\", system: \"Units.INTERNATIONAL\", conversion: { numerator: 1.0, denominator: 604800.0, offset: 0.0 }, displayLabel: \"weeks\", altDisplayLabels: [\"week\"] },\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\", altDisplayLabels: [\"year\"] },\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\", altDisplayLabels: [\"meter\"] },\r\n { name: \"Units.MM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"mm\", altDisplayLabels: [\"MM\"] },\r\n { name: \"Units.CM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 100.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"cm\", altDisplayLabels: [\"CM\"] },\r\n { name: \"Units.DM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 10.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"dm\", altDisplayLabels: [\"DM\"] },\r\n { name: \"Units.KM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1.0, denominator: 1000.0, offset: 0.0 }, displayLabel: \"km\", altDisplayLabels: [\"KM\"] },\r\n { name: \"Units.UM\", phenomenon: \"Units.LENGTH\", system: \"Units.METRIC\", conversion: { numerator: 1000000.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"µm\", altDisplayLabels: [] },\r\n { name: \"Units.MILLIINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"mil\", altDisplayLabels: [] },\r\n { name: \"Units.MICROINCH\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000000.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"µin\", altDisplayLabels: [] },\r\n { name: \"Units.MILLIFOOT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1000.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"mft\", altDisplayLabels: [] },\r\n { name: \"Units.IN\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.0254, offset: 0.0 }, displayLabel: \"in\", altDisplayLabels: [\"IN\", \"\\\"\"] },\r\n { name: \"Units.FT\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.3048, offset: 0.0 }, displayLabel: \"ft\", altDisplayLabels: [\"F\", \"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\", altDisplayLabels: [\"CHAIN\"] },\r\n { name: \"Units.YRD\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.9144, offset: 0.0 }, displayLabel: \"yd\", altDisplayLabels: [\"YRD\", \"yrd\"] },\r\n { name: \"Units.MILE\", phenomenon: \"Units.LENGTH\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 1609.344, offset: 0.0 }, displayLabel: \"mi\", altDisplayLabels: [\"mile\", \"Miles\", \"Mile\"] },\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)\", altDisplayLabels: [\"ft\", \"SF\", \"USF\", \"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)\", altDisplayLabels: [\"USY\", \"yards (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)\", altDisplayLabels: [\"USI\", \"inches (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)\", altDisplayLabels: [\"miles (US Survey)\", \"mile (US Survey)\", \"USM\"] },\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)\", altDisplayLabels: [\"chains (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²\", altDisplayLabels: [\"sf\"] },\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)\", altDisplayLabels: [\"sussf\"] },\r\n { name: \"Units.SQ_M\", phenomenon: \"Units.AREA\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m²\", altDisplayLabels: [\"sm\"] },\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³\", altDisplayLabels: [\"cf\"] },\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³\", altDisplayLabels: [\"cf\"] },\r\n { name: \"Units.CUB_YRD\", phenomenon: \"Units.VOLUME\", system: \"Units.USCUSTOM\", conversion: { numerator: 1.0, denominator: 0.76455486, offset: 0.0 }, displayLabel: \"yd³\", altDisplayLabels: [\"cy\"] },\r\n { name: \"Units.CUB_M\", phenomenon: \"Units.VOLUME\", system: \"Units.SI\", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: \"m³\", altDisplayLabels: [\"cm\"] },\r\n];\r\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module QuantityFormatting
3
3
  */
4
4
  import { BeUiEvent } from "@itwin/core-bentley";
5
- import { FormatProps, FormatterSpec, ParserSpec, QuantityParseResult, UnitConversion, UnitProps, UnitsProvider, UnitSystemKey } from "@itwin/core-quantity";
5
+ import { AlternateUnitLabelsProvider, FormatProps, FormatterSpec, ParserSpec, QuantityParseResult, UnitConversion, UnitProps, UnitsProvider, UnitSystemKey } from "@itwin/core-quantity";
6
6
  import { IModelConnection } from "../IModelConnection";
7
7
  /** Defines standard format types for tools that need to display measurements to user. Kept only to provide compatibility for existing API.
8
8
  * @beta
@@ -26,6 +26,21 @@ export declare type QuantityTypeArg = QuantityType | string;
26
26
  * @beta
27
27
  */
28
28
  export declare type QuantityTypeKey = string;
29
+ /** String used to uniquely identify a UnitProp.
30
+ * @beta
31
+ */
32
+ export declare type UnitNameKey = string;
33
+ /**
34
+ * Class that contains alternate Unit Labels. These labels are used when parsing strings to quantities.
35
+ * One use case is to allow a "^", which is easily input, to be used to specify "°".
36
+ * @internal
37
+ */
38
+ export declare class AlternateUnitLabelsRegistry implements AlternateUnitLabelsProvider {
39
+ private _alternateLabelRegistry;
40
+ addAlternateLabels(key: UnitNameKey, ...labels: string[]): void;
41
+ constructor(defaultAlternates?: Map<UnitNameKey, Set<string>>);
42
+ getAlternateUnitLabels(unit: UnitProps): string[] | undefined;
43
+ }
29
44
  /** Function to return a QuantityTypeKey given either a QuantityType or a string
30
45
  * @beta
31
46
  */
@@ -99,7 +114,7 @@ export interface QuantityTypeDefinition {
99
114
  /** Generate a [FormatterSpec]$(core-quantity) that will be called to format values.*/
100
115
  generateFormatterSpec: (formatProps: FormatProps, unitsProvider: UnitsProvider) => Promise<FormatterSpec>;
101
116
  /** Generate a [ParserSpec]$(core-quantity) that will be called to parse a string into a quantity value.*/
102
- generateParserSpec: (formatProps: FormatProps, unitsProvider: UnitsProvider) => Promise<ParserSpec>;
117
+ generateParserSpec: (formatProps: FormatProps, unitsProvider: UnitsProvider, alternateUnitLabelsProvider?: AlternateUnitLabelsProvider) => Promise<ParserSpec>;
103
118
  }
104
119
  /** CustomQuantityTypeDefinition interface is used to define a Custom quantity type that can be registered with the [[QuantityFormatter]].
105
120
  * A custom quantity formatter must be able to generate a FormatterSpec and ParserSpec that will be called to format and parse values.
@@ -201,13 +216,14 @@ export interface UnitFormattingSettingsProvider {
201
216
  */
202
217
  export declare class QuantityFormatter implements UnitsProvider {
203
218
  private _unitsProvider;
219
+ private _alternateUnitLabelsRegistry;
204
220
  protected _quantityTypeRegistry: Map<QuantityTypeKey, QuantityTypeDefinition>;
205
221
  protected _activeUnitSystem: UnitSystemKey;
206
222
  protected _activeFormatSpecsByType: Map<string, FormatterSpec>;
207
223
  protected _activeParserSpecsByType: Map<string, ParserSpec>;
208
224
  protected _overrideFormatPropsByUnitSystem: Map<UnitSystemKey, Map<string, FormatProps>>;
209
225
  protected _unitFormattingSettingsProvider: UnitFormattingSettingsProvider | undefined;
210
- /** set the settings provider and if not imodel specific initialize setting for user. */
226
+ /** Set the settings provider and if not iModel specific initialize setting for user. */
211
227
  setUnitFormattingSettingsProvider(provider: UnitFormattingSettingsProvider): Promise<void>;
212
228
  /** Called after the active unit system is changed.
213
229
  * The system will report the UnitSystemKey/name of the the system that was activated.
@@ -243,6 +259,13 @@ export declare class QuantityFormatter implements UnitsProvider {
243
259
  */
244
260
  onInitialized(): Promise<void>;
245
261
  get quantityTypesRegistry(): Map<string, QuantityTypeDefinition>;
262
+ get alternateUnitLabelsProvider(): AlternateUnitLabelsProvider;
263
+ /**
264
+ * Add one or more alternate labels for a unit - these labels are used during string parsing.
265
+ * @param key UnitNameKey which comes from `UnitProps.name`
266
+ * @param labels one or more unit labels
267
+ */
268
+ addAlternateLabels(key: UnitNameKey, ...labels: string[]): void;
246
269
  get unitsProvider(): UnitsProvider;
247
270
  set unitsProvider(unitsProvider: UnitsProvider);
248
271
  registerQuantityType(entry: CustomQuantityTypeDefinition, replace?: boolean): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  import { BeUiEvent } from "@itwin/core-bentley";
9
9
  import { Format, FormatterSpec, ParseError, ParserSpec, } from "@itwin/core-quantity";
10
10
  import { IModelApp } from "../IModelApp";
11
- import { BasicUnitsProvider } from "./BasicUnitsProvider";
11
+ import { BasicUnitsProvider, getDefaultAlternateUnitLabels } from "./BasicUnitsProvider";
12
12
  // cSpell:ignore FORMATPROPS FORMATKEY ussurvey uscustomary USCUSTOM
13
13
  /** Defines standard format types for tools that need to display measurements to user. Kept only to provide compatibility for existing API.
14
14
  * @beta
@@ -25,6 +25,29 @@ export var QuantityType;
25
25
  QuantityType[QuantityType["LengthSurvey"] = 8] = "LengthSurvey";
26
26
  QuantityType[QuantityType["LengthEngineering"] = 9] = "LengthEngineering";
27
27
  })(QuantityType || (QuantityType = {}));
28
+ /**
29
+ * Class that contains alternate Unit Labels. These labels are used when parsing strings to quantities.
30
+ * One use case is to allow a "^", which is easily input, to be used to specify "°".
31
+ * @internal
32
+ */
33
+ export class AlternateUnitLabelsRegistry {
34
+ constructor(defaultAlternates) {
35
+ this._alternateLabelRegistry = new Map();
36
+ if (defaultAlternates) {
37
+ this._alternateLabelRegistry = defaultAlternates;
38
+ }
39
+ }
40
+ addAlternateLabels(key, ...labels) {
41
+ [...labels].forEach((value) => { var _a; return (_a = this._alternateLabelRegistry.get(key)) === null || _a === void 0 ? void 0 : _a.add(value); });
42
+ }
43
+ getAlternateUnitLabels(unit) {
44
+ const key = unit.name;
45
+ const labels = this._alternateLabelRegistry.get(key);
46
+ if (labels)
47
+ return [...labels.values()];
48
+ return undefined;
49
+ }
50
+ }
28
51
  /** Function to return a QuantityTypeKey given either a QuantityType or a string
29
52
  * @beta
30
53
  */
@@ -69,16 +92,18 @@ class StandardQuantityTypeDefinition {
69
92
  }
70
93
  get key() { return this._key; }
71
94
  get label() {
95
+ var _a;
72
96
  if (!this._label) {
73
97
  this._label = IModelApp.localization.getLocalizedString(this._labelKey);
74
98
  }
75
- return this._label;
99
+ return (_a = this._label) !== null && _a !== void 0 ? _a : "";
76
100
  }
77
101
  get description() {
102
+ var _a;
78
103
  if (!this._description) {
79
104
  this._description = IModelApp.localization.getLocalizedString(this._descriptionKey);
80
105
  }
81
- return this._description;
106
+ return (_a = this._description) !== null && _a !== void 0 ? _a : this.label;
82
107
  }
83
108
  getDefaultFormatPropsBySystem(requestedSystem) {
84
109
  // Fallback same as Format "DefaultRealU" in Formats ecschema
@@ -104,9 +129,9 @@ class StandardQuantityTypeDefinition {
104
129
  const format = await Format.createFromJSON(this.key, unitsProvider, formatProps);
105
130
  return FormatterSpec.create(format.name, format, unitsProvider, this.persistenceUnit);
106
131
  }
107
- async generateParserSpec(formatProps, unitsProvider) {
132
+ async generateParserSpec(formatProps, unitsProvider, alternateUnitLabelsProvider) {
108
133
  const format = await Format.createFromJSON(this.key, unitsProvider, formatProps);
109
- return ParserSpec.create(format, unitsProvider, this.persistenceUnit);
134
+ return ParserSpec.create(format, unitsProvider, this.persistenceUnit, alternateUnitLabelsProvider);
110
135
  }
111
136
  }
112
137
  /** Class that supports formatting quantity values into strings and parsing strings into quantity values. This class also maintains
@@ -128,6 +153,7 @@ export class QuantityFormatter {
128
153
  */
129
154
  constructor(showMetricOrUnitSystem) {
130
155
  this._unitsProvider = new BasicUnitsProvider();
156
+ this._alternateUnitLabelsRegistry = new AlternateUnitLabelsRegistry(getDefaultAlternateUnitLabels());
131
157
  this._quantityTypeRegistry = new Map();
132
158
  this._activeUnitSystem = "imperial";
133
159
  this._activeFormatSpecsByType = new Map();
@@ -150,7 +176,7 @@ export class QuantityFormatter {
150
176
  this._activeUnitSystem = showMetricOrUnitSystem;
151
177
  }
152
178
  }
153
- /** set the settings provider and if not imodel specific initialize setting for user. */
179
+ /** Set the settings provider and if not iModel specific initialize setting for user. */
154
180
  async setUnitFormattingSettingsProvider(provider) {
155
181
  this._unitFormattingSettingsProvider = provider;
156
182
  if (!provider.maintainOverridesPerIModel)
@@ -224,7 +250,7 @@ export class QuantityFormatter {
224
250
  }
225
251
  async loadFormatAndParserSpec(quantityTypeDefinition, formatProps) {
226
252
  const formatterSpec = await quantityTypeDefinition.generateFormatterSpec(formatProps, this.unitsProvider);
227
- const parserSpec = await quantityTypeDefinition.generateParserSpec(formatProps, this.unitsProvider);
253
+ const parserSpec = await quantityTypeDefinition.generateParserSpec(formatProps, this.unitsProvider, this.alternateUnitLabelsProvider);
228
254
  this._activeFormatSpecsByType.set(quantityTypeDefinition.key, formatterSpec);
229
255
  this._activeParserSpecsByType.set(quantityTypeDefinition.key, parserSpec);
230
256
  }
@@ -290,6 +316,18 @@ export class QuantityFormatter {
290
316
  get quantityTypesRegistry() {
291
317
  return this._quantityTypeRegistry;
292
318
  }
319
+ get alternateUnitLabelsProvider() {
320
+ return this._alternateUnitLabelsRegistry;
321
+ }
322
+ /**
323
+ * Add one or more alternate labels for a unit - these labels are used during string parsing.
324
+ * @param key UnitNameKey which comes from `UnitProps.name`
325
+ * @param labels one or more unit labels
326
+ */
327
+ addAlternateLabels(key, ...labels) {
328
+ this._alternateUnitLabelsRegistry.addAlternateLabels(key, ...labels);
329
+ this.onUnitsProviderChanged.emit();
330
+ }
293
331
  get unitsProvider() {
294
332
  return this._unitsProvider;
295
333
  }