@itwin/imodel-components-react 4.0.0-dev.10 → 4.0.0-dev.12

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 (362) hide show
  1. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
  2. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
  3. package/lib/cjs/imodel-components-react/UiIModelComponents.js +77 -79
  4. package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
  5. package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  6. package/lib/cjs/imodel-components-react/color/AlphaSlider.js +186 -186
  7. package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
  8. package/lib/cjs/imodel-components-react/color/AlphaSlider.scss +63 -63
  9. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  10. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
  11. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +108 -107
  12. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  13. package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +90 -90
  14. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  15. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +74 -74
  16. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  17. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  18. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +145 -145
  19. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  20. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.scss +93 -93
  21. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  22. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
  23. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +139 -137
  24. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  25. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +62 -63
  26. package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
  27. package/lib/cjs/imodel-components-react/color/HueSlider.js +199 -199
  28. package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
  29. package/lib/cjs/imodel-components-react/color/HueSlider.scss +61 -61
  30. package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  31. package/lib/cjs/imodel-components-react/color/SaturationPicker.js +213 -213
  32. package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
  33. package/lib/cjs/imodel-components-react/color/SaturationPicker.scss +35 -35
  34. package/lib/cjs/imodel-components-react/color/Swatch.d.ts +22 -22
  35. package/lib/cjs/imodel-components-react/color/Swatch.js +60 -60
  36. package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
  37. package/lib/cjs/imodel-components-react/color/Swatch.scss +22 -23
  38. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  39. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +23 -23
  40. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
  41. package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  42. package/lib/cjs/imodel-components-react/editors/ColorEditor.js +151 -151
  43. package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
  44. package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +18 -18
  45. package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  46. package/lib/cjs/imodel-components-react/editors/WeightEditor.js +160 -160
  47. package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
  48. package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +16 -16
  49. package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  50. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +96 -96
  51. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  52. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  53. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  54. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +268 -265
  55. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  56. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +106 -107
  57. package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  58. package/lib/cjs/imodel-components-react/lineweight/Swatch.js +85 -85
  59. package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
  60. package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +48 -48
  61. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  62. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +159 -159
  63. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  64. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +52 -52
  65. package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  66. package/lib/cjs/imodel-components-react/navigationaids/Cube.js +127 -127
  67. package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
  68. package/lib/cjs/imodel-components-react/navigationaids/Cube.scss +19 -19
  69. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +174 -174
  70. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  71. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +638 -634
  72. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  73. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -182
  74. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  75. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
  76. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +653 -647
  77. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  78. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -134
  79. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  80. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +99 -99
  81. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  82. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +63 -63
  83. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  84. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +53 -53
  85. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  86. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  87. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
  88. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +84 -83
  89. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  90. package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  91. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +86 -86
  92. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  93. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  94. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +109 -109
  95. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  96. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  97. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +133 -133
  98. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  99. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  100. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +184 -184
  101. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  102. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  103. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +145 -145
  104. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  105. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  106. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +59 -59
  107. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  108. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  109. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +47 -47
  110. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  111. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  112. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +54 -54
  113. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  114. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  115. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +48 -48
  116. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  117. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  118. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +50 -50
  119. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  120. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  121. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +58 -58
  122. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  123. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  124. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +47 -47
  125. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  126. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  127. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +56 -56
  128. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  129. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  130. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +95 -95
  131. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  132. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  133. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +119 -119
  134. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  135. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  136. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +143 -143
  137. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  138. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  139. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
  140. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  141. package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  142. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +81 -81
  143. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  144. package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +26 -26
  145. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  146. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
  147. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +95 -91
  148. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  149. package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +28 -31
  150. package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  151. package/lib/cjs/imodel-components-react/timeline/Scrubber.js +191 -191
  152. package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
  153. package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +105 -112
  154. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  155. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
  156. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +428 -424
  157. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  158. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +359 -356
  159. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  160. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +54 -54
  161. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  162. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  163. package/lib/cjs/imodel-components-react/timeline/Timeline.scss +164 -164
  164. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +133 -133
  165. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  166. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +365 -358
  167. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  168. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +161 -164
  169. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +174 -174
  170. package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
  171. package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
  172. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  173. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +274 -274
  174. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  175. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  176. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
  177. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  178. package/lib/cjs/imodel-components-react.d.ts +82 -82
  179. package/lib/cjs/imodel-components-react.js +101 -101
  180. package/lib/cjs/imodel-components-react.js.map +1 -1
  181. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
  182. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
  183. package/lib/esm/imodel-components-react/UiIModelComponents.js +73 -75
  184. package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
  185. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  186. package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
  187. package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
  188. package/lib/esm/imodel-components-react/color/AlphaSlider.scss +63 -63
  189. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  190. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
  191. package/lib/esm/imodel-components-react/color/ColorPickerButton.js +83 -82
  192. package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  193. package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +90 -90
  194. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  195. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
  196. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  197. package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  198. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +122 -122
  199. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  200. package/lib/esm/imodel-components-react/color/ColorPickerPanel.scss +93 -93
  201. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  202. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
  203. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +114 -112
  204. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  205. package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +62 -63
  206. package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
  207. package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
  208. package/lib/esm/imodel-components-react/color/HueSlider.js.map +1 -1
  209. package/lib/esm/imodel-components-react/color/HueSlider.scss +61 -61
  210. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  211. package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
  212. package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +1 -1
  213. package/lib/esm/imodel-components-react/color/SaturationPicker.scss +35 -35
  214. package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
  215. package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
  216. package/lib/esm/imodel-components-react/color/Swatch.js.map +1 -1
  217. package/lib/esm/imodel-components-react/color/Swatch.scss +22 -23
  218. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  219. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
  220. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
  221. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  222. package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
  223. package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +1 -1
  224. package/lib/esm/imodel-components-react/editors/ColorEditor.scss +18 -18
  225. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  226. package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
  227. package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +1 -1
  228. package/lib/esm/imodel-components-react/editors/WeightEditor.scss +16 -16
  229. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  230. package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
  231. package/lib/esm/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  232. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  233. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  234. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +243 -240
  235. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  236. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +106 -107
  237. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  238. package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
  239. package/lib/esm/imodel-components-react/lineweight/Swatch.js.map +1 -1
  240. package/lib/esm/imodel-components-react/lineweight/Swatch.scss +48 -48
  241. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  242. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +133 -133
  243. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  244. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +52 -52
  245. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  246. package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
  247. package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +1 -1
  248. package/lib/esm/imodel-components-react/navigationaids/Cube.scss +19 -19
  249. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +174 -174
  250. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  251. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +610 -606
  252. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  253. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -182
  254. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  255. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
  256. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +626 -620
  257. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  258. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -134
  259. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  260. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
  261. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  262. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +63 -63
  263. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  264. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +30 -30
  265. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  266. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  267. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
  268. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +61 -60
  269. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  270. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  271. package/lib/esm/imodel-components-react/quantityformat/FormatType.js +63 -63
  272. package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  273. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  274. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +83 -83
  275. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  276. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  277. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +110 -110
  278. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  279. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  280. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +158 -158
  281. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  282. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  283. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +122 -122
  284. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  285. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  286. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
  287. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  288. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  289. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
  290. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  291. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  292. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
  293. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  294. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  295. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
  296. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  297. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  298. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
  299. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  300. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  301. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
  302. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  303. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  304. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
  305. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  306. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  307. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
  308. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  309. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  310. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +69 -69
  311. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  312. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  313. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
  314. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  315. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  316. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +139 -139
  317. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  318. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  319. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
  320. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  321. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  322. package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
  323. package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  324. package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +26 -26
  325. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  326. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
  327. package/lib/esm/imodel-components-react/timeline/PlayerButton.js +68 -64
  328. package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  329. package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +28 -31
  330. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  331. package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
  332. package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +1 -1
  333. package/lib/esm/imodel-components-react/timeline/Scrubber.scss +105 -112
  334. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  335. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
  336. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +402 -398
  337. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  338. package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +359 -356
  339. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  340. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
  341. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  342. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  343. package/lib/esm/imodel-components-react/timeline/Timeline.scss +164 -164
  344. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +133 -133
  345. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  346. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +339 -332
  347. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  348. package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +161 -164
  349. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +174 -174
  350. package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
  351. package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
  352. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  353. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +251 -251
  354. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  355. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  356. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +95 -95
  357. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  358. package/lib/esm/imodel-components-react.d.ts +82 -82
  359. package/lib/esm/imodel-components-react.js +87 -87
  360. package/lib/esm/imodel-components-react.js.map +1 -1
  361. package/lib/public/locales/en/UiIModelComponents.json +139 -139
  362. package/package.json +22 -26
@@ -1,134 +1,134 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module PropertyEditors
7
- */
8
- import "./WeightEditor.scss";
9
- import classnames from "classnames";
10
- import * as React from "react";
11
- import { PropertyValueFormat, StandardEditorNames, StandardTypeNames } from "@itwin/appui-abstract";
12
- import { PropertyEditorBase, PropertyEditorManager } from "@itwin/components-react";
13
- import { WeightPickerButton } from "../lineweight/WeightPickerButton";
14
- /** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component
15
- * @public
16
- */
17
- export class WeightEditor extends React.PureComponent {
18
- constructor(props) {
19
- super(props);
20
- this._control = null;
21
- this._isMounted = false;
22
- this._availableWeights = [];
23
- this._divElement = React.createRef();
24
- /** @internal */
25
- this.state = {
26
- weightValue: 0,
27
- readonly: false,
28
- };
29
- this._onLineWeightPick = (weight) => {
30
- const propertyRecord = this.props.propertyRecord;
31
- this.setState({
32
- weightValue: weight,
33
- }, async () => {
34
- // istanbul ignore else
35
- if (propertyRecord && this.props.onCommit) {
36
- const propertyValue = await this.getPropertyValue();
37
- // istanbul ignore else
38
- if (propertyValue !== undefined) {
39
- this.props.onCommit({ propertyRecord, newValue: propertyValue });
40
- }
41
- }
42
- });
43
- };
44
- // TODO: add support for following if we need to specify set of weights to display
45
- // const record = this.props.propertyRecord;
46
- // if (record && record.property && record.property.editor && record.property.editor.params) {
47
- // const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;
48
- // // istanbul ignore else
49
- // if (weightParams) {
50
- // weightParams.weightValues.forEach((weight: number) => {
51
- // this._availableWeights.push(weight);
52
- // });
53
- // }
54
- // }
55
- }
56
- async getPropertyValue() {
57
- const record = this.props.propertyRecord;
58
- let propertyValue;
59
- // istanbul ignore else
60
- if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
61
- propertyValue = {
62
- valueFormat: PropertyValueFormat.Primitive,
63
- value: this.state.weightValue,
64
- displayValue: "",
65
- };
66
- }
67
- return propertyValue;
68
- }
69
- get htmlElement() {
70
- return this._divElement.current;
71
- }
72
- get hasFocus() {
73
- let containsFocus = false;
74
- // istanbul ignore else
75
- if (this._divElement.current)
76
- containsFocus = this._divElement.current.contains(document.activeElement);
77
- return containsFocus;
78
- }
79
- setFocus() {
80
- // istanbul ignore else
81
- if (this._control && !this.state.isDisabled) {
82
- this._control.setFocus();
83
- }
84
- }
85
- /** @internal */
86
- componentDidMount() {
87
- this._isMounted = true;
88
- this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
89
- }
90
- /** @internal */
91
- componentWillUnmount() {
92
- this._isMounted = false;
93
- }
94
- /** @internal */
95
- componentDidUpdate(prevProps) {
96
- if (this.props.propertyRecord !== prevProps.propertyRecord) {
97
- this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
98
- }
99
- }
100
- async setStateFromProps() {
101
- const record = this.props.propertyRecord;
102
- let initialValue = 0;
103
- // istanbul ignore else
104
- if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
105
- initialValue = record.value.value;
106
- }
107
- const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;
108
- const isDisabled = record ? record.isDisabled : undefined;
109
- // istanbul ignore else
110
- if (this._isMounted)
111
- this.setState({ weightValue: initialValue, readonly, isDisabled }, () => {
112
- if (this.props.setFocus) {
113
- this.setFocus();
114
- }
115
- });
116
- }
117
- /** @internal */
118
- render() {
119
- return (React.createElement("div", { className: classnames("components-weight-editor", this.props.className), style: this.props.style, ref: this._divElement },
120
- React.createElement(WeightPickerButton, { ref: (control) => this._control = control, activeWeight: this.state.weightValue, weights: this._availableWeights.length > 0 ? /* istanbul ignore next */ this._availableWeights : undefined, disabled: this.state.isDisabled ? true : false, readonly: this.state.readonly, onLineWeightPick: this._onLineWeightPick, "data-testid": "components-weight-editor" })));
121
- }
122
- }
123
- /** Weight Property Editor registered for the "number" type name and "weight-picker" editor name.
124
- * It uses the [[WeightEditor]] React component.
125
- * @public
126
- */
127
- export class WeightPropertyEditor extends PropertyEditorBase {
128
- // istanbul ignore next
129
- get reactNode() {
130
- return React.createElement(WeightEditor, null);
131
- }
132
- }
133
- PropertyEditorManager.registerEditor(StandardTypeNames.Number, WeightPropertyEditor, StandardEditorNames.WeightPicker);
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module PropertyEditors
7
+ */
8
+ import "./WeightEditor.scss";
9
+ import classnames from "classnames";
10
+ import * as React from "react";
11
+ import { PropertyValueFormat, StandardEditorNames, StandardTypeNames } from "@itwin/appui-abstract";
12
+ import { PropertyEditorBase, PropertyEditorManager } from "@itwin/components-react";
13
+ import { WeightPickerButton } from "../lineweight/WeightPickerButton";
14
+ /** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component
15
+ * @public
16
+ */
17
+ export class WeightEditor extends React.PureComponent {
18
+ constructor(props) {
19
+ super(props);
20
+ this._control = null;
21
+ this._isMounted = false;
22
+ this._availableWeights = [];
23
+ this._divElement = React.createRef();
24
+ /** @internal */
25
+ this.state = {
26
+ weightValue: 0,
27
+ readonly: false,
28
+ };
29
+ this._onLineWeightPick = (weight) => {
30
+ const propertyRecord = this.props.propertyRecord;
31
+ this.setState({
32
+ weightValue: weight,
33
+ }, async () => {
34
+ // istanbul ignore else
35
+ if (propertyRecord && this.props.onCommit) {
36
+ const propertyValue = await this.getPropertyValue();
37
+ // istanbul ignore else
38
+ if (propertyValue !== undefined) {
39
+ this.props.onCommit({ propertyRecord, newValue: propertyValue });
40
+ }
41
+ }
42
+ });
43
+ };
44
+ // TODO: add support for following if we need to specify set of weights to display
45
+ // const record = this.props.propertyRecord;
46
+ // if (record && record.property && record.property.editor && record.property.editor.params) {
47
+ // const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;
48
+ // // istanbul ignore else
49
+ // if (weightParams) {
50
+ // weightParams.weightValues.forEach((weight: number) => {
51
+ // this._availableWeights.push(weight);
52
+ // });
53
+ // }
54
+ // }
55
+ }
56
+ async getPropertyValue() {
57
+ const record = this.props.propertyRecord;
58
+ let propertyValue;
59
+ // istanbul ignore else
60
+ if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
61
+ propertyValue = {
62
+ valueFormat: PropertyValueFormat.Primitive,
63
+ value: this.state.weightValue,
64
+ displayValue: "",
65
+ };
66
+ }
67
+ return propertyValue;
68
+ }
69
+ get htmlElement() {
70
+ return this._divElement.current;
71
+ }
72
+ get hasFocus() {
73
+ let containsFocus = false;
74
+ // istanbul ignore else
75
+ if (this._divElement.current)
76
+ containsFocus = this._divElement.current.contains(document.activeElement);
77
+ return containsFocus;
78
+ }
79
+ setFocus() {
80
+ // istanbul ignore else
81
+ if (this._control && !this.state.isDisabled) {
82
+ this._control.setFocus();
83
+ }
84
+ }
85
+ /** @internal */
86
+ componentDidMount() {
87
+ this._isMounted = true;
88
+ this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
89
+ }
90
+ /** @internal */
91
+ componentWillUnmount() {
92
+ this._isMounted = false;
93
+ }
94
+ /** @internal */
95
+ componentDidUpdate(prevProps) {
96
+ if (this.props.propertyRecord !== prevProps.propertyRecord) {
97
+ this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
98
+ }
99
+ }
100
+ async setStateFromProps() {
101
+ const record = this.props.propertyRecord;
102
+ let initialValue = 0;
103
+ // istanbul ignore else
104
+ if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
105
+ initialValue = record.value.value;
106
+ }
107
+ const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;
108
+ const isDisabled = record ? record.isDisabled : undefined;
109
+ // istanbul ignore else
110
+ if (this._isMounted)
111
+ this.setState({ weightValue: initialValue, readonly, isDisabled }, () => {
112
+ if (this.props.setFocus) {
113
+ this.setFocus();
114
+ }
115
+ });
116
+ }
117
+ /** @internal */
118
+ render() {
119
+ return (React.createElement("div", { className: classnames("components-weight-editor", this.props.className), style: this.props.style, ref: this._divElement },
120
+ React.createElement(WeightPickerButton, { ref: (control) => this._control = control, activeWeight: this.state.weightValue, weights: this._availableWeights.length > 0 ? /* istanbul ignore next */ this._availableWeights : undefined, disabled: this.state.isDisabled ? true : false, readonly: this.state.readonly, onLineWeightPick: this._onLineWeightPick, "data-testid": "components-weight-editor" })));
121
+ }
122
+ }
123
+ /** Weight Property Editor registered for the "number" type name and "weight-picker" editor name.
124
+ * It uses the [[WeightEditor]] React component.
125
+ * @public
126
+ */
127
+ export class WeightPropertyEditor extends PropertyEditorBase {
128
+ // istanbul ignore next
129
+ get reactNode() {
130
+ return React.createElement(WeightEditor, null);
131
+ }
132
+ }
133
+ PropertyEditorManager.registerEditor(StandardTypeNames.Number, WeightPropertyEditor, StandardEditorNames.WeightPicker);
134
134
  //# sourceMappingURL=WeightEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WeightEditor.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/editors/WeightEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyEditors\n */\n\nimport \"./WeightEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { PropertyRecord, PropertyValue, PropertyValueFormat, StandardEditorNames, StandardTypeNames } from \"@itwin/appui-abstract\";\nimport { PropertyEditorBase, PropertyEditorManager, PropertyEditorProps, TypeEditor } from \"@itwin/components-react\";\nimport { WeightPickerButton } from \"../lineweight/WeightPickerButton\";\n\n// cspell:ignore lineweight\n\n/** @internal */\ninterface WeightEditorState {\n weightValue: number;\n readonly: boolean;\n isDisabled?: boolean;\n}\n\n/** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component\n * @public\n */\nexport class WeightEditor extends React.PureComponent<PropertyEditorProps, WeightEditorState> implements TypeEditor {\n private _control: any | null = null;\n private _isMounted = false;\n private _availableWeights: number[] = [];\n private _divElement = React.createRef<HTMLDivElement>();\n\n /** @internal */\n public override readonly state: Readonly<WeightEditorState> = {\n weightValue: 0,\n readonly: false,\n };\n\n constructor(props: PropertyEditorProps) {\n super(props);\n\n // TODO: add support for following if we need to specify set of weights to display\n // const record = this.props.propertyRecord;\n // if (record && record.property && record.property.editor && record.property.editor.params) {\n // const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;\n // // istanbul ignore else\n // if (weightParams) {\n // weightParams.weightValues.forEach((weight: number) => {\n // this._availableWeights.push(weight);\n // });\n // }\n // }\n }\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.weightValue,\n displayValue: \"\",\n };\n }\n\n return propertyValue;\n }\n\n public get htmlElement(): HTMLElement | null {\n return this._divElement.current;\n }\n\n public get hasFocus(): boolean {\n let containsFocus = false;\n // istanbul ignore else\n if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n private setFocus(): void {\n // istanbul ignore else\n if (this._control && !this.state.isDisabled) {\n this._control.setFocus();\n }\n }\n\n private _onLineWeightPick = (weight: number) => {\n const propertyRecord = this.props.propertyRecord as PropertyRecord;\n\n this.setState({\n weightValue: weight,\n }, async () => {\n // istanbul ignore else\n if (propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n // istanbul ignore else\n if (propertyValue !== undefined) {\n this.props.onCommit({ propertyRecord, newValue: propertyValue });\n }\n }\n });\n };\n\n /** @internal */\n public override componentDidMount() {\n this._isMounted = true;\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n\n /** @internal */\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n /** @internal */\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n }\n\n private async setStateFromProps() {\n const record = this.props.propertyRecord;\n let initialValue = 0;\n\n // istanbul ignore else\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n initialValue = record.value.value as number;\n }\n\n const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;\n const isDisabled = record ? record.isDisabled : undefined;\n\n // istanbul ignore else\n if (this._isMounted)\n this.setState(\n { weightValue: initialValue, readonly, isDisabled },\n () => {\n if (this.props.setFocus) {\n this.setFocus();\n }\n },\n );\n }\n\n /** @internal */\n public override render() {\n return (\n <div className={classnames(\"components-weight-editor\", this.props.className)} style={this.props.style} ref={this._divElement}>\n <WeightPickerButton ref={(control) => this._control = control}\n activeWeight={this.state.weightValue}\n weights={this._availableWeights.length > 0 ? /* istanbul ignore next */ this._availableWeights : undefined}\n disabled={this.state.isDisabled ? true : false}\n readonly={this.state.readonly}\n onLineWeightPick={this._onLineWeightPick}\n data-testid=\"components-weight-editor\" />\n </div>\n );\n }\n}\n\n/** Weight Property Editor registered for the \"number\" type name and \"weight-picker\" editor name.\n * It uses the [[WeightEditor]] React component.\n * @public\n */\nexport class WeightPropertyEditor extends PropertyEditorBase {\n // istanbul ignore next\n public get reactNode(): React.ReactNode {\n return <WeightEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(StandardTypeNames.Number, WeightPropertyEditor, StandardEditorNames.WeightPicker);\n"]}
1
+ {"version":3,"file":"WeightEditor.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/editors/WeightEditor.tsx"],"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 PropertyEditors\r\n */\r\n\r\nimport \"./WeightEditor.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { PropertyRecord, PropertyValue, PropertyValueFormat, StandardEditorNames, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { PropertyEditorBase, PropertyEditorManager, PropertyEditorProps, TypeEditor } from \"@itwin/components-react\";\r\nimport { WeightPickerButton } from \"../lineweight/WeightPickerButton\";\r\n\r\n// cspell:ignore lineweight\r\n\r\n/** @internal */\r\ninterface WeightEditorState {\r\n weightValue: number;\r\n readonly: boolean;\r\n isDisabled?: boolean;\r\n}\r\n\r\n/** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component\r\n * @public\r\n */\r\nexport class WeightEditor extends React.PureComponent<PropertyEditorProps, WeightEditorState> implements TypeEditor {\r\n private _control: any | null = null;\r\n private _isMounted = false;\r\n private _availableWeights: number[] = [];\r\n private _divElement = React.createRef<HTMLDivElement>();\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<WeightEditorState> = {\r\n weightValue: 0,\r\n readonly: false,\r\n };\r\n\r\n constructor(props: PropertyEditorProps) {\r\n super(props);\r\n\r\n // TODO: add support for following if we need to specify set of weights to display\r\n // const record = this.props.propertyRecord;\r\n // if (record && record.property && record.property.editor && record.property.editor.params) {\r\n // const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;\r\n // // istanbul ignore else\r\n // if (weightParams) {\r\n // weightParams.weightValues.forEach((weight: number) => {\r\n // this._availableWeights.push(weight);\r\n // });\r\n // }\r\n // }\r\n }\r\n\r\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\r\n const record = this.props.propertyRecord;\r\n let propertyValue: PropertyValue | undefined;\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n propertyValue = {\r\n valueFormat: PropertyValueFormat.Primitive,\r\n value: this.state.weightValue,\r\n displayValue: \"\",\r\n };\r\n }\r\n\r\n return propertyValue;\r\n }\r\n\r\n public get htmlElement(): HTMLElement | null {\r\n return this._divElement.current;\r\n }\r\n\r\n public get hasFocus(): boolean {\r\n let containsFocus = false;\r\n // istanbul ignore else\r\n if (this._divElement.current)\r\n containsFocus = this._divElement.current.contains(document.activeElement);\r\n return containsFocus;\r\n }\r\n\r\n private setFocus(): void {\r\n // istanbul ignore else\r\n if (this._control && !this.state.isDisabled) {\r\n this._control.setFocus();\r\n }\r\n }\r\n\r\n private _onLineWeightPick = (weight: number) => {\r\n const propertyRecord = this.props.propertyRecord as PropertyRecord;\r\n\r\n this.setState({\r\n weightValue: weight,\r\n }, async () => {\r\n // istanbul ignore else\r\n if (propertyRecord && this.props.onCommit) {\r\n const propertyValue = await this.getPropertyValue();\r\n // istanbul ignore else\r\n if (propertyValue !== undefined) {\r\n this.props.onCommit({ propertyRecord, newValue: propertyValue });\r\n }\r\n }\r\n });\r\n };\r\n\r\n /** @internal */\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n /** @internal */\r\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\r\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\r\n this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n }\r\n\r\n private async setStateFromProps() {\r\n const record = this.props.propertyRecord;\r\n let initialValue = 0;\r\n\r\n // istanbul ignore else\r\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\r\n initialValue = record.value.value as number;\r\n }\r\n\r\n const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;\r\n const isDisabled = record ? record.isDisabled : undefined;\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState(\r\n { weightValue: initialValue, readonly, isDisabled },\r\n () => {\r\n if (this.props.setFocus) {\r\n this.setFocus();\r\n }\r\n },\r\n );\r\n }\r\n\r\n /** @internal */\r\n public override render() {\r\n return (\r\n <div className={classnames(\"components-weight-editor\", this.props.className)} style={this.props.style} ref={this._divElement}>\r\n <WeightPickerButton ref={(control) => this._control = control}\r\n activeWeight={this.state.weightValue}\r\n weights={this._availableWeights.length > 0 ? /* istanbul ignore next */ this._availableWeights : undefined}\r\n disabled={this.state.isDisabled ? true : false}\r\n readonly={this.state.readonly}\r\n onLineWeightPick={this._onLineWeightPick}\r\n data-testid=\"components-weight-editor\" />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/** Weight Property Editor registered for the \"number\" type name and \"weight-picker\" editor name.\r\n * It uses the [[WeightEditor]] React component.\r\n * @public\r\n */\r\nexport class WeightPropertyEditor extends PropertyEditorBase {\r\n // istanbul ignore next\r\n public get reactNode(): React.ReactNode {\r\n return <WeightEditor />;\r\n }\r\n}\r\n\r\nPropertyEditorManager.registerEditor(StandardTypeNames.Number, WeightPropertyEditor, StandardEditorNames.WeightPicker);\r\n"]}
@@ -1,16 +1,16 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
-
7
- $components-weight-editor-item-height: 100%;
8
-
9
- .components-weight-editor {
10
- font-family: var(--iui-font-sans);
11
- font-size: var(--iui-font-size-1);
12
- color: $buic-foreground-body;
13
- border: none;
14
- box-sizing: border-box;
15
- height: $components-weight-editor-item-height;
16
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
+
7
+ $components-weight-editor-item-height: 100%;
8
+
9
+ .components-weight-editor {
10
+ font-family: var(--iui-font-sans);
11
+ font-size: var(--iui-font-size-1);
12
+ color: var(--iui-color-text);
13
+ border: none;
14
+ box-sizing: border-box;
15
+ height: $components-weight-editor-item-height;
16
+ }
@@ -1,26 +1,26 @@
1
- /** @packageDocumentation
2
- * @module Inputs
3
- */
4
- import * as React from "react";
5
- import { QuantityTypeArg } from "@itwin/core-frontend";
6
- import { CommonProps } from "@itwin/core-react";
7
- /** Props for [[QuantityInput]] control
8
- * @beta
9
- */
10
- export interface QuantityProps extends CommonProps {
11
- /** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend) */
12
- initialValue: number;
13
- /** Type of quantity being input. */
14
- quantityType: QuantityTypeArg;
15
- /** Function to call in the quantity value is changed. The value returned will be in 'persistence' units. */
16
- onQuantityChange: (newQuantityValue: number) => void;
17
- /** Set to `true` if value is for display only */
18
- readonly?: boolean;
19
- /** Provides ability to return reference to HTMLInputElement */
20
- ref?: React.Ref<HTMLInputElement>;
21
- }
22
- /** Input control that allows users to input a quantity and show the formatted string that represents the value.
23
- * @beta
24
- */
25
- export declare function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }: QuantityProps): JSX.Element;
1
+ /** @packageDocumentation
2
+ * @module Inputs
3
+ */
4
+ import * as React from "react";
5
+ import { QuantityTypeArg } from "@itwin/core-frontend";
6
+ import { CommonProps } from "@itwin/core-react";
7
+ /** Props for [[QuantityInput]] control
8
+ * @beta
9
+ */
10
+ export interface QuantityProps extends CommonProps {
11
+ /** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend) */
12
+ initialValue: number;
13
+ /** Type of quantity being input. */
14
+ quantityType: QuantityTypeArg;
15
+ /** Function to call in the quantity value is changed. The value returned will be in 'persistence' units. */
16
+ onQuantityChange: (newQuantityValue: number) => void;
17
+ /** Set to `true` if value is for display only */
18
+ readonly?: boolean;
19
+ /** Provides ability to return reference to HTMLInputElement */
20
+ ref?: React.Ref<HTMLInputElement>;
21
+ }
22
+ /** Input control that allows users to input a quantity and show the formatted string that represents the value.
23
+ * @beta
24
+ */
25
+ export declare function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }: QuantityProps): JSX.Element;
26
26
  //# sourceMappingURL=QuantityInput.d.ts.map
@@ -1,71 +1,71 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Inputs
7
- */
8
- import classnames from "classnames";
9
- import * as React from "react";
10
- import { IModelApp } from "@itwin/core-frontend";
11
- import { Parser } from "@itwin/core-quantity";
12
- import { UiIModelComponents } from "../UiIModelComponents";
13
- import { ParsedInput } from "@itwin/components-react";
14
- /** Input control that allows users to input a quantity and show the formatted string that represents the value.
15
- * @beta
16
- */
17
- export function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }) {
18
- const [formatterSpec, setFormatterSpec] = React.useState(() => IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
19
- const [parserSpec, setParserSpec] = React.useState(() => IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
20
- const formatValue = React.useCallback((value) => {
21
- // istanbul ignore else
22
- if (formatterSpec) {
23
- return formatterSpec.applyFormatting(value);
24
- }
25
- // istanbul ignore next
26
- return value.toFixed(2);
27
- }, [formatterSpec]);
28
- const parseString = React.useCallback((userInput) => {
29
- // istanbul ignore else
30
- if (parserSpec) {
31
- const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, parserSpec);
32
- // istanbul ignore else
33
- if (Parser.isParsedQuantity(parseResult)) {
34
- return { value: parseResult.value };
35
- }
36
- else {
37
- const statusId = Parser.isParseError(parseResult) ? parseResult.error.toString() : "Unknown";
38
- return { parseError: `${UiIModelComponents.translate("QuantityInput.NoParserDefined")}${statusId}` };
39
- }
40
- }
41
- // istanbul ignore next
42
- return { parseError: UiIModelComponents.translate("QuantityInput.NoParserDefined") };
43
- }, [parserSpec]);
44
- const classNames = classnames(className, "components-quantity-input");
45
- React.useEffect(() => {
46
- const handleUnitSystemChanged = (() => {
47
- setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
48
- setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
49
- });
50
- IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);
51
- return () => {
52
- IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);
53
- };
54
- }, [quantityType]);
55
- React.useEffect(() => {
56
- const handleUnitSystemChanged = ((args) => {
57
- const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);
58
- // istanbul ignore else
59
- if (args.quantityType === quantityKey) {
60
- setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
61
- setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
62
- }
63
- });
64
- IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleUnitSystemChanged);
65
- return () => {
66
- IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleUnitSystemChanged);
67
- };
68
- }, [quantityType]);
69
- return React.createElement(ParsedInput, { "data-testid": "components-quantity-input", ref: ref, style: style, className: classNames, onChange: onQuantityChange, initialValue: initialValue, readonly: readonly, formatValue: formatValue, parseString: parseString });
70
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Inputs
7
+ */
8
+ import classnames from "classnames";
9
+ import * as React from "react";
10
+ import { IModelApp } from "@itwin/core-frontend";
11
+ import { Parser } from "@itwin/core-quantity";
12
+ import { UiIModelComponents } from "../UiIModelComponents";
13
+ import { ParsedInput } from "@itwin/components-react";
14
+ /** Input control that allows users to input a quantity and show the formatted string that represents the value.
15
+ * @beta
16
+ */
17
+ export function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }) {
18
+ const [formatterSpec, setFormatterSpec] = React.useState(() => IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
19
+ const [parserSpec, setParserSpec] = React.useState(() => IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
20
+ const formatValue = React.useCallback((value) => {
21
+ // istanbul ignore else
22
+ if (formatterSpec) {
23
+ return formatterSpec.applyFormatting(value);
24
+ }
25
+ // istanbul ignore next
26
+ return value.toFixed(2);
27
+ }, [formatterSpec]);
28
+ const parseString = React.useCallback((userInput) => {
29
+ // istanbul ignore else
30
+ if (parserSpec) {
31
+ const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, parserSpec);
32
+ // istanbul ignore else
33
+ if (Parser.isParsedQuantity(parseResult)) {
34
+ return { value: parseResult.value };
35
+ }
36
+ else {
37
+ const statusId = Parser.isParseError(parseResult) ? parseResult.error.toString() : "Unknown";
38
+ return { parseError: `${UiIModelComponents.translate("QuantityInput.NoParserDefined")}${statusId}` };
39
+ }
40
+ }
41
+ // istanbul ignore next
42
+ return { parseError: UiIModelComponents.translate("QuantityInput.NoParserDefined") };
43
+ }, [parserSpec]);
44
+ const classNames = classnames(className, "components-quantity-input");
45
+ React.useEffect(() => {
46
+ const handleUnitSystemChanged = (() => {
47
+ setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
48
+ setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
49
+ });
50
+ IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);
51
+ return () => {
52
+ IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);
53
+ };
54
+ }, [quantityType]);
55
+ React.useEffect(() => {
56
+ const handleUnitSystemChanged = ((args) => {
57
+ const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);
58
+ // istanbul ignore else
59
+ if (args.quantityType === quantityKey) {
60
+ setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
61
+ setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
62
+ }
63
+ });
64
+ IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleUnitSystemChanged);
65
+ return () => {
66
+ IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleUnitSystemChanged);
67
+ };
68
+ }, [quantityType]);
69
+ return React.createElement(ParsedInput, { "data-testid": "components-quantity-input", ref: ref, style: style, className: classNames, onChange: onQuantityChange, initialValue: initialValue, readonly: readonly, formatValue: formatValue, parseString: parseString });
70
+ }
71
71
  //# sourceMappingURL=QuantityInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityInput.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityInput.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Inputs\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { IModelApp, QuantityFormatsChangedArgs, QuantityTypeArg } from \"@itwin/core-frontend\";\nimport { Parser } from \"@itwin/core-quantity\";\nimport { ParseResults } from \"@itwin/appui-abstract\";\nimport { CommonProps } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"../UiIModelComponents\";\nimport { ParsedInput } from \"@itwin/components-react\";\n\n/** Props for [[QuantityInput]] control\n * @beta\n */\nexport interface QuantityProps extends CommonProps {\n /** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend) */\n initialValue: number;\n /** Type of quantity being input. */\n quantityType: QuantityTypeArg;\n /** Function to call in the quantity value is changed. The value returned will be in 'persistence' units. */\n onQuantityChange: (newQuantityValue: number) => void;\n /** Set to `true` if value is for display only */\n readonly?: boolean;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n}\n\n/** Input control that allows users to input a quantity and show the formatted string that represents the value.\n * @beta\n */\nexport function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }: QuantityProps) {\n const [formatterSpec, setFormatterSpec] = React.useState(() => IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));\n const [parserSpec, setParserSpec] = React.useState(() => IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));\n\n const formatValue = React.useCallback((value: number) => {\n // istanbul ignore else\n if (formatterSpec) {\n return formatterSpec.applyFormatting(value);\n }\n // istanbul ignore next\n return value.toFixed(2);\n }, [formatterSpec]);\n\n const parseString = React.useCallback((userInput: string): ParseResults => {\n // istanbul ignore else\n if (parserSpec) {\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, parserSpec);\n // istanbul ignore else\n if (Parser.isParsedQuantity(parseResult)) {\n return { value: parseResult.value };\n } else {\n const statusId = Parser.isParseError(parseResult) ? parseResult.error.toString() : \"Unknown\";\n return { parseError: `${UiIModelComponents.translate(\"QuantityInput.NoParserDefined\")}${statusId}` };\n }\n }\n // istanbul ignore next\n return { parseError: UiIModelComponents.translate(\"QuantityInput.NoParserDefined\") };\n }, [parserSpec]);\n\n const classNames = classnames(className, \"components-quantity-input\");\n\n React.useEffect(() => {\n const handleUnitSystemChanged = ((): void => {\n setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));\n setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));\n });\n\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);\n return () => {\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);\n };\n }, [quantityType]);\n\n React.useEffect(() => {\n const handleUnitSystemChanged = ((args: QuantityFormatsChangedArgs): void => {\n const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);\n // istanbul ignore else\n if (args.quantityType === quantityKey) {\n setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));\n setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));\n }\n });\n\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleUnitSystemChanged);\n return () => {\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleUnitSystemChanged);\n };\n }, [quantityType]);\n\n return <ParsedInput data-testid=\"components-quantity-input\" ref={ref} style={style} className={classNames}\n onChange={onQuantityChange} initialValue={initialValue} readonly={readonly} formatValue={formatValue} parseString={parseString} />;\n}\n"]}
1
+ {"version":3,"file":"QuantityInput.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityInput.tsx"],"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 Inputs\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { IModelApp, QuantityFormatsChangedArgs, QuantityTypeArg } from \"@itwin/core-frontend\";\r\nimport { Parser } from \"@itwin/core-quantity\";\r\nimport { ParseResults } from \"@itwin/appui-abstract\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"../UiIModelComponents\";\r\nimport { ParsedInput } from \"@itwin/components-react\";\r\n\r\n/** Props for [[QuantityInput]] control\r\n * @beta\r\n */\r\nexport interface QuantityProps extends CommonProps {\r\n /** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend) */\r\n initialValue: number;\r\n /** Type of quantity being input. */\r\n quantityType: QuantityTypeArg;\r\n /** Function to call in the quantity value is changed. The value returned will be in 'persistence' units. */\r\n onQuantityChange: (newQuantityValue: number) => void;\r\n /** Set to `true` if value is for display only */\r\n readonly?: boolean;\r\n /** Provides ability to return reference to HTMLInputElement */\r\n ref?: React.Ref<HTMLInputElement>;\r\n}\r\n\r\n/** Input control that allows users to input a quantity and show the formatted string that represents the value.\r\n * @beta\r\n */\r\nexport function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }: QuantityProps) {\r\n const [formatterSpec, setFormatterSpec] = React.useState(() => IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));\r\n const [parserSpec, setParserSpec] = React.useState(() => IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));\r\n\r\n const formatValue = React.useCallback((value: number) => {\r\n // istanbul ignore else\r\n if (formatterSpec) {\r\n return formatterSpec.applyFormatting(value);\r\n }\r\n // istanbul ignore next\r\n return value.toFixed(2);\r\n }, [formatterSpec]);\r\n\r\n const parseString = React.useCallback((userInput: string): ParseResults => {\r\n // istanbul ignore else\r\n if (parserSpec) {\r\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, parserSpec);\r\n // istanbul ignore else\r\n if (Parser.isParsedQuantity(parseResult)) {\r\n return { value: parseResult.value };\r\n } else {\r\n const statusId = Parser.isParseError(parseResult) ? parseResult.error.toString() : \"Unknown\";\r\n return { parseError: `${UiIModelComponents.translate(\"QuantityInput.NoParserDefined\")}${statusId}` };\r\n }\r\n }\r\n // istanbul ignore next\r\n return { parseError: UiIModelComponents.translate(\"QuantityInput.NoParserDefined\") };\r\n }, [parserSpec]);\r\n\r\n const classNames = classnames(className, \"components-quantity-input\");\r\n\r\n React.useEffect(() => {\r\n const handleUnitSystemChanged = ((): void => {\r\n setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));\r\n setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));\r\n });\r\n\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);\r\n };\r\n }, [quantityType]);\r\n\r\n React.useEffect(() => {\r\n const handleUnitSystemChanged = ((args: QuantityFormatsChangedArgs): void => {\r\n const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);\r\n // istanbul ignore else\r\n if (args.quantityType === quantityKey) {\r\n setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));\r\n setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));\r\n }\r\n });\r\n\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleUnitSystemChanged);\r\n return () => {\r\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleUnitSystemChanged);\r\n };\r\n }, [quantityType]);\r\n\r\n return <ParsedInput data-testid=\"components-quantity-input\" ref={ref} style={style} className={classNames}\r\n onChange={onQuantityChange} initialValue={initialValue} readonly={readonly} formatValue={formatValue} parseString={parseString} />;\r\n}\r\n"]}