@itwin/imodel-components-react 4.17.0 → 5.0.0-dev.2

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 (532) hide show
  1. package/README.md +15 -2
  2. package/lib/{cjs/imodel-components-react → imodel-components-react}/UiIModelComponents.d.ts +1 -1
  3. package/lib/imodel-components-react/UiIModelComponents.d.ts.map +1 -0
  4. package/lib/{esm/imodel-components-react → imodel-components-react}/UiIModelComponents.js +4 -7
  5. package/lib/imodel-components-react/UiIModelComponents.js.map +1 -0
  6. package/lib/imodel-components-react/color/AlphaSlider.d.ts.map +1 -0
  7. package/lib/{esm/imodel-components-react → imodel-components-react}/color/AlphaSlider.js +1 -1
  8. package/lib/imodel-components-react/color/AlphaSlider.js.map +1 -0
  9. package/lib/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -0
  10. package/lib/{esm/imodel-components-react → imodel-components-react}/color/ColorPickerButton.js +4 -3
  11. package/lib/imodel-components-react/color/ColorPickerButton.js.map +1 -0
  12. package/lib/{esm/imodel-components-react → imodel-components-react}/color/ColorPickerButton.scss +2 -4
  13. package/lib/imodel-components-react/color/ColorPickerDialog.d.ts.map +1 -0
  14. package/lib/imodel-components-react/color/ColorPickerDialog.js.map +1 -0
  15. package/lib/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -0
  16. package/lib/{esm/imodel-components-react → imodel-components-react}/color/ColorPickerPopup.js +4 -3
  17. package/lib/imodel-components-react/color/ColorPickerPopup.js.map +1 -0
  18. package/lib/imodel-components-react/color/HueSlider.d.ts.map +1 -0
  19. package/lib/{esm/imodel-components-react → imodel-components-react}/color/HueSlider.js +1 -1
  20. package/lib/{esm/imodel-components-react → imodel-components-react}/color/HueSlider.js.map +1 -1
  21. package/lib/imodel-components-react/color/SaturationPicker.d.ts.map +1 -0
  22. package/lib/{esm/imodel-components-react → imodel-components-react}/color/SaturationPicker.js +1 -1
  23. package/lib/imodel-components-react/color/SaturationPicker.js.map +1 -0
  24. package/lib/imodel-components-react/color/Swatch.d.ts.map +1 -0
  25. package/lib/{esm/imodel-components-react → imodel-components-react}/color/Swatch.js +1 -1
  26. package/lib/{esm/imodel-components-react → imodel-components-react}/color/Swatch.js.map +1 -1
  27. package/lib/imodel-components-react/color/getCSSColorFromDef.d.ts.map +1 -0
  28. package/lib/imodel-components-react/color/getCSSColorFromDef.js.map +1 -0
  29. package/lib/imodel-components-react/editors/ColorEditor.d.ts.map +1 -0
  30. package/lib/{esm/imodel-components-react → imodel-components-react}/editors/ColorEditor.js +3 -4
  31. package/lib/imodel-components-react/editors/ColorEditor.js.map +1 -0
  32. package/lib/{cjs/imodel-components-react → imodel-components-react}/editors/ColorEditor.scss +0 -2
  33. package/lib/imodel-components-react/editors/WeightEditor.d.ts.map +1 -0
  34. package/lib/{esm/imodel-components-react → imodel-components-react}/editors/WeightEditor.js +3 -4
  35. package/lib/imodel-components-react/editors/WeightEditor.js.map +1 -0
  36. package/lib/{cjs/imodel-components-react → imodel-components-react}/editors/WeightEditor.scss +0 -2
  37. package/lib/imodel-components-react/inputs/QuantityInput.d.ts.map +1 -0
  38. package/lib/{esm/imodel-components-react → imodel-components-react}/inputs/QuantityInput.js +1 -1
  39. package/lib/{esm/imodel-components-react → imodel-components-react}/inputs/QuantityInput.js.map +1 -1
  40. package/lib/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -0
  41. package/lib/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -0
  42. package/lib/{cjs/imodel-components-react → imodel-components-react}/inputs/QuantityNumberInput.scss +1 -1
  43. package/lib/imodel-components-react/lineweight/Swatch.d.ts.map +1 -0
  44. package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/Swatch.js +1 -1
  45. package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/Swatch.js.map +1 -1
  46. package/lib/{cjs/imodel-components-react → imodel-components-react}/lineweight/Swatch.scss +2 -4
  47. package/lib/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +1 -0
  48. package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/WeightPickerButton.js +1 -1
  49. package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/WeightPickerButton.js.map +1 -1
  50. package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/WeightPickerButton.scss +5 -6
  51. package/lib/imodel-components-react/navigationaids/Cube.d.ts.map +1 -0
  52. package/lib/imodel-components-react/navigationaids/Cube.js.map +1 -0
  53. package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/CubeNavigationAid.d.ts +1 -1
  54. package/lib/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -0
  55. package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/CubeNavigationAid.js +3 -3
  56. package/lib/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -0
  57. package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/CubeNavigationAid.scss +1 -2
  58. package/lib/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -0
  59. package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/DrawingNavigationAid.js +2 -2
  60. package/lib/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -0
  61. package/lib/{cjs/imodel-components-react → imodel-components-react}/navigationaids/DrawingNavigationAid.scss +9 -10
  62. package/lib/imodel-components-react/quantityformat/FormatPanel.d.ts.map +1 -0
  63. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatPanel.js +6 -6
  64. package/lib/imodel-components-react/quantityformat/FormatPanel.js.map +1 -0
  65. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatPanel.scss +0 -2
  66. package/lib/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +1 -0
  67. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatPrecision.js +3 -3
  68. package/lib/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -0
  69. package/lib/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -0
  70. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatSample.js +1 -1
  71. package/lib/imodel-components-react/quantityformat/FormatSample.js.map +1 -0
  72. package/lib/imodel-components-react/quantityformat/FormatType.d.ts.map +1 -0
  73. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatType.js +1 -1
  74. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatType.js.map +1 -1
  75. package/lib/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +1 -0
  76. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatUnitLabel.js +1 -1
  77. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatUnitLabel.js.map +1 -1
  78. package/lib/imodel-components-react/quantityformat/FormatUnits.d.ts.map +1 -0
  79. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatUnits.js +2 -2
  80. package/lib/imodel-components-react/quantityformat/FormatUnits.js.map +1 -0
  81. package/lib/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +1 -0
  82. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/MiscFormatOptions.js +7 -7
  83. package/lib/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -0
  84. package/lib/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +1 -0
  85. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/QuantityFormatPanel.js +1 -1
  86. package/lib/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -0
  87. package/lib/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +1 -0
  88. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalPrecision.js +1 -1
  89. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalPrecision.js.map +1 -1
  90. package/lib/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +1 -0
  91. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalSeparator.js +1 -1
  92. package/lib/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -0
  93. package/lib/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +1 -0
  94. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/FractionPrecision.js +1 -1
  95. package/lib/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -0
  96. package/lib/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +1 -0
  97. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/ScientificType.js +1 -1
  98. package/lib/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -0
  99. package/lib/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +1 -0
  100. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/SignOption.js +1 -1
  101. package/lib/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -0
  102. package/lib/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +1 -0
  103. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSeparatorSelector.js +1 -1
  104. package/lib/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -0
  105. package/lib/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +1 -0
  106. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSizeSelector.js +1 -1
  107. package/lib/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -0
  108. package/lib/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +1 -0
  109. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSelector.js +1 -1
  110. package/lib/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -0
  111. package/lib/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +1 -0
  112. package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSeparator.js +2 -2
  113. package/lib/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -0
  114. package/lib/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +1 -0
  115. package/lib/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -0
  116. package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/BaseSolarDataProvider.d.ts +1 -1
  117. package/lib/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -0
  118. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/BaseSolarDataProvider.js.map +1 -1
  119. package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/BaseTimelineDataProvider.d.ts +1 -1
  120. package/lib/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +1 -0
  121. package/lib/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -0
  122. package/lib/imodel-components-react/timeline/InlineEdit.d.ts.map +1 -0
  123. package/lib/imodel-components-react/timeline/InlineEdit.js.map +1 -0
  124. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/InlineEdit.scss +3 -5
  125. package/lib/imodel-components-react/timeline/PlayButton.d.ts.map +1 -0
  126. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/PlayButton.js +1 -1
  127. package/lib/imodel-components-react/timeline/PlayButton.js.map +1 -0
  128. package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/Scrubber.d.ts +2 -4
  129. package/lib/imodel-components-react/timeline/Scrubber.d.ts.map +1 -0
  130. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/Scrubber.js +19 -12
  131. package/lib/imodel-components-react/timeline/Scrubber.js.map +1 -0
  132. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/Scrubber.scss +1 -1
  133. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/SolarTimeline.d.ts +1 -1
  134. package/lib/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -0
  135. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/SolarTimeline.js +3 -3
  136. package/lib/imodel-components-react/timeline/SolarTimeline.js.map +1 -0
  137. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/SolarTimeline.scss +0 -2
  138. package/lib/imodel-components-react/timeline/SpeedTimeline.d.ts.map +1 -0
  139. package/lib/imodel-components-react/timeline/SpeedTimeline.js.map +1 -0
  140. package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/SpeedTimeline.scss +2 -4
  141. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/Timeline.scss +7 -9
  142. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/TimelineComponent.d.ts +1 -1
  143. package/lib/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -0
  144. package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/TimelineComponent.js +5 -5
  145. package/lib/imodel-components-react/timeline/TimelineComponent.js.map +1 -0
  146. package/lib/imodel-components-react/timeline/interfaces.d.ts.map +1 -0
  147. package/lib/imodel-components-react/timeline/interfaces.js.map +1 -0
  148. package/lib/imodel-components-react/useTranslation.d.ts.map +1 -0
  149. package/lib/{esm/imodel-components-react → imodel-components-react}/useTranslation.js +2 -2
  150. package/lib/imodel-components-react/useTranslation.js.map +1 -0
  151. package/lib/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -0
  152. package/lib/{esm/imodel-components-react → imodel-components-react}/viewport/ViewportComponent.js +1 -1
  153. package/lib/imodel-components-react/viewport/ViewportComponent.js.map +1 -0
  154. package/lib/{cjs/imodel-components-react → imodel-components-react}/viewport/ViewportComponentEvents.d.ts +1 -1
  155. package/lib/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +1 -0
  156. package/lib/{esm/imodel-components-react → imodel-components-react}/viewport/ViewportComponentEvents.js +1 -1
  157. package/lib/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -0
  158. package/lib/imodel-components-react.d.ts +77 -0
  159. package/lib/imodel-components-react.d.ts.map +1 -0
  160. package/lib/imodel-components-react.js +90 -0
  161. package/lib/imodel-components-react.js.map +1 -0
  162. package/lib/internal.d.ts +2 -0
  163. package/lib/internal.d.ts.map +1 -0
  164. package/lib/{esm/imodel-components-react/navigationaids/Cube.scss → internal.js} +2 -15
  165. package/lib/internal.js.map +1 -0
  166. package/package.json +46 -36
  167. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts.map +0 -1
  168. package/lib/cjs/imodel-components-react/UiIModelComponents.js +0 -78
  169. package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +0 -1
  170. package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts.map +0 -1
  171. package/lib/cjs/imodel-components-react/color/AlphaSlider.js +0 -182
  172. package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +0 -1
  173. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts.map +0 -1
  174. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +0 -119
  175. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +0 -1
  176. package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +0 -90
  177. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts.map +0 -1
  178. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +0 -76
  179. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +0 -1
  180. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts.map +0 -1
  181. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +0 -141
  182. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +0 -1
  183. package/lib/cjs/imodel-components-react/color/HueSlider.d.ts.map +0 -1
  184. package/lib/cjs/imodel-components-react/color/HueSlider.js +0 -201
  185. package/lib/cjs/imodel-components-react/color/HueSlider.js.map +0 -1
  186. package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts.map +0 -1
  187. package/lib/cjs/imodel-components-react/color/SaturationPicker.js +0 -197
  188. package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +0 -1
  189. package/lib/cjs/imodel-components-react/color/Swatch.d.ts.map +0 -1
  190. package/lib/cjs/imodel-components-react/color/Swatch.js +0 -63
  191. package/lib/cjs/imodel-components-react/color/Swatch.js.map +0 -1
  192. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts.map +0 -1
  193. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +0 -24
  194. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js.map +0 -1
  195. package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts.map +0 -1
  196. package/lib/cjs/imodel-components-react/editors/ColorEditor.js +0 -150
  197. package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +0 -1
  198. package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts.map +0 -1
  199. package/lib/cjs/imodel-components-react/editors/WeightEditor.js +0 -153
  200. package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +0 -1
  201. package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts.map +0 -1
  202. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +0 -94
  203. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +0 -1
  204. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +0 -1
  205. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +0 -265
  206. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +0 -1
  207. package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts.map +0 -1
  208. package/lib/cjs/imodel-components-react/lineweight/Swatch.js +0 -84
  209. package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +0 -1
  210. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +0 -1
  211. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +0 -160
  212. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +0 -1
  213. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +0 -51
  214. package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts.map +0 -1
  215. package/lib/cjs/imodel-components-react/navigationaids/Cube.js +0 -151
  216. package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +0 -1
  217. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +0 -153
  218. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +0 -1
  219. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +0 -683
  220. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +0 -1
  221. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +0 -178
  222. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +0 -1
  223. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +0 -736
  224. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +0 -1
  225. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts.map +0 -1
  226. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +0 -112
  227. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +0 -1
  228. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +0 -55
  229. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +0 -1
  230. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +0 -56
  231. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +0 -1
  232. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts.map +0 -1
  233. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +0 -94
  234. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +0 -1
  235. package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts.map +0 -1
  236. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +0 -115
  237. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +0 -1
  238. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +0 -1
  239. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +0 -117
  240. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +0 -1
  241. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts.map +0 -1
  242. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +0 -137
  243. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +0 -1
  244. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +0 -1
  245. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +0 -193
  246. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +0 -1
  247. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +0 -1
  248. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +0 -145
  249. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +0 -1
  250. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +0 -1
  251. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +0 -104
  252. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +0 -1
  253. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +0 -1
  254. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +0 -59
  255. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +0 -1
  256. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +0 -1
  257. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +0 -87
  258. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +0 -1
  259. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +0 -1
  260. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +0 -60
  261. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +0 -1
  262. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +0 -1
  263. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +0 -68
  264. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +0 -1
  265. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +0 -1
  266. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +0 -76
  267. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +0 -1
  268. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +0 -1
  269. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +0 -59
  270. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +0 -1
  271. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +0 -1
  272. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +0 -65
  273. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +0 -1
  274. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +0 -1
  275. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +0 -106
  276. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +0 -1
  277. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +0 -1
  278. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +0 -135
  279. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +0 -1
  280. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +0 -1
  281. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +0 -150
  282. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +0 -1
  283. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +0 -1
  284. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +0 -64
  285. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +0 -1
  286. package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts.map +0 -1
  287. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +0 -86
  288. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +0 -1
  289. package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +0 -24
  290. package/lib/cjs/imodel-components-react/timeline/PlayButton.d.ts.map +0 -1
  291. package/lib/cjs/imodel-components-react/timeline/PlayButton.js +0 -50
  292. package/lib/cjs/imodel-components-react/timeline/PlayButton.js.map +0 -1
  293. package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts.map +0 -1
  294. package/lib/cjs/imodel-components-react/timeline/Scrubber.js +0 -185
  295. package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +0 -1
  296. package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +0 -105
  297. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +0 -60
  298. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts.map +0 -1
  299. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +0 -358
  300. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +0 -1
  301. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +0 -45
  302. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts.map +0 -1
  303. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +0 -57
  304. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +0 -1
  305. package/lib/cjs/imodel-components-react/timeline/Timeline.scss +0 -165
  306. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +0 -100
  307. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +0 -1
  308. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +0 -286
  309. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +0 -1
  310. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +0 -1
  311. package/lib/cjs/imodel-components-react/timeline/interfaces.js +0 -46
  312. package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +0 -1
  313. package/lib/cjs/imodel-components-react/useTranslation.d.ts.map +0 -1
  314. package/lib/cjs/imodel-components-react/useTranslation.js +0 -52
  315. package/lib/cjs/imodel-components-react/useTranslation.js.map +0 -1
  316. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +0 -1
  317. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +0 -267
  318. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +0 -1
  319. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +0 -1
  320. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +0 -119
  321. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +0 -1
  322. package/lib/cjs/imodel-components-react.d.ts +0 -80
  323. package/lib/cjs/imodel-components-react.d.ts.map +0 -1
  324. package/lib/cjs/imodel-components-react.js +0 -103
  325. package/lib/cjs/imodel-components-react.js.map +0 -1
  326. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +0 -29
  327. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts.map +0 -1
  328. package/lib/esm/imodel-components-react/UiIModelComponents.js.map +0 -1
  329. package/lib/esm/imodel-components-react/UiIModelComponents.json +0 -150
  330. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +0 -36
  331. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts.map +0 -1
  332. package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +0 -1
  333. package/lib/esm/imodel-components-react/color/AlphaSlider.scss +0 -71
  334. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +0 -40
  335. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts.map +0 -1
  336. package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +0 -1
  337. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +0 -26
  338. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts.map +0 -1
  339. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +0 -1
  340. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +0 -47
  341. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts.map +0 -1
  342. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +0 -1
  343. package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +0 -62
  344. package/lib/esm/imodel-components-react/color/HueSlider.d.ts +0 -25
  345. package/lib/esm/imodel-components-react/color/HueSlider.d.ts.map +0 -1
  346. package/lib/esm/imodel-components-react/color/HueSlider.scss +0 -78
  347. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +0 -23
  348. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts.map +0 -1
  349. package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +0 -1
  350. package/lib/esm/imodel-components-react/color/SaturationPicker.scss +0 -36
  351. package/lib/esm/imodel-components-react/color/Swatch.d.ts +0 -25
  352. package/lib/esm/imodel-components-react/color/Swatch.d.ts.map +0 -1
  353. package/lib/esm/imodel-components-react/color/Swatch.scss +0 -22
  354. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +0 -7
  355. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts.map +0 -1
  356. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +0 -1
  357. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +0 -42
  358. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts.map +0 -1
  359. package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +0 -1
  360. package/lib/esm/imodel-components-react/editors/ColorEditor.scss +0 -18
  361. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +0 -44
  362. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts.map +0 -1
  363. package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +0 -1
  364. package/lib/esm/imodel-components-react/editors/WeightEditor.scss +0 -16
  365. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +0 -26
  366. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts.map +0 -1
  367. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +0 -47
  368. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +0 -1
  369. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +0 -1
  370. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +0 -106
  371. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +0 -33
  372. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts.map +0 -1
  373. package/lib/esm/imodel-components-react/lineweight/Swatch.scss +0 -48
  374. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +0 -59
  375. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +0 -1
  376. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +0 -46
  377. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts.map +0 -1
  378. package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +0 -1
  379. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +0 -1
  380. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +0 -1
  381. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +0 -144
  382. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +0 -1
  383. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +0 -1
  384. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +0 -134
  385. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +0 -29
  386. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts.map +0 -1
  387. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +0 -1
  388. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +0 -19
  389. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +0 -1
  390. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +0 -1
  391. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +0 -20
  392. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts.map +0 -1
  393. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +0 -1
  394. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +0 -19
  395. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts.map +0 -1
  396. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +0 -19
  397. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +0 -1
  398. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +0 -21
  399. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts.map +0 -1
  400. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +0 -1
  401. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +0 -23
  402. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +0 -1
  403. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +0 -1
  404. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +0 -24
  405. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +0 -1
  406. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +0 -1
  407. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +0 -18
  408. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +0 -1
  409. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +0 -18
  410. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +0 -1
  411. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +0 -1
  412. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +0 -17
  413. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +0 -1
  414. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +0 -1
  415. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +0 -19
  416. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +0 -1
  417. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +0 -1
  418. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +0 -18
  419. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +0 -1
  420. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +0 -1
  421. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +0 -18
  422. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +0 -1
  423. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +0 -1
  424. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +0 -18
  425. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +0 -1
  426. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +0 -1
  427. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +0 -18
  428. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +0 -1
  429. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +0 -1
  430. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +0 -18
  431. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +0 -1
  432. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +0 -1
  433. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +0 -24
  434. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +0 -1
  435. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +0 -1
  436. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +0 -53
  437. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +0 -1
  438. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +0 -32
  439. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +0 -1
  440. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +0 -1
  441. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +0 -27
  442. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts.map +0 -1
  443. package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +0 -1
  444. package/lib/esm/imodel-components-react/timeline/PlayButton.d.ts +0 -12
  445. package/lib/esm/imodel-components-react/timeline/PlayButton.d.ts.map +0 -1
  446. package/lib/esm/imodel-components-react/timeline/PlayButton.js.map +0 -1
  447. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +0 -54
  448. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts.map +0 -1
  449. package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +0 -1
  450. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts.map +0 -1
  451. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +0 -1
  452. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +0 -16
  453. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts.map +0 -1
  454. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +0 -1
  455. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +0 -40
  456. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +0 -1
  457. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +0 -1
  458. package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +0 -48
  459. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +0 -146
  460. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +0 -1
  461. package/lib/esm/imodel-components-react/timeline/interfaces.js.map +0 -1
  462. package/lib/esm/imodel-components-react/useTranslation.d.ts +0 -7
  463. package/lib/esm/imodel-components-react/useTranslation.d.ts.map +0 -1
  464. package/lib/esm/imodel-components-react/useTranslation.js.map +0 -1
  465. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +0 -43
  466. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +0 -1
  467. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +0 -1
  468. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +0 -119
  469. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +0 -1
  470. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +0 -1
  471. package/lib/esm/imodel-components-react.d.ts +0 -80
  472. package/lib/esm/imodel-components-react.d.ts.map +0 -1
  473. package/lib/esm/imodel-components-react.js +0 -85
  474. package/lib/esm/imodel-components-react.js.map +0 -1
  475. /package/lib/{cjs/imodel-components-react → imodel-components-react}/UiIModelComponents.json +0 -0
  476. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/AlphaSlider.d.ts +0 -0
  477. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/AlphaSlider.scss +0 -0
  478. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/ColorPickerButton.d.ts +0 -0
  479. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/ColorPickerDialog.d.ts +0 -0
  480. /package/lib/{esm/imodel-components-react → imodel-components-react}/color/ColorPickerDialog.js +0 -0
  481. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/ColorPickerPopup.d.ts +0 -0
  482. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/ColorPickerPopup.scss +0 -0
  483. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/HueSlider.d.ts +0 -0
  484. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/HueSlider.scss +0 -0
  485. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/SaturationPicker.d.ts +0 -0
  486. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/SaturationPicker.scss +0 -0
  487. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/Swatch.d.ts +0 -0
  488. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/Swatch.scss +0 -0
  489. /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/getCSSColorFromDef.d.ts +0 -0
  490. /package/lib/{esm/imodel-components-react → imodel-components-react}/color/getCSSColorFromDef.js +0 -0
  491. /package/lib/{cjs/imodel-components-react → imodel-components-react}/editors/ColorEditor.d.ts +0 -0
  492. /package/lib/{cjs/imodel-components-react → imodel-components-react}/editors/WeightEditor.d.ts +0 -0
  493. /package/lib/{cjs/imodel-components-react → imodel-components-react}/inputs/QuantityInput.d.ts +0 -0
  494. /package/lib/{cjs/imodel-components-react → imodel-components-react}/inputs/QuantityNumberInput.d.ts +0 -0
  495. /package/lib/{esm/imodel-components-react → imodel-components-react}/inputs/QuantityNumberInput.js +0 -0
  496. /package/lib/{cjs/imodel-components-react → imodel-components-react}/lineweight/Swatch.d.ts +0 -0
  497. /package/lib/{cjs/imodel-components-react → imodel-components-react}/lineweight/WeightPickerButton.d.ts +0 -0
  498. /package/lib/{cjs/imodel-components-react → imodel-components-react}/navigationaids/Cube.d.ts +0 -0
  499. /package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/Cube.js +0 -0
  500. /package/lib/{cjs/imodel-components-react → imodel-components-react}/navigationaids/Cube.scss +0 -0
  501. /package/lib/{cjs/imodel-components-react → imodel-components-react}/navigationaids/DrawingNavigationAid.d.ts +0 -0
  502. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatPanel.d.ts +0 -0
  503. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatPrecision.d.ts +0 -0
  504. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatSample.d.ts +0 -0
  505. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatType.d.ts +0 -0
  506. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatUnitLabel.d.ts +0 -0
  507. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatUnits.d.ts +0 -0
  508. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/MiscFormatOptions.d.ts +0 -0
  509. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/QuantityFormatPanel.d.ts +0 -0
  510. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalPrecision.d.ts +0 -0
  511. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalSeparator.d.ts +0 -0
  512. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/FractionPrecision.d.ts +0 -0
  513. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/ScientificType.d.ts +0 -0
  514. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/SignOption.d.ts +0 -0
  515. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSeparatorSelector.d.ts +0 -0
  516. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSizeSelector.d.ts +0 -0
  517. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSelector.d.ts +0 -0
  518. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSeparator.d.ts +0 -0
  519. /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/UnitDescr.d.ts +0 -0
  520. /package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/UnitDescr.js +0 -0
  521. /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/BaseSolarDataProvider.js +0 -0
  522. /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/BaseTimelineDataProvider.js +0 -0
  523. /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/InlineEdit.d.ts +0 -0
  524. /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/InlineEdit.js +0 -0
  525. /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/PlayButton.d.ts +0 -0
  526. /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/SpeedTimeline.d.ts +0 -0
  527. /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/SpeedTimeline.js +0 -0
  528. /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/TimelineComponent.scss +0 -0
  529. /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/interfaces.d.ts +0 -0
  530. /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/interfaces.js +0 -0
  531. /package/lib/{cjs/imodel-components-react → imodel-components-react}/useTranslation.d.ts +0 -0
  532. /package/lib/{cjs/imodel-components-react → imodel-components-react}/viewport/ViewportComponent.d.ts +0 -0
@@ -1,265 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Inputs
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
- var __importDefault = (this && this.__importDefault) || function (mod) {
33
- return (mod && mod.__esModule) ? mod : { "default": mod };
34
- };
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.QuantityNumberInput = void 0;
37
- require("./QuantityNumberInput.scss");
38
- const classnames_1 = __importDefault(require("classnames"));
39
- const React = __importStar(require("react"));
40
- const ts_key_enum_1 = require("ts-key-enum");
41
- const core_react_1 = require("@itwin/core-react");
42
- const core_frontend_1 = require("@itwin/core-frontend");
43
- const core_quantity_1 = require("@itwin/core-quantity");
44
- const itwinui_react_1 = require("@itwin/itwinui-react");
45
- const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
46
- /** adjust formatter spec to show only primary unit without a label. */
47
- function adjustFormatterSpec(formatterSpec) {
48
- if (undefined === formatterSpec)
49
- return formatterSpec;
50
- const singleUnitConversion = [];
51
- singleUnitConversion.push(formatterSpec.unitConversions[0]);
52
- const newFormat = formatterSpec.format.clone({
53
- showOnlyPrimaryUnit: true,
54
- traits: formatterSpec.format.formatTraits & ~core_quantity_1.FormatTraits.ShowUnitLabel,
55
- type: core_quantity_1.FormatType.Decimal,
56
- precision: core_quantity_1.FormatType.Decimal !== formatterSpec.format.type
57
- ? core_quantity_1.DecimalPrecision.Four
58
- : formatterSpec.format.precision,
59
- });
60
- return new core_quantity_1.FormatterSpec("single-value", newFormat, singleUnitConversion, formatterSpec.persistenceUnit);
61
- }
62
- function convertValueFromDisplayToPersistence(value, unitConversions, unit) {
63
- if (!unitConversions || 0 === unitConversions.length)
64
- return value;
65
- const unitConversion = unitConversions.find((spec) => spec.name === unit.name);
66
- if (!unitConversion)
67
- return value;
68
- const convertedValue = value * unitConversion.conversion.factor + unitConversion.conversion.offset;
69
- return convertedValue;
70
- }
71
- function getUnitLabel(parserSpec) {
72
- if (undefined === parserSpec)
73
- return "";
74
- const format = parserSpec.format;
75
- if (!format.units || !format.units[0])
76
- return parserSpec.outUnit.label;
77
- const [unit, label] = format.units[0];
78
- return label ?? unit.label;
79
- }
80
- const ForwardRefQuantityNumberInput = React.forwardRef(function ForwardRefQuantityNumberInput(props, ref) {
81
- const { containerClassName, persistenceValue, min, max, onChange, onBlur, onKeyDown, step, snap, showTouchButtons, quantityType, ...otherProps } = props;
82
- const rawValueRef = React.useRef(persistenceValue);
83
- const [formatterSpec, setFormatterSpec] = React.useState(() => adjustFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)));
84
- const [parserSpec, setParserSpec] = React.useState(() => core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
85
- const formatValue = React.useCallback((value) => {
86
- if (undefined === value)
87
- return "";
88
- if (formatterSpec) {
89
- return formatterSpec.applyFormatting(value);
90
- }
91
- return value.toFixed(2);
92
- }, [formatterSpec]);
93
- const lastFormattedValueRef = React.useRef(formatValue(persistenceValue));
94
- const [formattedValue, setFormattedValue] = React.useState(() => lastFormattedValueRef.current);
95
- React.useEffect(() => {
96
- return core_frontend_1.IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(() => {
97
- setFormatterSpec(adjustFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)));
98
- setParserSpec(core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
99
- });
100
- }, [quantityType]);
101
- React.useEffect(() => {
102
- return core_frontend_1.IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener((args) => {
103
- const quantityKey = core_frontend_1.IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);
104
- if (args.quantityType === quantityKey) {
105
- setFormatterSpec(adjustFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)));
106
- setParserSpec(core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
107
- }
108
- });
109
- }, [quantityType]);
110
- const unitLabel = getUnitLabel(parserSpec);
111
- // See if new initialValue props have changed since component mounted
112
- React.useEffect(() => {
113
- rawValueRef.current = persistenceValue;
114
- const currentFormattedValue = formatValue(rawValueRef.current);
115
- setFormattedValue(currentFormattedValue);
116
- }, [formatValue, persistenceValue]);
117
- // this is the unprocessed input from user, it is not processed until blur or enter key press
118
- const handleDisplayValueChange = React.useCallback((event) => {
119
- setFormattedValue(event.currentTarget.value);
120
- }, []);
121
- const updateValue = React.useCallback((newValue) => {
122
- let persistedValue = newValue;
123
- if (parserSpec) {
124
- // convert value from display unit to persistence unit
125
- const [unit] = parserSpec.format.units
126
- ? parserSpec.format.units[0]
127
- : [parserSpec.outUnit];
128
- persistedValue = convertValueFromDisplayToPersistence(newValue, parserSpec.unitConversions, unit);
129
- rawValueRef.current = persistedValue;
130
- }
131
- const newFormattedVal = formatValue(persistedValue);
132
- onChange && onChange(persistedValue);
133
- setFormattedValue(newFormattedVal);
134
- }, [formatValue, onChange, parserSpec]);
135
- /**
136
- * Used internally to parse the argument x to it's numeric representation.
137
- * If the argument cannot be converted to finite number returns 0; If a
138
- * "precision" prop is specified uses it round the number with that
139
- * precision (no fixed precision here because the return value is float, not
140
- * string).
141
- */
142
- const parseInternal = React.useCallback((x) => {
143
- if (!x)
144
- return 0;
145
- let n = parseFloat(x);
146
- if (isNaN(n) || !isFinite(n)) {
147
- n = 0;
148
- }
149
- const localPrecision = 6; // TODO get a reasonable value from format
150
- const q = Math.pow(10, localPrecision);
151
- const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;
152
- const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;
153
- n = Math.min(Math.max(n, localMin), localMax);
154
- n = Math.round(n * q) / q;
155
- return n;
156
- }, [min, max]);
157
- const updateValueFromString = React.useCallback((strValue) => {
158
- if (parserSpec) {
159
- const parseResult = core_frontend_1.IModelApp.quantityFormatter.parseToQuantityValue(strValue, parserSpec);
160
- // at this point we should have a string value in persistence units without a label
161
- if (core_quantity_1.Parser.isParsedQuantity(parseResult)) {
162
- const persistedValue = parseResult.value; // in persistence units
163
- // set strValue and let it go through parseInternal which will ensure min/max limits are observed
164
- strValue = formatValue(persistedValue);
165
- }
166
- else {
167
- if (rawValueRef.current) {
168
- // restore last known good value
169
- const lastKnownFormattedVal = formatValue(rawValueRef.current);
170
- setFormattedValue(lastKnownFormattedVal);
171
- return;
172
- }
173
- }
174
- }
175
- const newValue = parseInternal(strValue);
176
- if (undefined !== newValue)
177
- updateValue(newValue);
178
- }, [formatValue, parseInternal, parserSpec, updateValue]);
179
- const handleBlur = React.useCallback((event) => {
180
- const newVal = parseInternal(event.target.value);
181
- onBlur && onBlur(event);
182
- updateValue(newVal);
183
- }, [parseInternal, updateValue, onBlur]);
184
- const getIncrementValue = React.useCallback((increment) => {
185
- if (typeof step === "function") {
186
- const stepVal = step(increment ? "up" : "down");
187
- return stepVal ? stepVal : 1;
188
- }
189
- return !step ? 1 : step;
190
- }, [step]);
191
- /**
192
- * The internal method that actually sets the new value on the input
193
- */
194
- const applyStep = React.useCallback((increment) => {
195
- const incrementValue = getIncrementValue(increment);
196
- let num = parseInternal(formattedValue) +
197
- (increment ? incrementValue : -incrementValue);
198
- if (snap) {
199
- num = Math.round(num / incrementValue) * incrementValue;
200
- }
201
- const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;
202
- const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;
203
- num = Math.min(Math.max(num, localMin), localMax);
204
- updateValue(num);
205
- }, [
206
- formattedValue,
207
- getIncrementValue,
208
- max,
209
- min,
210
- parseInternal,
211
- snap,
212
- updateValue,
213
- ]);
214
- const handleKeyDown = React.useCallback((event) => {
215
- if (event.key === ts_key_enum_1.Key.Enter.valueOf()) {
216
- updateValueFromString(event.currentTarget.value);
217
- event.preventDefault();
218
- }
219
- else if (event.key === ts_key_enum_1.Key.Escape.valueOf()) {
220
- setFormattedValue(formatValue(rawValueRef.current));
221
- event.preventDefault();
222
- }
223
- else if (event.key === ts_key_enum_1.Key.ArrowDown.valueOf()) {
224
- applyStep(false);
225
- event.preventDefault();
226
- }
227
- else if (event.key === ts_key_enum_1.Key.ArrowUp.valueOf()) {
228
- applyStep(true);
229
- event.preventDefault();
230
- }
231
- onKeyDown && onKeyDown(event);
232
- }, [onKeyDown, updateValueFromString, formatValue, applyStep]);
233
- const handleDownClick = React.useCallback((event) => {
234
- applyStep(false);
235
- event.preventDefault();
236
- }, [applyStep]);
237
- const handleUpClick = React.useCallback((event) => {
238
- applyStep(true);
239
- event.preventDefault();
240
- }, [applyStep]);
241
- const handleFocus = React.useCallback((event) => {
242
- event.currentTarget.select();
243
- }, []);
244
- const isDisabled = !!otherProps.disabled;
245
- const containerClasses = (0, classnames_1.default)("component-quantity-number-input-container", containerClassName, showTouchButtons && "component-number-buttons-for-touch", isDisabled && "component-quantity-number-input-disabled");
246
- const caretUp = showTouchButtons ? React.createElement(itwinui_icons_react_1.SvgCaretUp, null) : React.createElement(itwinui_icons_react_1.SvgCaretUpSmall, null);
247
- const caretDown = showTouchButtons ? React.createElement(itwinui_icons_react_1.SvgCaretDown, null) : React.createElement(itwinui_icons_react_1.SvgCaretDownSmall, null);
248
- return (React.createElement("div", { className: containerClasses },
249
- React.createElement("div", { className: "component-quantity-number-input-value-and-buttons-container" },
250
- React.createElement(itwinui_react_1.Input, { ref: ref, value: formattedValue, onChange: handleDisplayValueChange, onKeyDown: handleKeyDown, onBlur: handleBlur, onFocus: handleFocus, size: "small", ...otherProps }),
251
- React.createElement("div", { className: (0, classnames_1.default)("component-quantity-number-input-buttons-container", showTouchButtons && "component-number-buttons-for-touch") },
252
- React.createElement("div", { className: "component-quantity-number-input-button component-quantity-number-input-button-up", tabIndex: -1, onClick: handleUpClick },
253
- React.createElement(core_react_1.Icon, { iconSpec: caretUp })),
254
- React.createElement("div", { className: "component-quantity-number-input-button component-quantity-number-input-button-down", tabIndex: -1, onClick: handleDownClick },
255
- React.createElement(core_react_1.Icon, { iconSpec: caretDown })))),
256
- React.createElement("span", { className: "component-quantity-number-input-suffix" }, unitLabel)));
257
- });
258
- /** The QuantityNumberInput component accepts input for quantity values. The quantity value is shown as a single numeric value and the quantity's
259
- * "display" unit is shown next to the input control. The "display" unit is determined by the active unit system as defined by the [QuantityFormatter]($frontend).
260
- * The control also display buttons to increment and decrement the "displayed" value. The value reported by via the onChange function is in "persistence"
261
- * units that can be stored in the iModel.
262
- * @beta
263
- */
264
- exports.QuantityNumberInput = ForwardRefQuantityNumberInput;
265
- //# sourceMappingURL=QuantityNumberInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuantityNumberInput.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityNumberInput.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 \"./QuantityNumberInput.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { Icon } from \"@itwin/core-react\";\nimport type { QuantityTypeArg } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type {\n ParserSpec,\n UnitConversionSpec,\n UnitProps,\n} from \"@itwin/core-quantity\";\nimport {\n DecimalPrecision,\n FormatterSpec,\n FormatTraits,\n FormatType,\n Parser,\n} from \"@itwin/core-quantity\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport {\n SvgCaretDown,\n SvgCaretDownSmall,\n SvgCaretUp,\n SvgCaretUpSmall,\n} from \"@itwin/itwinui-icons-react\";\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Input>;\n\n/** Step function prototype for [[QuantityNumberInput]] component\n * @beta\n */\nexport type StepFunctionProp =\n | number\n | ((direction: string) => number | undefined);\n\n/** Properties for the [[QuantityNumberInput]] component\n * @beta\n */\nexport interface QuantityNumberInputProps\n extends Omit<\n InputProps,\n \"value\" | \"min\" | \"max\" | \"step\" | \"onFocus\" | \"onChange\"\n > {\n /** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend).\n * Set to `undefined` to show placeholder text */\n persistenceValue?: number;\n /** CSS class name for the QuantityNumberInput component container div */\n containerClassName?: string;\n /** number or function\tNumber.MIN_SAFE_INTEGER */\n min?: number;\n /** number or function\tdefaults to Number.MAX_SAFE_INTEGER */\n max?: number;\n /** increment step value used while incrementing or decrementing (up/down buttons or arrow keys) defaults to 1. */\n step?: StepFunctionProp;\n /** Set to true to \"snap\" to the closest step value while incrementing or decrementing (up/down buttons or arrow keys). */\n snap?: boolean;\n /** Function to call when the quantity value is changed. The value returned will be in 'persistence' units. */\n onChange?: (value: number) => void;\n /** if true up/down buttons are shown larger and side by side */\n showTouchButtons?: boolean;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n /** Type of quantity being input. */\n quantityType: QuantityTypeArg;\n}\n\n/** adjust formatter spec to show only primary unit without a label. */\nfunction adjustFormatterSpec(formatterSpec: FormatterSpec | undefined) {\n if (undefined === formatterSpec) return formatterSpec;\n const singleUnitConversion: UnitConversionSpec[] = [];\n singleUnitConversion.push(formatterSpec.unitConversions[0]);\n const newFormat = formatterSpec.format.clone({\n showOnlyPrimaryUnit: true,\n traits: formatterSpec.format.formatTraits & ~FormatTraits.ShowUnitLabel,\n type: FormatType.Decimal,\n precision:\n FormatType.Decimal !== formatterSpec.format.type\n ? DecimalPrecision.Four\n : formatterSpec.format.precision,\n });\n return new FormatterSpec(\n \"single-value\",\n newFormat,\n singleUnitConversion,\n formatterSpec.persistenceUnit\n );\n}\n\nfunction convertValueFromDisplayToPersistence(\n value: number,\n unitConversions: UnitConversionSpec[] | undefined,\n unit: UnitProps\n) {\n if (!unitConversions || 0 === unitConversions.length) return value;\n\n const unitConversion = unitConversions.find(\n (spec) => spec.name === unit.name\n );\n if (!unitConversion) return value;\n\n const convertedValue =\n value * unitConversion.conversion.factor + unitConversion.conversion.offset;\n return convertedValue;\n}\n\nfunction getUnitLabel(parserSpec: ParserSpec | undefined) {\n if (undefined === parserSpec) return \"\";\n\n const format = parserSpec.format;\n if (!format.units || !format.units[0]) return parserSpec.outUnit.label;\n const [unit, label] = format.units[0];\n return label ?? unit.label;\n}\n\nconst ForwardRefQuantityNumberInput = React.forwardRef<\n HTMLInputElement,\n QuantityNumberInputProps\n>(function ForwardRefQuantityNumberInput(props, ref) {\n const {\n containerClassName,\n persistenceValue,\n min,\n max,\n onChange,\n onBlur,\n onKeyDown,\n step,\n snap,\n showTouchButtons,\n quantityType,\n ...otherProps\n } = props;\n const rawValueRef = React.useRef(persistenceValue);\n\n const [formatterSpec, setFormatterSpec] = React.useState(() =>\n adjustFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)\n )\n );\n const [parserSpec, setParserSpec] = React.useState(() =>\n IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType)\n );\n\n const formatValue = React.useCallback(\n (value: number | undefined) => {\n if (undefined === value) return \"\";\n\n if (formatterSpec) {\n return formatterSpec.applyFormatting(value);\n }\n return value.toFixed(2);\n },\n [formatterSpec]\n );\n\n const lastFormattedValueRef = React.useRef(formatValue(persistenceValue));\n const [formattedValue, setFormattedValue] = React.useState(\n () => lastFormattedValueRef.current\n );\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n () => {\n setFormatterSpec(\n adjustFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n quantityType\n )\n )\n );\n setParserSpec(\n IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType)\n );\n }\n );\n }, [quantityType]);\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n (args) => {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);\n if (args.quantityType === quantityKey) {\n setFormatterSpec(\n adjustFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n quantityType\n )\n )\n );\n setParserSpec(\n IModelApp.quantityFormatter.findParserSpecByQuantityType(\n quantityType\n )\n );\n }\n }\n );\n }, [quantityType]);\n\n const unitLabel = getUnitLabel(parserSpec);\n\n // See if new initialValue props have changed since component mounted\n React.useEffect(() => {\n rawValueRef.current = persistenceValue;\n const currentFormattedValue = formatValue(rawValueRef.current);\n setFormattedValue(currentFormattedValue);\n }, [formatValue, persistenceValue]);\n\n // this is the unprocessed input from user, it is not processed until blur or enter key press\n const handleDisplayValueChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setFormattedValue(event.currentTarget.value);\n },\n []\n );\n\n const updateValue = React.useCallback(\n (newValue: number) => {\n let persistedValue = newValue;\n if (parserSpec) {\n // convert value from display unit to persistence unit\n const [unit] = parserSpec.format.units\n ? parserSpec.format.units[0]\n : [parserSpec.outUnit];\n persistedValue = convertValueFromDisplayToPersistence(\n newValue,\n parserSpec.unitConversions,\n unit\n );\n rawValueRef.current = persistedValue;\n }\n const newFormattedVal = formatValue(persistedValue);\n onChange && onChange(persistedValue);\n setFormattedValue(newFormattedVal);\n },\n [formatValue, onChange, parserSpec]\n );\n\n /**\n * Used internally to parse the argument x to it's numeric representation.\n * If the argument cannot be converted to finite number returns 0; If a\n * \"precision\" prop is specified uses it round the number with that\n * precision (no fixed precision here because the return value is float, not\n * string).\n */\n const parseInternal = React.useCallback(\n (x: string | undefined) => {\n if (!x) return 0;\n\n let n = parseFloat(x);\n if (isNaN(n) || !isFinite(n)) {\n n = 0;\n }\n\n const localPrecision = 6; // TODO get a reasonable value from format\n const q = Math.pow(10, localPrecision);\n const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;\n const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;\n n = Math.min(Math.max(n, localMin), localMax);\n n = Math.round(n * q) / q;\n\n return n;\n },\n [min, max]\n );\n\n const updateValueFromString = React.useCallback(\n (strValue: string) => {\n if (parserSpec) {\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(\n strValue,\n parserSpec\n );\n // at this point we should have a string value in persistence units without a label\n if (Parser.isParsedQuantity(parseResult)) {\n const persistedValue = parseResult.value; // in persistence units\n // set strValue and let it go through parseInternal which will ensure min/max limits are observed\n strValue = formatValue(persistedValue)!;\n } else {\n if (rawValueRef.current) {\n // restore last known good value\n const lastKnownFormattedVal = formatValue(rawValueRef.current);\n setFormattedValue(lastKnownFormattedVal);\n return;\n }\n }\n }\n const newValue = parseInternal(strValue);\n if (undefined !== newValue) updateValue(newValue);\n },\n [formatValue, parseInternal, parserSpec, updateValue]\n );\n\n const handleBlur = React.useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n const newVal = parseInternal(event.target.value);\n onBlur && onBlur(event);\n updateValue(newVal);\n },\n [parseInternal, updateValue, onBlur]\n );\n\n const getIncrementValue = React.useCallback(\n (increment: boolean) => {\n if (typeof step === \"function\") {\n const stepVal = step(increment ? \"up\" : \"down\");\n return stepVal ? stepVal : 1;\n }\n\n return !step ? 1 : step;\n },\n [step]\n );\n\n /**\n * The internal method that actually sets the new value on the input\n */\n const applyStep = React.useCallback(\n (increment: boolean) => {\n const incrementValue = getIncrementValue(increment);\n\n let num =\n parseInternal(formattedValue) +\n (increment ? incrementValue : -incrementValue);\n if (snap) {\n num = Math.round(num / incrementValue) * incrementValue;\n }\n\n const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;\n const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;\n num = Math.min(Math.max(num, localMin), localMax);\n\n updateValue(num);\n },\n [\n formattedValue,\n getIncrementValue,\n max,\n min,\n parseInternal,\n snap,\n updateValue,\n ]\n );\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === Key.Enter.valueOf()) {\n updateValueFromString(event.currentTarget.value);\n event.preventDefault();\n } else if (event.key === Key.Escape.valueOf()) {\n setFormattedValue(formatValue(rawValueRef.current));\n event.preventDefault();\n } else if (event.key === Key.ArrowDown.valueOf()) {\n applyStep(false);\n event.preventDefault();\n } else if (event.key === Key.ArrowUp.valueOf()) {\n applyStep(true);\n event.preventDefault();\n }\n onKeyDown && onKeyDown(event);\n },\n [onKeyDown, updateValueFromString, formatValue, applyStep]\n );\n\n const handleDownClick = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n applyStep(false);\n event.preventDefault();\n },\n [applyStep]\n );\n\n const handleUpClick = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n applyStep(true);\n event.preventDefault();\n },\n [applyStep]\n );\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n event.currentTarget.select();\n },\n []\n );\n\n const isDisabled = !!otherProps.disabled;\n const containerClasses = classnames(\n \"component-quantity-number-input-container\",\n containerClassName,\n showTouchButtons && \"component-number-buttons-for-touch\",\n isDisabled && \"component-quantity-number-input-disabled\"\n );\n\n const caretUp = showTouchButtons ? <SvgCaretUp /> : <SvgCaretUpSmall />;\n const caretDown = showTouchButtons ? <SvgCaretDown /> : <SvgCaretDownSmall />;\n\n return (\n <div className={containerClasses}>\n <div className=\"component-quantity-number-input-value-and-buttons-container\">\n <Input\n ref={ref}\n value={formattedValue}\n onChange={handleDisplayValueChange}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n onFocus={handleFocus}\n size=\"small\"\n {...otherProps}\n />\n <div\n className={classnames(\n \"component-quantity-number-input-buttons-container\",\n showTouchButtons && \"component-number-buttons-for-touch\"\n )}\n >\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n className=\"component-quantity-number-input-button component-quantity-number-input-button-up\"\n tabIndex={-1}\n onClick={handleUpClick}\n >\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Icon iconSpec={caretUp} />\n </div>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n className=\"component-quantity-number-input-button component-quantity-number-input-button-down\"\n tabIndex={-1}\n onClick={handleDownClick}\n >\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Icon iconSpec={caretDown} />\n </div>\n </div>\n </div>\n <span className=\"component-quantity-number-input-suffix\">\n {unitLabel}\n </span>\n </div>\n );\n});\n\n/** The QuantityNumberInput component accepts input for quantity values. The quantity value is shown as a single numeric value and the quantity's\n * \"display\" unit is shown next to the input control. The \"display\" unit is determined by the active unit system as defined by the [QuantityFormatter]($frontend).\n * The control also display buttons to increment and decrement the \"displayed\" value. The value reported by via the onChange function is in \"persistence\"\n * units that can be stored in the iModel.\n * @beta\n */\nexport const QuantityNumberInput: (\n props: QuantityNumberInputProps\n) => React.ReactNode = ForwardRefQuantityNumberInput;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Swatch.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/lineweight/Swatch.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAEvB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAEnD,WAAW;IACb,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC;gBAClE,KAAK,EAAE,qBAAqB;IAIxB,iBAAiB;IAEjB,MAAM;CA4DvB"}
@@ -1,84 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module LineWeight
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
- var __importDefault = (this && this.__importDefault) || function (mod) {
33
- return (mod && mod.__esModule) ? mod : { "default": mod };
34
- };
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.LineWeightSwatch = void 0;
37
- require("./Swatch.scss");
38
- const classnames_1 = __importDefault(require("classnames"));
39
- const React = __importStar(require("react"));
40
- const getCSSColorFromDef_1 = require("../color/getCSSColorFromDef");
41
- /** LineWeightSwatch Functional component
42
- * @public
43
- */
44
- class LineWeightSwatch extends React.PureComponent {
45
- constructor(props) {
46
- super(props);
47
- }
48
- componentDidMount() { }
49
- render() {
50
- const { onClick, colorDef, weight, hideLabel, className, // do not pass on color swatch specific props
51
- disabled, readonly, ...otherProps // pass-through props
52
- } = this.props;
53
- let rgbaString = "";
54
- if (colorDef) {
55
- rgbaString = (0, getCSSColorFromDef_1.getCSSColorFromDef)(colorDef);
56
- }
57
- const buttonStyle = colorDef
58
- ? {
59
- ...this.props.style,
60
- color: rgbaString,
61
- }
62
- : {
63
- ...this.props.style,
64
- };
65
- const svgStyle = colorDef
66
- ? {
67
- height: `${weight}px`,
68
- background: rgbaString,
69
- }
70
- : {
71
- height: `${weight}px`,
72
- };
73
- const handleClick = (_e) => {
74
- if (onClick)
75
- onClick();
76
- };
77
- const classes = (0, classnames_1.default)("components-lineweight-swatch", hideLabel && "hide-label", readonly && "readonly", className);
78
- return (React.createElement("button", { ...otherProps, style: buttonStyle, className: classes, onClick: handleClick, disabled: disabled },
79
- !hideLabel && React.createElement("span", null, weight.toFixed(0)),
80
- React.createElement("div", { style: svgStyle })));
81
- }
82
- }
83
- exports.LineWeightSwatch = LineWeightSwatch;
84
- //# sourceMappingURL=Swatch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Swatch.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/lineweight/Swatch.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yBAAuB;AACvB,4DAAoC;AACpC,6CAA+B;AAG/B,oEAAiE;AAuBjE;;GAEG;AACH,MAAa,gBAAiB,SAAQ,KAAK,CAAC,aAAoC;IAC9E,YAAY,KAA4B;QACtC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,iBAAiB,KAAI,CAAC;IAEtB,MAAM;QACpB,MAAM,EACJ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,EAAE,6CAA6C;QACxD,QAAQ,EACR,QAAQ,EACR,GAAG,UAAU,CAAC,qBAAqB;UACpC,GAAG,IAAI,CAAC,KAAK,CAAC;QAEf,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,IAAA,uCAAkB,EAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,WAAW,GAAwB,QAAQ;YAC/C,CAAC,CAAC;gBACE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;gBACnB,KAAK,EAAE,UAAU;aAClB;YACH,CAAC,CAAC;gBACE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;aACpB,CAAC;QAEN,MAAM,QAAQ,GAAwB,QAAQ;YAC5C,CAAC,CAAC;gBACE,MAAM,EAAE,GAAG,MAAM,IAAI;gBACrB,UAAU,EAAE,UAAU;aACvB;YACH,CAAC,CAAC;gBACE,MAAM,EAAE,GAAG,MAAM,IAAI;aACtB,CAAC;QAEN,MAAM,WAAW,GAAG,CAAC,EAAoB,EAAE,EAAE;YAC3C,IAAI,OAAO;gBAAE,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,oBAAU,EACxB,8BAA8B,EAC9B,SAAS,IAAI,YAAY,EACzB,QAAQ,IAAI,UAAU,EACtB,SAAS,CACV,CAAC;QAEF,OAAO,CACL,mCACM,UAAU,EACd,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ;YAEjB,CAAC,SAAS,IAAI,kCAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAQ;YAC/C,6BAAK,KAAK,EAAE,QAAQ,GAAI,CACjB,CACV,CAAC;IACJ,CAAC;CACF;AAnED,4CAmEC","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 LineWeight\n */\n\nimport \"./Swatch.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { getCSSColorFromDef } from \"../color/getCSSColorFromDef\";\n\n/** Properties for the [[LineWeightSwatch]] React component\n * @public\n */\nexport interface LineWeightSwatchProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n // eslint-disable-next-line deprecation/deprecation\n CommonProps {\n /** color specification */\n weight: number;\n /** color specification */\n colorDef?: ColorDef;\n /** hide the weight label */\n hideLabel?: boolean;\n /** Disabled or not */\n disabled?: boolean;\n /** Readonly or not */\n readonly?: boolean;\n /** function to run when user selects a line weight swatch */\n onClick?: () => void;\n}\n\n/** LineWeightSwatch Functional component\n * @public\n */\nexport class LineWeightSwatch extends React.PureComponent<LineWeightSwatchProps> {\n constructor(props: LineWeightSwatchProps) {\n super(props);\n }\n\n public override componentDidMount() {}\n\n public override render() {\n const {\n onClick,\n colorDef,\n weight,\n hideLabel,\n className, // do not pass on color swatch specific props\n disabled,\n readonly,\n ...otherProps // pass-through props\n } = this.props;\n\n let rgbaString = \"\";\n\n if (colorDef) {\n rgbaString = getCSSColorFromDef(colorDef);\n }\n\n const buttonStyle: React.CSSProperties = colorDef\n ? {\n ...this.props.style,\n color: rgbaString,\n }\n : {\n ...this.props.style,\n };\n\n const svgStyle: React.CSSProperties = colorDef\n ? {\n height: `${weight}px`,\n background: rgbaString,\n }\n : {\n height: `${weight}px`,\n };\n\n const handleClick = (_e: React.MouseEvent) => {\n if (onClick) onClick();\n };\n\n const classes = classnames(\n \"components-lineweight-swatch\",\n hideLabel && \"hide-label\",\n readonly && \"readonly\",\n className\n );\n\n return (\n <button\n {...otherProps}\n style={buttonStyle}\n className={classes}\n onClick={handleClick}\n disabled={disabled}\n >\n {!hideLabel && <span>{weight.toFixed(0)}</span>}\n <div style={svgStyle} />\n </button>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WeightPickerButton.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/lineweight/WeightPickerButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;GAEG;AACH,MAAM,WAAW,iBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAEnD,WAAW;IACb,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,aAAa,CACzD,iBAAiB,EACjB,iBAAiB,CAClB;IACC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAwC;gBAEhD,KAAK,EAAE,iBAAiB;IAM7B,QAAQ,IAAI,IAAI;IAIvB,OAAc,YAAY;;MAExB;IAEF,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO,CAAC,WAAW,CAEjB;IAEF,OAAO,CAAC,mBAAmB,CAGzB;IAEc,iBAAiB;IAIjC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,cAAc,CA4BpB;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,WAAW;IAiCH,MAAM;CAgDvB"}
@@ -1,160 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module LineWeight
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
- var __importDefault = (this && this.__importDefault) || function (mod) {
33
- return (mod && mod.__esModule) ? mod : { "default": mod };
34
- };
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.WeightPickerButton = void 0;
37
- require("./WeightPickerButton.scss");
38
- const classnames_1 = __importDefault(require("classnames"));
39
- const React = __importStar(require("react"));
40
- const ts_key_enum_1 = require("ts-key-enum");
41
- const appui_abstract_1 = require("@itwin/appui-abstract");
42
- const core_react_1 = require("@itwin/core-react");
43
- const Swatch_1 = require("./Swatch");
44
- /** WeightPickerButton component
45
- * @public
46
- */
47
- class WeightPickerButton extends React.PureComponent {
48
- constructor(props) {
49
- super(props);
50
- this._target = React.createRef();
51
- this._weightsContainer = null;
52
- this._focusTarget = React.createRef(); // weight button that should receive focus after popup is open
53
- this._togglePopup = () => {
54
- if (this.props.readonly)
55
- return;
56
- this.setState((prevState) => ({ showPopup: !prevState.showPopup }));
57
- };
58
- this._onPopupOpened = () => { };
59
- this._closePopup = () => {
60
- this.setState((_prevState) => ({ showPopup: false }));
61
- };
62
- this._handleWeightPicked = (weight) => {
63
- this._closePopup();
64
- this.props.onLineWeightPick && this.props.onLineWeightPick(weight);
65
- };
66
- this._handleKeyDown = (event) => {
67
- if (event.key === ts_key_enum_1.Key.Enter.valueOf()) {
68
- event.preventDefault();
69
- event.stopPropagation();
70
- const weightButton = document.activeElement;
71
- if (weightButton.tagName === "BUTTON") {
72
- try {
73
- const values = weightButton.id.split("-");
74
- if (values.length) {
75
- const weight = parseInt(values[values.length - 1], 10);
76
- if (!isNaN(weight)) {
77
- if (this.props.onLineWeightPick)
78
- this.props.onLineWeightPick(weight);
79
- }
80
- }
81
- }
82
- catch { }
83
- }
84
- this._closePopup();
85
- }
86
- else {
87
- switch (event.key) {
88
- case ts_key_enum_1.Key.ArrowDown.valueOf():
89
- this.moveFocusInPopup(false, event);
90
- break;
91
- case ts_key_enum_1.Key.ArrowUp.valueOf():
92
- this.moveFocusInPopup(true, event);
93
- break;
94
- }
95
- }
96
- };
97
- this._setWeightContainer = (el) => {
98
- this._weightsContainer = el;
99
- };
100
- this.state = { showPopup: false, targetElement: null };
101
- }
102
- setFocus() {
103
- this._focusTarget.current && this._focusTarget.current.focus();
104
- }
105
- componentDidMount() {
106
- this.setState({ targetElement: this._target.current });
107
- }
108
- buildIdForWeight(weight) {
109
- return `ui-core-lineweight-${weight}`;
110
- }
111
- moveFocusInPopup(moveUp, event) {
112
- const activeElement = document.activeElement;
113
- if (this._weightsContainer &&
114
- activeElement &&
115
- activeElement.tagName === "BUTTON") {
116
- const values = activeElement.id.split("-");
117
- if (values.length === 4 && values[2] === "lineweight") {
118
- const weight = parseInt(values[3], 10);
119
- const foundIndex = this.props.weights.findIndex((val) => val === weight);
120
- if (foundIndex < 0)
121
- return;
122
- const nextWeight = moveUp
123
- ? foundIndex <= 0
124
- ? this.props.weights[this.props.weights.length - 1]
125
- : this.props.weights[foundIndex - 1]
126
- : foundIndex < this.props.weights.length - 1
127
- ? this.props.weights[foundIndex + 1]
128
- : this.props.weights[0];
129
- const focusLocation = this._weightsContainer.querySelector(`#${this.buildIdForWeight(nextWeight)}`);
130
- if (focusLocation) {
131
- focusLocation.focus();
132
- event.preventDefault();
133
- event.stopPropagation();
134
- }
135
- }
136
- }
137
- }
138
- renderPopup(title) {
139
- return (React.createElement("div", { className: "components-weightpicker-popup-container" },
140
- title && React.createElement("h4", null, title),
141
- React.createElement("ul", { "data-testid": "components-weightpicker-popup-lines", className: "components-weightpicker-popup-lines", onKeyDown: this._handleKeyDown, ref: this._setWeightContainer }, this.props.weights.map((weight, index) => {
142
- const classNames = (0, classnames_1.default)("components-weightpicker-swatch", weight === this.props.activeWeight && "active");
143
- return (React.createElement(Swatch_1.LineWeightSwatch, { className: classNames, key: index, colorDef: this.props.colorDef, id: this.buildIdForWeight(weight), hideLabel: this.props.hideLabel, onClick: this._handleWeightPicked.bind(this, weight), weight: weight }));
144
- }))));
145
- }
146
- render() {
147
- const buttonClassNames = (0, classnames_1.default)("components-weightpicker-button", this.props.className);
148
- return (React.createElement(React.Fragment, null,
149
- React.createElement("div", { ref: this._target, style: this.props.style },
150
- React.createElement(Swatch_1.LineWeightSwatch, { "data-testid": "components-weightpicker-button", className: buttonClassNames, weight: this.props.activeWeight, colorDef: this.props.colorDef, readonly: this.props.readonly, disabled: this.props.disabled, hideLabel: this.props.hideLabel, "aria-haspopup": "listbox", "aria-expanded": this.state.showPopup, onClick: this._togglePopup })),
151
- React.createElement(core_react_1.ElementResizeObserver, { watchedElement: this.state.targetElement, render: ({ width }) => (
152
- // eslint-disable-next-line deprecation/deprecation
153
- React.createElement(core_react_1.Popup, { className: "components-weightpicker-popup", style: { width: `${width}px` }, isOpen: this.state.showPopup, position: appui_abstract_1.RelativePosition.Bottom, offset: 0, showShadow: false, onClose: this._closePopup, onOpen: this._onPopupOpened, focusTarget: `#${this.buildIdForWeight(this.props.activeWeight)}`, moveFocus: true, target: this.state.targetElement, closeOnNestedPopupOutsideClick: true }, this.renderPopup(this.props.dropDownTitle))) })));
154
- }
155
- }
156
- exports.WeightPickerButton = WeightPickerButton;
157
- WeightPickerButton.defaultProps = {
158
- weights: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
159
- };
160
- //# sourceMappingURL=WeightPickerButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WeightPickerButton.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/lineweight/WeightPickerButton.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 LineWeight\n */\n\nimport \"./WeightPickerButton.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { ColorDef } from \"@itwin/core-common\";\nimport { RelativePosition } from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { ElementResizeObserver, Popup } from \"@itwin/core-react\";\nimport { LineWeightSwatch } from \"./Swatch\";\n\n// cSpell:ignore weightpicker lineweight\n\n/** Properties for the [[WeightPickerButton]] React component\n * @public\n */\nexport interface WeightPickerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n // eslint-disable-next-line deprecation/deprecation\n CommonProps {\n /** active weight */\n activeWeight: number;\n /** available weights */\n weights: number[];\n /** color specification */\n colorDef?: ColorDef;\n /** function to run when user selects weight swatch */\n onLineWeightPick?: ((weight: number) => void) | undefined;\n /** Disabled or not */\n disabled?: boolean;\n /** Readonly or not */\n readonly?: boolean;\n /** hide the weight label */\n hideLabel?: boolean;\n /** Title to show at top of DropDown */\n dropDownTitle?: string;\n}\n\n/** @internal */\ninterface WeightPickerState {\n showPopup: boolean;\n targetElement: HTMLDivElement | null;\n}\n\n/** WeightPickerButton component\n * @public\n */\nexport class WeightPickerButton extends React.PureComponent<\n WeightPickerProps,\n WeightPickerState\n> {\n private _target = React.createRef<HTMLDivElement>();\n private _weightsContainer: HTMLDivElement | null = null;\n private _focusTarget = React.createRef<HTMLButtonElement>(); // weight button that should receive focus after popup is open\n\n constructor(props: WeightPickerProps) {\n super(props);\n\n this.state = { showPopup: false, targetElement: null };\n }\n\n public setFocus(): void {\n this._focusTarget.current && this._focusTarget.current.focus();\n }\n\n public static defaultProps = {\n weights: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n };\n\n private _togglePopup = () => {\n if (this.props.readonly) return;\n this.setState((prevState) => ({ showPopup: !prevState.showPopup }));\n };\n\n private _onPopupOpened = () => {};\n\n private _closePopup = () => {\n this.setState((_prevState) => ({ showPopup: false }));\n };\n\n private _handleWeightPicked = (weight: number) => {\n this._closePopup();\n this.props.onLineWeightPick && this.props.onLineWeightPick(weight);\n };\n\n public override componentDidMount() {\n this.setState({ targetElement: this._target.current });\n }\n\n private buildIdForWeight(weight: number): string {\n return `ui-core-lineweight-${weight}`;\n }\n\n private moveFocusInPopup(moveUp: boolean, event: React.KeyboardEvent<any>) {\n const activeElement = document.activeElement;\n if (\n this._weightsContainer &&\n activeElement &&\n activeElement.tagName === \"BUTTON\"\n ) {\n const values = activeElement.id.split(\"-\");\n if (values.length === 4 && values[2] === \"lineweight\") {\n const weight = parseInt(values[3], 10);\n const foundIndex = this.props.weights.findIndex(\n (val) => val === weight\n );\n if (foundIndex < 0) return;\n\n const nextWeight = moveUp\n ? foundIndex <= 0\n ? this.props.weights[this.props.weights.length - 1]\n : this.props.weights[foundIndex - 1]\n : foundIndex < this.props.weights.length - 1\n ? this.props.weights[foundIndex + 1]\n : this.props.weights[0];\n\n const focusLocation = this._weightsContainer.querySelector(\n `#${this.buildIdForWeight(nextWeight)}`\n ) as HTMLButtonElement;\n if (focusLocation) {\n focusLocation.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n\n private _handleKeyDown = (event: React.KeyboardEvent<any>) => {\n if (event.key === Key.Enter.valueOf()) {\n event.preventDefault();\n event.stopPropagation();\n const weightButton = document.activeElement as HTMLElement;\n if (weightButton.tagName === \"BUTTON\") {\n try {\n const values = weightButton.id.split(\"-\");\n if (values.length) {\n const weight = parseInt(values[values.length - 1], 10);\n if (!isNaN(weight)) {\n if (this.props.onLineWeightPick)\n this.props.onLineWeightPick(weight);\n }\n }\n } catch {}\n }\n this._closePopup();\n } else {\n switch (event.key) {\n case Key.ArrowDown.valueOf():\n this.moveFocusInPopup(false, event);\n break;\n case Key.ArrowUp.valueOf():\n this.moveFocusInPopup(true, event);\n break;\n }\n }\n };\n\n private _setWeightContainer = (el: any) => {\n this._weightsContainer = el;\n };\n\n private renderPopup(title: string | undefined) {\n return (\n <div className=\"components-weightpicker-popup-container\">\n {title && <h4>{title}</h4>}\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}\n <ul\n data-testid=\"components-weightpicker-popup-lines\"\n className=\"components-weightpicker-popup-lines\"\n onKeyDown={this._handleKeyDown}\n ref={this._setWeightContainer}\n >\n {this.props.weights.map((weight, index) => {\n const classNames = classnames(\n \"components-weightpicker-swatch\",\n weight === this.props.activeWeight && \"active\"\n );\n return (\n <LineWeightSwatch\n className={classNames}\n key={index}\n colorDef={this.props.colorDef}\n id={this.buildIdForWeight(weight)}\n hideLabel={this.props.hideLabel}\n onClick={this._handleWeightPicked.bind(this, weight)}\n weight={weight}\n />\n );\n })}\n </ul>\n </div>\n );\n }\n\n public override render() {\n const buttonClassNames = classnames(\n \"components-weightpicker-button\",\n this.props.className\n );\n\n return (\n <>\n <div ref={this._target} style={this.props.style}>\n <LineWeightSwatch\n data-testid=\"components-weightpicker-button\"\n className={buttonClassNames}\n weight={this.props.activeWeight}\n colorDef={this.props.colorDef}\n readonly={this.props.readonly}\n disabled={this.props.disabled}\n hideLabel={this.props.hideLabel}\n aria-haspopup=\"listbox\"\n aria-expanded={this.state.showPopup}\n onClick={this._togglePopup}\n />\n </div>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ElementResizeObserver\n watchedElement={this.state.targetElement}\n render={({ width }) => (\n // eslint-disable-next-line deprecation/deprecation\n <Popup\n className=\"components-weightpicker-popup\"\n style={{ width: `${width}px` }}\n isOpen={this.state.showPopup}\n position={RelativePosition.Bottom}\n offset={0}\n showShadow={false}\n onClose={this._closePopup}\n onOpen={this._onPopupOpened}\n focusTarget={`#${this.buildIdForWeight(this.props.activeWeight)}`}\n moveFocus={true}\n target={this.state.targetElement}\n closeOnNestedPopupOutsideClick\n >\n {this.renderPopup(this.props.dropDownTitle)}\n </Popup>\n )}\n />\n </>\n );\n }\n}\n"]}