@itwin/imodel-components-react 4.0.0-dev.9 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/CHANGELOG.md +156 -1
  2. package/README.md +2 -2
  3. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
  4. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
  5. package/lib/cjs/imodel-components-react/UiIModelComponents.js +77 -79
  6. package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
  7. package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  8. package/lib/cjs/imodel-components-react/color/AlphaSlider.js +190 -186
  9. package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
  10. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  11. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
  12. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +112 -107
  13. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  14. package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +4 -4
  15. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  16. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +78 -74
  17. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  18. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  19. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
  20. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +143 -137
  21. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  22. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +4 -5
  23. package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
  24. package/lib/cjs/imodel-components-react/color/HueSlider.js +203 -199
  25. package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
  26. package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  27. package/lib/cjs/imodel-components-react/color/SaturationPicker.js +217 -213
  28. package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
  29. package/lib/cjs/imodel-components-react/color/Swatch.d.ts +22 -22
  30. package/lib/cjs/imodel-components-react/color/Swatch.js +64 -60
  31. package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
  32. package/lib/cjs/imodel-components-react/color/Swatch.scss +1 -2
  33. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  34. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +23 -23
  35. package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  36. package/lib/cjs/imodel-components-react/editors/ColorEditor.js +155 -151
  37. package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
  38. package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +1 -1
  39. package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  40. package/lib/cjs/imodel-components-react/editors/WeightEditor.js +164 -160
  41. package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
  42. package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +1 -1
  43. package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  44. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +100 -96
  45. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  46. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  47. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  48. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +272 -265
  49. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  50. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +6 -7
  51. package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  52. package/lib/cjs/imodel-components-react/lineweight/Swatch.js +89 -85
  53. package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
  54. package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +1 -1
  55. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  56. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +163 -159
  57. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  58. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +7 -8
  59. package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  60. package/lib/cjs/imodel-components-react/navigationaids/Cube.js +131 -127
  61. package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
  62. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +154 -174
  63. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  64. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +631 -634
  65. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  66. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +13 -17
  67. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  68. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
  69. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +657 -647
  70. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  71. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +4 -3
  72. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  73. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +103 -99
  74. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  75. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +2 -6
  76. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  77. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +57 -53
  78. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  79. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  80. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
  81. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +88 -83
  82. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  83. package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  84. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +90 -86
  85. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  86. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  87. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +113 -109
  88. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  89. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  90. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +137 -133
  91. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  92. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  93. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +188 -184
  94. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  95. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  96. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +149 -145
  97. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  98. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  99. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +63 -59
  100. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  101. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  102. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +51 -47
  103. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  104. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  105. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +58 -54
  106. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  107. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  108. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +52 -48
  109. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  110. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  111. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +54 -50
  112. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  113. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  114. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +62 -58
  115. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  116. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  117. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +51 -47
  118. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  119. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  120. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +60 -56
  121. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  122. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  123. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +99 -95
  124. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  125. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  126. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +123 -119
  127. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  128. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  129. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
  130. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +142 -143
  131. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  132. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  133. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
  134. package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  135. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +85 -81
  136. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  137. package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +2 -2
  138. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  139. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
  140. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +99 -91
  141. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  142. package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +9 -12
  143. package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  144. package/lib/cjs/imodel-components-react/timeline/Scrubber.js +195 -191
  145. package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
  146. package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +8 -15
  147. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  148. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
  149. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +432 -424
  150. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  151. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +27 -24
  152. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  153. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +58 -54
  154. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  155. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  156. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  157. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +398 -358
  158. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  159. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +25 -11
  160. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +145 -174
  161. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  162. package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
  163. package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
  164. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  165. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  166. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +278 -274
  167. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  168. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  169. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
  170. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  171. package/lib/cjs/imodel-components-react.d.ts +81 -82
  172. package/lib/cjs/imodel-components-react.d.ts.map +1 -1
  173. package/lib/cjs/imodel-components-react.js +104 -101
  174. package/lib/cjs/imodel-components-react.js.map +1 -1
  175. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
  176. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
  177. package/lib/esm/imodel-components-react/UiIModelComponents.js +74 -75
  178. package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
  179. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  180. package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
  181. package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
  182. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  183. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
  184. package/lib/esm/imodel-components-react/color/ColorPickerButton.js +83 -82
  185. package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  186. package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +4 -4
  187. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  188. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
  189. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  190. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
  191. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +114 -112
  192. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  193. package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +4 -5
  194. package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
  195. package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
  196. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  197. package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
  198. package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
  199. package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
  200. package/lib/esm/imodel-components-react/color/Swatch.scss +1 -2
  201. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  202. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
  203. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  204. package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
  205. package/lib/esm/imodel-components-react/editors/ColorEditor.scss +1 -1
  206. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  207. package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
  208. package/lib/esm/imodel-components-react/editors/WeightEditor.scss +1 -1
  209. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  210. package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
  211. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  212. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  213. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +243 -240
  214. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  215. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +6 -7
  216. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  217. package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
  218. package/lib/esm/imodel-components-react/lineweight/Swatch.scss +1 -1
  219. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  220. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +134 -133
  221. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  222. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +7 -8
  223. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  224. package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
  225. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +154 -174
  226. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  227. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +601 -606
  228. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  229. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +13 -17
  230. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  231. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
  232. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +627 -620
  233. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  234. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +4 -3
  235. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  236. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
  237. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +2 -6
  238. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  239. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +30 -30
  240. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  241. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
  242. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +61 -60
  243. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  244. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  245. package/lib/esm/imodel-components-react/quantityformat/FormatType.js +63 -63
  246. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  247. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +83 -83
  248. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  249. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +110 -110
  250. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  251. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +158 -158
  252. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  253. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +122 -122
  254. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  255. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
  256. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  257. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
  258. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  259. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
  260. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  261. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
  262. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  263. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
  264. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  265. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
  266. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  267. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
  268. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  269. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
  270. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  271. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +69 -69
  272. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  273. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
  274. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  275. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
  276. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +138 -139
  277. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  278. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  279. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
  280. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  281. package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
  282. package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +2 -2
  283. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  284. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
  285. package/lib/esm/imodel-components-react/timeline/PlayerButton.js +68 -64
  286. package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  287. package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +9 -12
  288. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  289. package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
  290. package/lib/esm/imodel-components-react/timeline/Scrubber.scss +8 -15
  291. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  292. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
  293. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +402 -398
  294. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  295. package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +27 -24
  296. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  297. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
  298. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  299. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  300. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +368 -332
  301. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  302. package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +25 -11
  303. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +145 -174
  304. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  305. package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
  306. package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
  307. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  308. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  309. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +251 -251
  310. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  311. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +96 -95
  312. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  313. package/lib/esm/imodel-components-react.d.ts +81 -82
  314. package/lib/esm/imodel-components-react.d.ts.map +1 -1
  315. package/lib/esm/imodel-components-react.js +86 -87
  316. package/lib/esm/imodel-components-react.js.map +1 -1
  317. package/package.json +35 -37
  318. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts +0 -22
  319. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts.map +0 -1
  320. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +0 -146
  321. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +0 -1
  322. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.scss +0 -94
  323. package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +0 -22
  324. package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts.map +0 -1
  325. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +0 -123
  326. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +0 -1
  327. package/lib/esm/imodel-components-react/color/ColorPickerPanel.scss +0 -94
@@ -1,159 +1,159 @@
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 QuantityFormat
7
- */
8
- import classnames from "classnames";
9
- import * as React from "react";
10
- import { SpecialKey } from "@itwin/appui-abstract";
11
- import { Checkbox } from "@itwin/itwinui-react";
12
- import { Format, FormatTraits, FormatType, getTraitString, parseFormatType, parseScientificType, parseShowSignOption, ScientificType, scientificTypeToString, showSignOptionToString, } from "@itwin/core-quantity";
13
- import { SignOptionSelector } from "./misc/SignOption";
14
- import { ThousandsSeparator } from "./misc/ThousandsSeparator";
15
- import { DecimalSeparatorSelector } from "./misc/DecimalSeparator";
16
- import { ScientificTypeSelector } from "./misc/ScientificType";
17
- import { StationSeparatorSelector } from "./misc/StationSeparatorSelector";
18
- import { StationSizeSelector } from "./misc/StationSizeSelector";
19
- import { UiIModelComponents } from "../UiIModelComponents";
20
- /** Component use to set miscellaneous properties is a Formatted Quantity.
21
- * @alpha
22
- */
23
- export function MiscFormatOptions(props) {
24
- var _a, _b;
25
- const { formatProps, onChange, showOptions, onShowHideOptions, enableMinimumProperties } = props;
26
- const handleSetFormatProps = React.useCallback((newFormatProps) => {
27
- onChange && onChange(newFormatProps);
28
- }, [onChange]);
29
- const isFormatTraitSet = React.useCallback((trait) => {
30
- return Format.isFormatTraitSetInProps(formatProps, trait);
31
- }, [formatProps]);
32
- const handleShowSignChange = React.useCallback((option) => {
33
- const newShowSignOption = showSignOptionToString(option);
34
- const newFormatProps = { ...formatProps, showSignOption: newShowSignOption };
35
- handleSetFormatProps(newFormatProps);
36
- }, [formatProps, handleSetFormatProps]);
37
- const setFormatTrait = React.useCallback((trait, setActive) => {
38
- const traitStr = getTraitString(trait);
39
- let formatTraits = [traitStr];
40
- if (setActive) { // setting trait
41
- // istanbul ignore else
42
- if (formatProps.formatTraits) {
43
- const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
44
- // istanbul ignore else
45
- if (!traits.find((traitEntry) => traitStr === traitEntry)) {
46
- formatTraits = [...traits, traitStr];
47
- }
48
- }
49
- }
50
- else { // clearing trait
51
- // istanbul ignore next
52
- if (!formatProps.formatTraits)
53
- return;
54
- const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
55
- formatTraits = traits.filter((traitEntry) => traitEntry !== traitStr);
56
- }
57
- const newFormatProps = { ...formatProps, formatTraits };
58
- handleSetFormatProps(newFormatProps);
59
- }, [formatProps, handleSetFormatProps]);
60
- const handleShowTrailingZeroesChange = React.useCallback((e) => {
61
- setFormatTrait(FormatTraits.TrailZeroes, e.target.checked);
62
- }, [setFormatTrait]);
63
- const handleKeepDecimalPointChange = React.useCallback((e) => {
64
- setFormatTrait(FormatTraits.KeepDecimalPoint, e.target.checked);
65
- }, [setFormatTrait]);
66
- const handleKeepSingleZeroChange = React.useCallback((e) => {
67
- setFormatTrait(FormatTraits.KeepSingleZero, e.target.checked);
68
- }, [setFormatTrait]);
69
- const handleZeroEmptyChange = React.useCallback((e) => {
70
- setFormatTrait(FormatTraits.ZeroEmpty, e.target.checked);
71
- }, [setFormatTrait]);
72
- const handleUseFractionDashChange = React.useCallback((e) => {
73
- setFormatTrait(FormatTraits.FractionDash, e.target.checked);
74
- }, [setFormatTrait]);
75
- const handleDecimalSeparatorChange = React.useCallback((decimalSeparator) => {
76
- let thousandSeparator = formatProps.thousandSeparator;
77
- // make sure 1000 and decimal separator do not match
78
- // istanbul ignore else
79
- if (isFormatTraitSet(FormatTraits.Use1000Separator)) {
80
- switch (decimalSeparator) {
81
- case ".":
82
- thousandSeparator = ",";
83
- break;
84
- case ",":
85
- thousandSeparator = ".";
86
- break;
87
- }
88
- }
89
- const newFormatProps = { ...formatProps, thousandSeparator, decimalSeparator };
90
- handleSetFormatProps(newFormatProps);
91
- }, [formatProps, isFormatTraitSet, handleSetFormatProps]);
92
- const handleScientificTypeChange = React.useCallback((type) => {
93
- const newFormatProps = { ...formatProps, scientificType: scientificTypeToString(type) };
94
- handleSetFormatProps(newFormatProps);
95
- }, [formatProps, handleSetFormatProps]);
96
- const handleFormatChange = React.useCallback((newFormatProps) => {
97
- handleSetFormatProps(newFormatProps);
98
- }, [handleSetFormatProps]);
99
- const formatType = React.useMemo(() => parseFormatType(formatProps.type, "format"), [formatProps.type]);
100
- const showSignOption = React.useMemo(() => { var _a; return parseShowSignOption((_a = formatProps.showSignOption) !== null && _a !== void 0 ? _a : "onlyNegative", "format"); }, [formatProps.showSignOption]);
101
- const handleToggleButtonClick = React.useCallback(() => {
102
- onShowHideOptions(!showOptions);
103
- }, [onShowHideOptions, showOptions]);
104
- const handleKeyUpOnLink = React.useCallback((e) => {
105
- // istanbul ignore else
106
- if (e.key === SpecialKey.Enter || e.key === SpecialKey.Space) {
107
- onShowHideOptions(!showOptions);
108
- e.preventDefault();
109
- }
110
- }, [onShowHideOptions, showOptions]);
111
- const handleStationSeparatorChange = React.useCallback((value) => {
112
- const newFormatProps = { ...formatProps, stationSeparator: value };
113
- handleSetFormatProps(newFormatProps);
114
- }, [formatProps, handleSetFormatProps]);
115
- const handleStationOffsetChange = React.useCallback((value) => {
116
- const newFormatProps = { ...formatProps, stationOffsetSize: value };
117
- handleSetFormatProps(newFormatProps);
118
- }, [formatProps, handleSetFormatProps]);
119
- const signOptionLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.signOptionLabel"));
120
- const stationOffsetLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.stationOffsetLabel"));
121
- const stationSeparatorLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.stationSeparatorLabel"));
122
- const decimalSeparatorLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.decimalSeparatorLabel"));
123
- const showTrailZerosLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.showTrailZerosLabel"));
124
- const keepSingleZeroLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.keepSingleZeroLabel"));
125
- const zeroEmptyLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.zeroEmptyLabel"));
126
- const moreLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.moreLabel"));
127
- const lessLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.lessLabel"));
128
- const keepDecimalPointLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.keepDecimalPointLabel"));
129
- const fractionDashLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.fractionDashLabel"));
130
- const scientificTypeLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.scientificTypeLabel"));
131
- return (React.createElement(React.Fragment, null,
132
- enableMinimumProperties && !showOptions && React.createElement("a", { onClick: handleToggleButtonClick, onKeyUp: handleKeyUpOnLink, className: "components-quantityFormat-more-less", role: "link", "data-testid": "quantityFormat-more", tabIndex: 0 }, moreLabel.current),
133
- (!enableMinimumProperties || showOptions) &&
134
- React.createElement(React.Fragment, null,
135
- React.createElement("span", { className: "uicore-label" }, signOptionLabel.current),
136
- React.createElement(SignOptionSelector, { "data-testid": "sign-option-selector", signOption: showSignOption, onChange: handleShowSignChange }),
137
- React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Station && "uicore-disabled") }, stationOffsetLabel.current),
138
- React.createElement(StationSizeSelector, { "data-testid": "station-size-selector", value: ((_a = formatProps.stationOffsetSize) !== null && _a !== void 0 ? _a : 2), disabled: formatType !== FormatType.Station, onChange: handleStationOffsetChange }),
139
- React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Station && "uicore-disabled") }, stationSeparatorLabel.current),
140
- React.createElement(StationSeparatorSelector, { "data-testid": "station-separator-selector", separator: (undefined !== formatProps.stationSeparator ? formatProps.stationSeparator : "+"), disabled: formatType !== FormatType.Station, onChange: handleStationSeparatorChange }),
141
- React.createElement(ThousandsSeparator, { formatProps: formatProps, onChange: handleFormatChange }),
142
- React.createElement("span", { className: classnames("uicore-label", formatType === FormatType.Fractional && "uicore-disabled") }, decimalSeparatorLabel.current),
143
- React.createElement(DecimalSeparatorSelector, { "data-testid": "decimal-separator-selector", separator: (_b = formatProps.decimalSeparator) !== null && _b !== void 0 ? _b : ".", onChange: handleDecimalSeparatorChange, disabled: formatType === FormatType.Fractional }),
144
- React.createElement("span", { className: "uicore-label" }, showTrailZerosLabel.current),
145
- React.createElement(Checkbox, { "data-testid": "show-trail-zeros", checked: isFormatTraitSet(FormatTraits.TrailZeroes), onChange: handleShowTrailingZeroesChange }),
146
- React.createElement("span", { className: classnames("uicore-label", formatType === FormatType.Fractional && "uicore-disabled") }, keepDecimalPointLabel.current),
147
- React.createElement(Checkbox, { "data-testid": "keep-decimal-point", checked: isFormatTraitSet(FormatTraits.KeepDecimalPoint), onChange: handleKeepDecimalPointChange }),
148
- React.createElement("span", { className: "uicore-label" }, keepSingleZeroLabel.current),
149
- React.createElement(Checkbox, { "data-testid": "keep-single-zero", checked: isFormatTraitSet(FormatTraits.KeepSingleZero), onChange: handleKeepSingleZeroChange }),
150
- React.createElement("span", { className: "uicore-label" }, zeroEmptyLabel.current),
151
- React.createElement(Checkbox, { "data-testid": "zero-empty", checked: isFormatTraitSet(FormatTraits.ZeroEmpty), onChange: handleZeroEmptyChange }),
152
- React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Fractional && "uicore-disabled") }, fractionDashLabel.current),
153
- React.createElement(Checkbox, { "data-testid": "fraction-dash", checked: isFormatTraitSet(FormatTraits.FractionDash), onChange: handleUseFractionDashChange, disabled: formatType !== FormatType.Fractional }),
154
- React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Scientific && "uicore-disabled") }, scientificTypeLabel.current),
155
- React.createElement(ScientificTypeSelector, { "data-testid": "scientific-type-selector", type: (formatProps.scientificType && formatProps.scientificType.length > 0) ? parseScientificType(formatProps.scientificType, "custom") : ScientificType.Normalized, disabled: formatType !== FormatType.Scientific, onChange: handleScientificTypeChange }),
156
- props.children,
157
- enableMinimumProperties && showOptions && React.createElement("a", { onClick: handleToggleButtonClick, onKeyUp: handleKeyUpOnLink, className: "components-quantityFormat-more-less", role: "link", "data-testid": "quantityFormat-less", tabIndex: 0 }, lessLabel.current))));
158
- }
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 QuantityFormat
7
+ */
8
+ import classnames from "classnames";
9
+ import * as React from "react";
10
+ import { SpecialKey } from "@itwin/appui-abstract";
11
+ import { Checkbox } from "@itwin/itwinui-react";
12
+ import { Format, FormatTraits, FormatType, getTraitString, parseFormatType, parseScientificType, parseShowSignOption, ScientificType, scientificTypeToString, showSignOptionToString, } from "@itwin/core-quantity";
13
+ import { SignOptionSelector } from "./misc/SignOption";
14
+ import { ThousandsSeparator } from "./misc/ThousandsSeparator";
15
+ import { DecimalSeparatorSelector } from "./misc/DecimalSeparator";
16
+ import { ScientificTypeSelector } from "./misc/ScientificType";
17
+ import { StationSeparatorSelector } from "./misc/StationSeparatorSelector";
18
+ import { StationSizeSelector } from "./misc/StationSizeSelector";
19
+ import { UiIModelComponents } from "../UiIModelComponents";
20
+ /** Component use to set miscellaneous properties is a Formatted Quantity.
21
+ * @alpha
22
+ */
23
+ export function MiscFormatOptions(props) {
24
+ var _a, _b;
25
+ const { formatProps, onChange, showOptions, onShowHideOptions, enableMinimumProperties } = props;
26
+ const handleSetFormatProps = React.useCallback((newFormatProps) => {
27
+ onChange && onChange(newFormatProps);
28
+ }, [onChange]);
29
+ const isFormatTraitSet = React.useCallback((trait) => {
30
+ return Format.isFormatTraitSetInProps(formatProps, trait);
31
+ }, [formatProps]);
32
+ const handleShowSignChange = React.useCallback((option) => {
33
+ const newShowSignOption = showSignOptionToString(option);
34
+ const newFormatProps = { ...formatProps, showSignOption: newShowSignOption };
35
+ handleSetFormatProps(newFormatProps);
36
+ }, [formatProps, handleSetFormatProps]);
37
+ const setFormatTrait = React.useCallback((trait, setActive) => {
38
+ const traitStr = getTraitString(trait);
39
+ let formatTraits = [traitStr];
40
+ if (setActive) { // setting trait
41
+ // istanbul ignore else
42
+ if (formatProps.formatTraits) {
43
+ const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
44
+ // istanbul ignore else
45
+ if (!traits.find((traitEntry) => traitStr === traitEntry)) {
46
+ formatTraits = [...traits, traitStr];
47
+ }
48
+ }
49
+ }
50
+ else { // clearing trait
51
+ // istanbul ignore next
52
+ if (!formatProps.formatTraits)
53
+ return;
54
+ const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : /* istanbul ignore next */ formatProps.formatTraits.split(/,|;|\|/);
55
+ formatTraits = traits.filter((traitEntry) => traitEntry !== traitStr);
56
+ }
57
+ const newFormatProps = { ...formatProps, formatTraits };
58
+ handleSetFormatProps(newFormatProps);
59
+ }, [formatProps, handleSetFormatProps]);
60
+ const handleShowTrailingZeroesChange = React.useCallback((e) => {
61
+ setFormatTrait(FormatTraits.TrailZeroes, e.target.checked);
62
+ }, [setFormatTrait]);
63
+ const handleKeepDecimalPointChange = React.useCallback((e) => {
64
+ setFormatTrait(FormatTraits.KeepDecimalPoint, e.target.checked);
65
+ }, [setFormatTrait]);
66
+ const handleKeepSingleZeroChange = React.useCallback((e) => {
67
+ setFormatTrait(FormatTraits.KeepSingleZero, e.target.checked);
68
+ }, [setFormatTrait]);
69
+ const handleZeroEmptyChange = React.useCallback((e) => {
70
+ setFormatTrait(FormatTraits.ZeroEmpty, e.target.checked);
71
+ }, [setFormatTrait]);
72
+ const handleUseFractionDashChange = React.useCallback((e) => {
73
+ setFormatTrait(FormatTraits.FractionDash, e.target.checked);
74
+ }, [setFormatTrait]);
75
+ const handleDecimalSeparatorChange = React.useCallback((decimalSeparator) => {
76
+ let thousandSeparator = formatProps.thousandSeparator;
77
+ // make sure 1000 and decimal separator do not match
78
+ // istanbul ignore else
79
+ if (isFormatTraitSet(FormatTraits.Use1000Separator)) {
80
+ switch (decimalSeparator) {
81
+ case ".":
82
+ thousandSeparator = ",";
83
+ break;
84
+ case ",":
85
+ thousandSeparator = ".";
86
+ break;
87
+ }
88
+ }
89
+ const newFormatProps = { ...formatProps, thousandSeparator, decimalSeparator };
90
+ handleSetFormatProps(newFormatProps);
91
+ }, [formatProps, isFormatTraitSet, handleSetFormatProps]);
92
+ const handleScientificTypeChange = React.useCallback((type) => {
93
+ const newFormatProps = { ...formatProps, scientificType: scientificTypeToString(type) };
94
+ handleSetFormatProps(newFormatProps);
95
+ }, [formatProps, handleSetFormatProps]);
96
+ const handleFormatChange = React.useCallback((newFormatProps) => {
97
+ handleSetFormatProps(newFormatProps);
98
+ }, [handleSetFormatProps]);
99
+ const formatType = React.useMemo(() => parseFormatType(formatProps.type, "format"), [formatProps.type]);
100
+ const showSignOption = React.useMemo(() => { var _a; return parseShowSignOption((_a = formatProps.showSignOption) !== null && _a !== void 0 ? _a : "onlyNegative", "format"); }, [formatProps.showSignOption]);
101
+ const handleToggleButtonClick = React.useCallback(() => {
102
+ onShowHideOptions(!showOptions);
103
+ }, [onShowHideOptions, showOptions]);
104
+ const handleKeyUpOnLink = React.useCallback((e) => {
105
+ // istanbul ignore else
106
+ if (e.key === SpecialKey.Enter || e.key === SpecialKey.Space) {
107
+ onShowHideOptions(!showOptions);
108
+ e.preventDefault();
109
+ }
110
+ }, [onShowHideOptions, showOptions]);
111
+ const handleStationSeparatorChange = React.useCallback((value) => {
112
+ const newFormatProps = { ...formatProps, stationSeparator: value };
113
+ handleSetFormatProps(newFormatProps);
114
+ }, [formatProps, handleSetFormatProps]);
115
+ const handleStationOffsetChange = React.useCallback((value) => {
116
+ const newFormatProps = { ...formatProps, stationOffsetSize: value };
117
+ handleSetFormatProps(newFormatProps);
118
+ }, [formatProps, handleSetFormatProps]);
119
+ const signOptionLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.signOptionLabel"));
120
+ const stationOffsetLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.stationOffsetLabel"));
121
+ const stationSeparatorLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.stationSeparatorLabel"));
122
+ const decimalSeparatorLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.decimalSeparatorLabel"));
123
+ const showTrailZerosLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.showTrailZerosLabel"));
124
+ const keepSingleZeroLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.keepSingleZeroLabel"));
125
+ const zeroEmptyLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.zeroEmptyLabel"));
126
+ const moreLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.moreLabel"));
127
+ const lessLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.lessLabel"));
128
+ const keepDecimalPointLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.keepDecimalPointLabel"));
129
+ const fractionDashLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.fractionDashLabel"));
130
+ const scientificTypeLabel = React.useRef(UiIModelComponents.translate("QuantityFormat.labels.scientificTypeLabel"));
131
+ return (React.createElement(React.Fragment, null,
132
+ enableMinimumProperties && !showOptions && React.createElement("a", { onClick: handleToggleButtonClick, onKeyUp: handleKeyUpOnLink, className: "components-quantityFormat-more-less", role: "link", "data-testid": "quantityFormat-more", tabIndex: 0 }, moreLabel.current),
133
+ (!enableMinimumProperties || showOptions) &&
134
+ React.createElement(React.Fragment, null,
135
+ React.createElement("span", { className: "uicore-label" }, signOptionLabel.current),
136
+ React.createElement(SignOptionSelector, { "data-testid": "sign-option-selector", signOption: showSignOption, onChange: handleShowSignChange }),
137
+ React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Station && "uicore-disabled") }, stationOffsetLabel.current),
138
+ React.createElement(StationSizeSelector, { "data-testid": "station-size-selector", value: ((_a = formatProps.stationOffsetSize) !== null && _a !== void 0 ? _a : 2), disabled: formatType !== FormatType.Station, onChange: handleStationOffsetChange }),
139
+ React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Station && "uicore-disabled") }, stationSeparatorLabel.current),
140
+ React.createElement(StationSeparatorSelector, { "data-testid": "station-separator-selector", separator: (undefined !== formatProps.stationSeparator ? formatProps.stationSeparator : "+"), disabled: formatType !== FormatType.Station, onChange: handleStationSeparatorChange }),
141
+ React.createElement(ThousandsSeparator, { formatProps: formatProps, onChange: handleFormatChange }),
142
+ React.createElement("span", { className: classnames("uicore-label", formatType === FormatType.Fractional && "uicore-disabled") }, decimalSeparatorLabel.current),
143
+ React.createElement(DecimalSeparatorSelector, { "data-testid": "decimal-separator-selector", separator: (_b = formatProps.decimalSeparator) !== null && _b !== void 0 ? _b : ".", onChange: handleDecimalSeparatorChange, disabled: formatType === FormatType.Fractional }),
144
+ React.createElement("span", { className: "uicore-label" }, showTrailZerosLabel.current),
145
+ React.createElement(Checkbox, { "data-testid": "show-trail-zeros", checked: isFormatTraitSet(FormatTraits.TrailZeroes), onChange: handleShowTrailingZeroesChange }),
146
+ React.createElement("span", { className: classnames("uicore-label", formatType === FormatType.Fractional && "uicore-disabled") }, keepDecimalPointLabel.current),
147
+ React.createElement(Checkbox, { "data-testid": "keep-decimal-point", checked: isFormatTraitSet(FormatTraits.KeepDecimalPoint), onChange: handleKeepDecimalPointChange }),
148
+ React.createElement("span", { className: "uicore-label" }, keepSingleZeroLabel.current),
149
+ React.createElement(Checkbox, { "data-testid": "keep-single-zero", checked: isFormatTraitSet(FormatTraits.KeepSingleZero), onChange: handleKeepSingleZeroChange }),
150
+ React.createElement("span", { className: "uicore-label" }, zeroEmptyLabel.current),
151
+ React.createElement(Checkbox, { "data-testid": "zero-empty", checked: isFormatTraitSet(FormatTraits.ZeroEmpty), onChange: handleZeroEmptyChange }),
152
+ React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Fractional && "uicore-disabled") }, fractionDashLabel.current),
153
+ React.createElement(Checkbox, { "data-testid": "fraction-dash", checked: isFormatTraitSet(FormatTraits.FractionDash), onChange: handleUseFractionDashChange, disabled: formatType !== FormatType.Fractional }),
154
+ React.createElement("span", { className: classnames("uicore-label", formatType !== FormatType.Scientific && "uicore-disabled") }, scientificTypeLabel.current),
155
+ React.createElement(ScientificTypeSelector, { "data-testid": "scientific-type-selector", type: (formatProps.scientificType && formatProps.scientificType.length > 0) ? parseScientificType(formatProps.scientificType, "custom") : ScientificType.Normalized, disabled: formatType !== FormatType.Scientific, onChange: handleScientificTypeChange }),
156
+ props.children,
157
+ enableMinimumProperties && showOptions && React.createElement("a", { onClick: handleToggleButtonClick, onKeyUp: handleKeyUpOnLink, className: "components-quantityFormat-more-less", role: "link", "data-testid": "quantityFormat-less", tabIndex: 0 }, lessLabel.current))));
158
+ }
159
159
  //# sourceMappingURL=MiscFormatOptions.js.map
@@ -1,23 +1,23 @@
1
- /** @packageDocumentation
2
- * @module QuantityFormat
3
- */
4
- /// <reference types="react" />
5
- import { QuantityTypeArg } from "@itwin/core-frontend";
6
- import { FormatProps } from "@itwin/core-quantity";
7
- import { CommonProps } from "@itwin/core-react";
8
- /** Properties of [[QuantityFormatPanel]] component.
9
- * @alpha
10
- */
11
- export interface QuantityFormatPanelProps extends CommonProps {
12
- quantityType: QuantityTypeArg;
13
- onFormatChange?: (format: FormatProps) => void;
14
- /** props below are to be passed on to FormatPanel */
15
- showSample?: boolean;
16
- initialMagnitude?: number;
17
- enableMinimumProperties?: boolean;
18
- }
19
- /** Component to set properties that control Quantity Formatting.
20
- * @alpha
21
- */
22
- export declare function QuantityFormatPanel(props: QuantityFormatPanelProps): JSX.Element;
1
+ /** @packageDocumentation
2
+ * @module QuantityFormat
3
+ */
4
+ /// <reference types="react" />
5
+ import { QuantityTypeArg } from "@itwin/core-frontend";
6
+ import { FormatProps } from "@itwin/core-quantity";
7
+ import { CommonProps } from "@itwin/core-react";
8
+ /** Properties of [[QuantityFormatPanel]] component.
9
+ * @alpha
10
+ */
11
+ export interface QuantityFormatPanelProps extends CommonProps {
12
+ quantityType: QuantityTypeArg;
13
+ onFormatChange?: (format: FormatProps) => void;
14
+ /** props below are to be passed on to FormatPanel */
15
+ showSample?: boolean;
16
+ initialMagnitude?: number;
17
+ enableMinimumProperties?: boolean;
18
+ }
19
+ /** Component to set properties that control Quantity Formatting.
20
+ * @alpha
21
+ */
22
+ export declare function QuantityFormatPanel(props: QuantityFormatPanelProps): JSX.Element;
23
23
  //# sourceMappingURL=QuantityFormatPanel.d.ts.map
@@ -1,123 +1,123 @@
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 QuantityFormat
7
- */
8
- import * as React from "react";
9
- import { getQuantityTypeKey, IModelApp, isCheckboxFormatPropEditorSpec, isCustomQuantityTypeDefinition, isTextInputFormatPropEditorSpec, isTextSelectFormatPropEditorSpec, } from "@itwin/core-frontend";
10
- import { Checkbox, Input, Select } from "@itwin/itwinui-react";
11
- import { FormatPanel } from "./FormatPanel";
12
- import { DeepCompare } from "@itwin/core-geometry";
13
- function createTextInputFormatPropEditor(key, label, inProps, getString, setString, fireFormatChange) {
14
- const value = getString(inProps);
15
- return (React.createElement(React.Fragment, { key: `${key}` },
16
- React.createElement("span", { key: `${key}-label`, className: "uicore-label" }, label),
17
- React.createElement(Input, { "data-testid": `${key}-editor`, key: `${key}-editor`, value: value, size: "small", onChange: (e) => {
18
- const newProps = setString(inProps, e.currentTarget.value);
19
- fireFormatChange(newProps);
20
- } })));
21
- }
22
- function createSelectFormatPropEditor(key, label, options, inProps, getString, setString, fireFormatChange) {
23
- const value = getString(inProps);
24
- return (React.createElement(React.Fragment, { key: `${key}` },
25
- React.createElement("span", { key: `${key}-label`, className: "uicore-label" }, label),
26
- React.createElement(Select, { "data-testid": `${key}-editor`, key: `${key}-editor`, value: value, options: options, size: "small", onChange: (newValue) => {
27
- const newProps = setString(inProps, newValue);
28
- fireFormatChange(newProps);
29
- } })));
30
- }
31
- function createCheckboxFormatPropEditor(key, label, inProps, getBool, setBool, fireFormatChange) {
32
- const isChecked = getBool(inProps);
33
- return (React.createElement(React.Fragment, { key: `${key}` },
34
- React.createElement("span", { key: `${key}-label`, className: "uicore-label" }, label),
35
- React.createElement(Checkbox, { "data-testid": `${key}-editor`, key: `${key}-editor`, checked: isChecked, onChange: (e) => {
36
- const newProps = setBool(inProps, e.target.checked);
37
- fireFormatChange(newProps);
38
- } })));
39
- }
40
- function formatAreEqual(obj1, obj2) {
41
- const compare = new DeepCompare();
42
- return compare.compare(obj1, obj2);
43
- }
44
- /** Component to set properties that control Quantity Formatting.
45
- * @alpha
46
- */
47
- export function QuantityFormatPanel(props) {
48
- const { quantityType, onFormatChange, ...otherProps } = props;
49
- const [formatProps, setFormatProps] = React.useState();
50
- const initialFormatProps = React.useRef();
51
- const [persistenceUnit, setPersistenceUnit] = React.useState();
52
- React.useEffect(() => {
53
- const newFormatProps = IModelApp.quantityFormatter.getFormatPropsByQuantityType(quantityType);
54
- // istanbul ignore else
55
- if (!initialFormatProps.current)
56
- initialFormatProps.current = newFormatProps;
57
- setFormatProps(newFormatProps);
58
- const quantityTypeKey = getQuantityTypeKey(quantityType);
59
- const quantityTypeDefinition = IModelApp.quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);
60
- // istanbul ignore else
61
- if (quantityTypeDefinition)
62
- setPersistenceUnit(quantityTypeDefinition.persistenceUnit);
63
- else
64
- throw Error(`Unable to locate a quantity type with type ${quantityType}`);
65
- }, [quantityType]); // no dependencies defined as we want this to run on every render
66
- // handle case where quantityType does not change but the formatProps for that quantity type has (ie after a Set or Clear)
67
- // eslint-disable-next-line react-hooks/exhaustive-deps
68
- React.useEffect(() => {
69
- const newFormatProps = IModelApp.quantityFormatter.getFormatPropsByQuantityType(quantityType);
70
- // istanbul ignore else
71
- if (initialFormatProps.current && newFormatProps) {
72
- if (!formatAreEqual(newFormatProps, initialFormatProps.current)) {
73
- initialFormatProps.current = newFormatProps;
74
- setFormatProps(newFormatProps);
75
- }
76
- }
77
- }); // no dependencies defined as we want this to run on every render
78
- const handleOnFormatChanged = React.useCallback(async (newProps) => {
79
- setFormatProps(newProps);
80
- onFormatChange && onFormatChange(newProps);
81
- }, [onFormatChange]);
82
- const createCustomPropEditors = React.useCallback((specs, inProps, fireFormatChange) => {
83
- return specs.map((spec, index) => {
84
- if (isCheckboxFormatPropEditorSpec(spec))
85
- return createCheckboxFormatPropEditor(`${spec.editorType}-${index}`, spec.label, inProps, spec.getBool, spec.setBool, fireFormatChange);
86
- if (isTextSelectFormatPropEditorSpec(spec))
87
- return createSelectFormatPropEditor(`${spec.editorType}-${index}`, spec.label, spec.selectOptions, inProps, spec.getString, spec.setString, fireFormatChange);
88
- /* istanbul ignore else */
89
- if (isTextInputFormatPropEditorSpec(spec))
90
- return createTextInputFormatPropEditor(`${spec.editorType}-${index}`, spec.label, inProps, spec.getString, spec.setString, fireFormatChange);
91
- /* istanbul ignore next */
92
- return React.createElement("div", { key: index });
93
- });
94
- }, []);
95
- const providePrimaryChildren = React.useCallback((inProps, fireFormatChange) => {
96
- const quantityTypeKey = getQuantityTypeKey(quantityType);
97
- const quantityTypeDefinition = IModelApp.quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);
98
- if (quantityTypeDefinition && isCustomQuantityTypeDefinition(quantityTypeDefinition) &&
99
- quantityTypeDefinition.isCompatibleFormatProps(inProps)) {
100
- // istanbul ignore else
101
- if (quantityTypeDefinition.primaryPropEditorSpecs)
102
- return createCustomPropEditors(quantityTypeDefinition.primaryPropEditorSpecs, inProps, fireFormatChange);
103
- }
104
- return null;
105
- }, [createCustomPropEditors, quantityType]);
106
- const provideSecondaryChildren = React.useCallback((inProps, fireFormatChange) => {
107
- const quantityTypeKey = getQuantityTypeKey(quantityType);
108
- const quantityTypeDefinition = IModelApp.quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);
109
- if (quantityTypeDefinition && isCustomQuantityTypeDefinition(quantityTypeDefinition) &&
110
- quantityTypeDefinition.isCompatibleFormatProps(inProps)) {
111
- // istanbul ignore else
112
- if (quantityTypeDefinition.secondaryPropEditorSpecs)
113
- return createCustomPropEditors(quantityTypeDefinition.secondaryPropEditorSpecs, inProps, fireFormatChange);
114
- }
115
- return null;
116
- }, [createCustomPropEditors, quantityType]);
117
- const provideFormatSpec = React.useCallback(async (inProps, _persistenceUnit, _unitsProvider) => {
118
- return IModelApp.quantityFormatter.generateFormatterSpecByType(quantityType, inProps);
119
- }, [quantityType]);
120
- return (React.createElement("div", { className: "components-quantityFormat-quantityPanel" }, persistenceUnit && formatProps &&
121
- React.createElement(FormatPanel, { onFormatChange: handleOnFormatChanged, ...otherProps, initialFormat: formatProps, unitsProvider: IModelApp.quantityFormatter.unitsProvider, persistenceUnit: persistenceUnit, providePrimaryChildren: providePrimaryChildren, provideSecondaryChildren: provideSecondaryChildren, provideFormatSpec: provideFormatSpec })));
122
- }
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 QuantityFormat
7
+ */
8
+ import * as React from "react";
9
+ import { getQuantityTypeKey, IModelApp, isCheckboxFormatPropEditorSpec, isCustomQuantityTypeDefinition, isTextInputFormatPropEditorSpec, isTextSelectFormatPropEditorSpec, } from "@itwin/core-frontend";
10
+ import { Checkbox, Input, Select } from "@itwin/itwinui-react";
11
+ import { FormatPanel } from "./FormatPanel";
12
+ import { DeepCompare } from "@itwin/core-geometry";
13
+ function createTextInputFormatPropEditor(key, label, inProps, getString, setString, fireFormatChange) {
14
+ const value = getString(inProps);
15
+ return (React.createElement(React.Fragment, { key: `${key}` },
16
+ React.createElement("span", { key: `${key}-label`, className: "uicore-label" }, label),
17
+ React.createElement(Input, { "data-testid": `${key}-editor`, key: `${key}-editor`, value: value, size: "small", onChange: (e) => {
18
+ const newProps = setString(inProps, e.currentTarget.value);
19
+ fireFormatChange(newProps);
20
+ } })));
21
+ }
22
+ function createSelectFormatPropEditor(key, label, options, inProps, getString, setString, fireFormatChange) {
23
+ const value = getString(inProps);
24
+ return (React.createElement(React.Fragment, { key: `${key}` },
25
+ React.createElement("span", { key: `${key}-label`, className: "uicore-label" }, label),
26
+ React.createElement(Select, { "data-testid": `${key}-editor`, key: `${key}-editor`, value: value, options: options, size: "small", onChange: (newValue) => {
27
+ const newProps = setString(inProps, newValue);
28
+ fireFormatChange(newProps);
29
+ } })));
30
+ }
31
+ function createCheckboxFormatPropEditor(key, label, inProps, getBool, setBool, fireFormatChange) {
32
+ const isChecked = getBool(inProps);
33
+ return (React.createElement(React.Fragment, { key: `${key}` },
34
+ React.createElement("span", { key: `${key}-label`, className: "uicore-label" }, label),
35
+ React.createElement(Checkbox, { "data-testid": `${key}-editor`, key: `${key}-editor`, checked: isChecked, onChange: (e) => {
36
+ const newProps = setBool(inProps, e.target.checked);
37
+ fireFormatChange(newProps);
38
+ } })));
39
+ }
40
+ function formatAreEqual(obj1, obj2) {
41
+ const compare = new DeepCompare();
42
+ return compare.compare(obj1, obj2);
43
+ }
44
+ /** Component to set properties that control Quantity Formatting.
45
+ * @alpha
46
+ */
47
+ export function QuantityFormatPanel(props) {
48
+ const { quantityType, onFormatChange, ...otherProps } = props;
49
+ const [formatProps, setFormatProps] = React.useState();
50
+ const initialFormatProps = React.useRef();
51
+ const [persistenceUnit, setPersistenceUnit] = React.useState();
52
+ React.useEffect(() => {
53
+ const newFormatProps = IModelApp.quantityFormatter.getFormatPropsByQuantityType(quantityType);
54
+ // istanbul ignore else
55
+ if (!initialFormatProps.current)
56
+ initialFormatProps.current = newFormatProps;
57
+ setFormatProps(newFormatProps);
58
+ const quantityTypeKey = getQuantityTypeKey(quantityType);
59
+ const quantityTypeDefinition = IModelApp.quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);
60
+ // istanbul ignore else
61
+ if (quantityTypeDefinition)
62
+ setPersistenceUnit(quantityTypeDefinition.persistenceUnit);
63
+ else
64
+ throw Error(`Unable to locate a quantity type with type ${quantityType}`);
65
+ }, [quantityType]); // no dependencies defined as we want this to run on every render
66
+ // handle case where quantityType does not change but the formatProps for that quantity type has (ie after a Set or Clear)
67
+ // eslint-disable-next-line react-hooks/exhaustive-deps
68
+ React.useEffect(() => {
69
+ const newFormatProps = IModelApp.quantityFormatter.getFormatPropsByQuantityType(quantityType);
70
+ // istanbul ignore else
71
+ if (initialFormatProps.current && newFormatProps) {
72
+ if (!formatAreEqual(newFormatProps, initialFormatProps.current)) {
73
+ initialFormatProps.current = newFormatProps;
74
+ setFormatProps(newFormatProps);
75
+ }
76
+ }
77
+ }); // no dependencies defined as we want this to run on every render
78
+ const handleOnFormatChanged = React.useCallback(async (newProps) => {
79
+ setFormatProps(newProps);
80
+ onFormatChange && onFormatChange(newProps);
81
+ }, [onFormatChange]);
82
+ const createCustomPropEditors = React.useCallback((specs, inProps, fireFormatChange) => {
83
+ return specs.map((spec, index) => {
84
+ if (isCheckboxFormatPropEditorSpec(spec))
85
+ return createCheckboxFormatPropEditor(`${spec.editorType}-${index}`, spec.label, inProps, spec.getBool, spec.setBool, fireFormatChange);
86
+ if (isTextSelectFormatPropEditorSpec(spec))
87
+ return createSelectFormatPropEditor(`${spec.editorType}-${index}`, spec.label, spec.selectOptions, inProps, spec.getString, spec.setString, fireFormatChange);
88
+ /* istanbul ignore else */
89
+ if (isTextInputFormatPropEditorSpec(spec))
90
+ return createTextInputFormatPropEditor(`${spec.editorType}-${index}`, spec.label, inProps, spec.getString, spec.setString, fireFormatChange);
91
+ /* istanbul ignore next */
92
+ return React.createElement("div", { key: index });
93
+ });
94
+ }, []);
95
+ const providePrimaryChildren = React.useCallback((inProps, fireFormatChange) => {
96
+ const quantityTypeKey = getQuantityTypeKey(quantityType);
97
+ const quantityTypeDefinition = IModelApp.quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);
98
+ if (quantityTypeDefinition && isCustomQuantityTypeDefinition(quantityTypeDefinition) &&
99
+ quantityTypeDefinition.isCompatibleFormatProps(inProps)) {
100
+ // istanbul ignore else
101
+ if (quantityTypeDefinition.primaryPropEditorSpecs)
102
+ return createCustomPropEditors(quantityTypeDefinition.primaryPropEditorSpecs, inProps, fireFormatChange);
103
+ }
104
+ return null;
105
+ }, [createCustomPropEditors, quantityType]);
106
+ const provideSecondaryChildren = React.useCallback((inProps, fireFormatChange) => {
107
+ const quantityTypeKey = getQuantityTypeKey(quantityType);
108
+ const quantityTypeDefinition = IModelApp.quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);
109
+ if (quantityTypeDefinition && isCustomQuantityTypeDefinition(quantityTypeDefinition) &&
110
+ quantityTypeDefinition.isCompatibleFormatProps(inProps)) {
111
+ // istanbul ignore else
112
+ if (quantityTypeDefinition.secondaryPropEditorSpecs)
113
+ return createCustomPropEditors(quantityTypeDefinition.secondaryPropEditorSpecs, inProps, fireFormatChange);
114
+ }
115
+ return null;
116
+ }, [createCustomPropEditors, quantityType]);
117
+ const provideFormatSpec = React.useCallback(async (inProps, _persistenceUnit, _unitsProvider) => {
118
+ return IModelApp.quantityFormatter.generateFormatterSpecByType(quantityType, inProps);
119
+ }, [quantityType]);
120
+ return (React.createElement("div", { className: "components-quantityFormat-quantityPanel" }, persistenceUnit && formatProps &&
121
+ React.createElement(FormatPanel, { onFormatChange: handleOnFormatChanged, ...otherProps, initialFormat: formatProps, unitsProvider: IModelApp.quantityFormatter.unitsProvider, persistenceUnit: persistenceUnit, providePrimaryChildren: providePrimaryChildren, provideSecondaryChildren: provideSecondaryChildren, provideFormatSpec: provideFormatSpec })));
122
+ }
123
123
  //# sourceMappingURL=QuantityFormatPanel.js.map