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

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 (282) hide show
  1. package/CHANGELOG.md +113 -1
  2. package/README.md +2 -2
  3. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
  4. package/lib/cjs/imodel-components-react/UiIModelComponents.js +75 -77
  5. package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
  6. package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  7. package/lib/cjs/imodel-components-react/color/AlphaSlider.js +190 -186
  8. package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
  9. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  10. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +112 -108
  11. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  12. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  13. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +78 -74
  14. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  15. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  16. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +149 -145
  17. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  18. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  19. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +143 -139
  20. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  21. package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
  22. package/lib/cjs/imodel-components-react/color/HueSlider.js +203 -199
  23. package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
  24. package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  25. package/lib/cjs/imodel-components-react/color/SaturationPicker.js +217 -213
  26. package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
  27. package/lib/cjs/imodel-components-react/color/Swatch.d.ts +22 -22
  28. package/lib/cjs/imodel-components-react/color/Swatch.js +64 -60
  29. package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
  30. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  31. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +23 -23
  32. package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  33. package/lib/cjs/imodel-components-react/editors/ColorEditor.js +155 -151
  34. package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
  35. package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  36. package/lib/cjs/imodel-components-react/editors/WeightEditor.js +164 -160
  37. package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
  38. package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  39. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +100 -96
  40. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  41. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  42. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  43. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +272 -268
  44. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  45. package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  46. package/lib/cjs/imodel-components-react/lineweight/Swatch.js +89 -85
  47. package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
  48. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  49. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +163 -159
  50. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  51. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +1 -2
  52. package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  53. package/lib/cjs/imodel-components-react/navigationaids/Cube.js +131 -127
  54. package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
  55. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -174
  56. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  57. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +650 -638
  58. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  59. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  60. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +657 -653
  61. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  62. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  63. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +103 -99
  64. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  65. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +0 -4
  66. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  67. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +56 -53
  68. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  69. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  70. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +88 -84
  71. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  72. package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  73. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +89 -86
  74. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  75. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  76. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +112 -109
  77. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  78. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  79. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +133 -133
  80. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  81. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  82. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +187 -184
  83. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  84. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  85. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +149 -145
  86. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  87. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  88. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +63 -59
  89. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  90. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  91. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +51 -47
  92. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  93. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  94. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +58 -54
  95. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  96. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  97. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +52 -48
  98. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  99. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  100. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +54 -50
  101. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  102. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  103. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +62 -58
  104. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  105. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  106. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +51 -47
  107. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  108. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  109. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +60 -56
  110. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  111. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  112. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +98 -95
  113. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  114. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  115. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +123 -119
  116. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  117. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  118. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
  119. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +142 -143
  120. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  121. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  122. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
  123. package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  124. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +85 -81
  125. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  126. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  127. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +99 -95
  128. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  129. package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  130. package/lib/cjs/imodel-components-react/timeline/Scrubber.js +195 -191
  131. package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
  132. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  133. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +432 -428
  134. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  135. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  136. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +58 -54
  137. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  138. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  139. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  140. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +398 -365
  141. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  142. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +17 -0
  143. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +174 -174
  144. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  145. package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
  146. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  147. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  148. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +276 -274
  149. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  150. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  151. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
  152. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  153. package/lib/cjs/imodel-components-react.d.ts +82 -82
  154. package/lib/cjs/imodel-components-react.js +105 -101
  155. package/lib/cjs/imodel-components-react.js.map +1 -1
  156. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
  157. package/lib/esm/imodel-components-react/UiIModelComponents.js +72 -73
  158. package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
  159. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  160. package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
  161. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  162. package/lib/esm/imodel-components-react/color/ColorPickerButton.js +83 -83
  163. package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  164. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  165. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
  166. package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  167. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +122 -122
  168. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  169. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  170. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +114 -114
  171. package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
  172. package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
  173. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  174. package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
  175. package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
  176. package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
  177. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  178. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
  179. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  180. package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
  181. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  182. package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
  183. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  184. package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
  185. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  186. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  187. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +243 -243
  188. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  189. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  190. package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
  191. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  192. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +134 -133
  193. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  194. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +1 -2
  195. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  196. package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
  197. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -174
  198. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  199. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +620 -610
  200. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  201. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  202. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +627 -626
  203. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  204. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  205. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
  206. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  207. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +0 -4
  208. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  209. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +29 -30
  210. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  211. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  212. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +61 -61
  213. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  214. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  215. package/lib/esm/imodel-components-react/quantityformat/FormatType.js +62 -63
  216. package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  217. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  218. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +82 -83
  219. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  220. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  221. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +106 -110
  222. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  223. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  224. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +157 -158
  225. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  226. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  227. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +122 -122
  228. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  229. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
  230. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  231. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
  232. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  233. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
  234. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  235. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
  236. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  237. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
  238. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  239. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
  240. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  241. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
  242. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  243. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
  244. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  245. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +68 -69
  246. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  247. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  248. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
  249. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  250. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
  251. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +138 -139
  252. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  253. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  254. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
  255. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  256. package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
  257. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  258. package/lib/esm/imodel-components-react/timeline/PlayerButton.js +68 -68
  259. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  260. package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
  261. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  262. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +402 -402
  263. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  264. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
  265. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  266. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  267. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +368 -339
  268. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  269. package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +17 -0
  270. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +174 -174
  271. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  272. package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
  273. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  274. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  275. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +249 -251
  276. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  277. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  278. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +96 -95
  279. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  280. package/lib/esm/imodel-components-react.d.ts +82 -82
  281. package/lib/esm/imodel-components-react.js +87 -87
  282. package/package.json +26 -24
@@ -1,115 +1,115 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Color
7
- */
8
- // cSpell:ignore colorpicker
9
- import * as React from "react";
10
- import classnames from "classnames";
11
- import { ColorByName, ColorDef } from "@itwin/core-common";
12
- import { RelativePosition } from "@itwin/appui-abstract";
13
- import { Icon, Popup, useRefs } from "@itwin/core-react";
14
- // import { ColorPickerPanel } from "./ColorPickerPanel";
15
- import { ColorBuilder, ColorInputPanel, ColorPalette, ColorPicker, ColorValue } from "@itwin/itwinui-react";
16
- import "./ColorPickerPopup.scss";
17
- import { getCSSColorFromDef } from "./getCSSColorFromDef";
18
- import { UiIModelComponents } from "../UiIModelComponents";
19
- import { SvgCaretDownSmall, SvgCaretUpSmall, SvgClose } from "@itwin/itwinui-icons-react";
20
- // Defined using following pattern (const ColorPickerPopup at bottom) to ensure useful API documentation is extracted
21
- const ForwardRefColorPickerPopup = React.forwardRef(function ForwardRefColorPickerPopup(props, ref) {
22
- const target = React.useRef(null);
23
- const refs = useRefs(target, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.
24
- const [showPopup, setShowPopup] = React.useState(false);
25
- const [colorDef, setColorDef] = React.useState(props.initialColor);
26
- const initialColorRef = React.useRef(props.initialColor);
27
- React.useEffect(() => {
28
- if (props.initialColor !== initialColorRef.current) {
29
- initialColorRef.current = props.initialColor;
30
- setColorDef(props.initialColor);
31
- }
32
- }, [props.initialColor]);
33
- const defaultColors = React.useRef([
34
- ColorValue.fromTbgr(ColorByName.red),
35
- ColorValue.fromTbgr(ColorByName.orange),
36
- ColorValue.fromTbgr(ColorByName.yellow),
37
- ColorValue.fromTbgr(ColorByName.green),
38
- ColorValue.fromTbgr(ColorByName.blue),
39
- ColorValue.fromTbgr(ColorByName.mediumBlue),
40
- ColorValue.fromTbgr(ColorByName.indigo),
41
- ColorValue.fromTbgr(ColorByName.violet),
42
- ColorValue.fromTbgr(ColorByName.black),
43
- ColorValue.fromTbgr(ColorByName.white),
44
- ColorValue.fromTbgr(ColorByName.cyan),
45
- ColorValue.fromTbgr(ColorByName.fuchsia),
46
- ColorValue.fromTbgr(ColorByName.tan),
47
- ColorValue.fromTbgr(ColorByName.gray),
48
- ColorValue.fromTbgr(ColorByName.brown),
49
- ColorValue.fromTbgr(ColorByName.purple),
50
- ColorValue.fromTbgr(ColorByName.olive),
51
- ColorValue.fromTbgr(ColorByName.darkGreen),
52
- ]);
53
- // istanbul ignore next
54
- const closePopup = React.useCallback(() => {
55
- props.onClose && props.onClose(colorDef);
56
- setShowPopup(false);
57
- }, [colorDef, props]);
58
- const togglePopup = React.useCallback(() => {
59
- setShowPopup(!showPopup);
60
- }, [showPopup]);
61
- const handleColorChanged = React.useCallback((newColorValue) => {
62
- const newColor = ColorDef.fromTbgr(newColorValue.toTbgr());
63
- // istanbul ignore else
64
- if (!newColor.equals(colorDef)) {
65
- setColorDef(newColor);
66
- // istanbul ignore else
67
- props.onColorChange && props.onColorChange(newColor);
68
- }
69
- }, [colorDef, props]);
70
- const rgbaString = getCSSColorFromDef(colorDef);
71
- const buttonStyle = { ...props.style };
72
- const swatchStyle = { backgroundColor: rgbaString };
73
- const buttonClassNames = classnames("components-colorpicker-popup-button", props.readonly && "readonly", props.className);
74
- const clickHandler = (event) => {
75
- // istanbul ignore else
76
- if (props.captureClicks)
77
- event.stopPropagation();
78
- };
79
- const colorOptions = React.useMemo(() => {
80
- if (props.colorDefs && props.colorDefs.length) {
81
- return props.colorDefs.map((def) => ColorValue.fromTbgr(def.tbgr));
82
- }
83
- if (props.colorDefs && 0 === props.colorDefs.length)
84
- return undefined;
85
- return defaultColors.current;
86
- }, [props.colorDefs]);
87
- const popupPosition = undefined !== props.popupPosition ? props.popupPosition : RelativePosition.BottomLeft;
88
- const [closeLabel] = React.useState(() => UiIModelComponents.translate("color.close"));
89
- const [togglePopupLabel] = React.useState(() => UiIModelComponents.translate("color.toggleColorPopup"));
90
- return (
91
- /* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
92
- React.createElement("div", { onClick: clickHandler },
93
- React.createElement("button", { "data-testid": "components-colorpicker-popup-button", onClick: togglePopup, className: buttonClassNames, style: buttonStyle, disabled: props.disabled, ref: refs, title: togglePopupLabel },
94
- React.createElement("div", { className: "components-colorpicker-button-container" },
95
- React.createElement("div", { className: "components-colorpicker-button-color-swatch", style: swatchStyle, "data-testid": showPopup ? "caret-up" : "caret-down" }),
96
- props.showCaret && React.createElement(Icon, { className: "components-caret", iconSpec: showPopup ? React.createElement(SvgCaretUpSmall, null) : React.createElement(SvgCaretDownSmall, null) }))),
97
- React.createElement(Popup, { className: "components-colorpicker-popup", isOpen: showPopup, position: popupPosition, onClose: closePopup, target: target.current, closeOnNestedPopupOutsideClick: true },
98
- React.createElement("div", { className: "components-colorpicker-popup-panel-padding" },
99
- !props.hideCloseButton &&
100
- React.createElement("button", { title: closeLabel, className: "core-focus-trap-ignore-initial core-dialog-close icon", "data-testid": "core-dialog-close", onClick: togglePopup },
101
- React.createElement(Icon, { iconSpec: React.createElement(SvgClose, null) })),
102
- React.createElement(ColorPicker, { selectedColor: ColorValue.fromTbgr(colorDef.tbgr), onChangeComplete: handleColorChanged },
103
- React.createElement(ColorBuilder, null),
104
- props.colorInputType &&
105
- React.createElement(ColorInputPanel, { defaultColorFormat: props.colorInputType }),
106
- colorOptions &&
107
- React.createElement(ColorPalette, { colors: colorOptions }))))));
108
- });
109
- /**
110
- * ColorPickerButton component that allows user to select a color from a set of color swatches or to define a new color.
111
- * @note Using forwardRef so the ColorEditor (Type Editor) can access the ref of the button element inside this component.
112
- * @public
113
- */
114
- export const ColorPickerPopup = ForwardRefColorPickerPopup;
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Color
7
+ */
8
+ // cSpell:ignore colorpicker
9
+ import * as React from "react";
10
+ import classnames from "classnames";
11
+ import { ColorByName, ColorDef } from "@itwin/core-common";
12
+ import { RelativePosition } from "@itwin/appui-abstract";
13
+ import { Icon, Popup, useRefs } from "@itwin/core-react";
14
+ // import { ColorPickerPanel } from "./ColorPickerPanel";
15
+ import { ColorBuilder, ColorInputPanel, ColorPalette, ColorPicker, ColorValue } from "@itwin/itwinui-react";
16
+ import "./ColorPickerPopup.scss";
17
+ import { getCSSColorFromDef } from "./getCSSColorFromDef";
18
+ import { UiIModelComponents } from "../UiIModelComponents";
19
+ import { SvgCaretDownSmall, SvgCaretUpSmall, SvgClose } from "@itwin/itwinui-icons-react";
20
+ // Defined using following pattern (const ColorPickerPopup at bottom) to ensure useful API documentation is extracted
21
+ const ForwardRefColorPickerPopup = React.forwardRef(function ForwardRefColorPickerPopup(props, ref) {
22
+ const target = React.useRef(null);
23
+ const refs = useRefs(target, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.
24
+ const [showPopup, setShowPopup] = React.useState(false);
25
+ const [colorDef, setColorDef] = React.useState(props.initialColor);
26
+ const initialColorRef = React.useRef(props.initialColor);
27
+ React.useEffect(() => {
28
+ if (props.initialColor !== initialColorRef.current) {
29
+ initialColorRef.current = props.initialColor;
30
+ setColorDef(props.initialColor);
31
+ }
32
+ }, [props.initialColor]);
33
+ const defaultColors = React.useRef([
34
+ ColorValue.fromTbgr(ColorByName.red),
35
+ ColorValue.fromTbgr(ColorByName.orange),
36
+ ColorValue.fromTbgr(ColorByName.yellow),
37
+ ColorValue.fromTbgr(ColorByName.green),
38
+ ColorValue.fromTbgr(ColorByName.blue),
39
+ ColorValue.fromTbgr(ColorByName.mediumBlue),
40
+ ColorValue.fromTbgr(ColorByName.indigo),
41
+ ColorValue.fromTbgr(ColorByName.violet),
42
+ ColorValue.fromTbgr(ColorByName.black),
43
+ ColorValue.fromTbgr(ColorByName.white),
44
+ ColorValue.fromTbgr(ColorByName.cyan),
45
+ ColorValue.fromTbgr(ColorByName.fuchsia),
46
+ ColorValue.fromTbgr(ColorByName.tan),
47
+ ColorValue.fromTbgr(ColorByName.gray),
48
+ ColorValue.fromTbgr(ColorByName.brown),
49
+ ColorValue.fromTbgr(ColorByName.purple),
50
+ ColorValue.fromTbgr(ColorByName.olive),
51
+ ColorValue.fromTbgr(ColorByName.darkGreen),
52
+ ]);
53
+ // istanbul ignore next
54
+ const closePopup = React.useCallback(() => {
55
+ props.onClose && props.onClose(colorDef);
56
+ setShowPopup(false);
57
+ }, [colorDef, props]);
58
+ const togglePopup = React.useCallback(() => {
59
+ setShowPopup(!showPopup);
60
+ }, [showPopup]);
61
+ const handleColorChanged = React.useCallback((newColorValue) => {
62
+ const newColor = ColorDef.fromTbgr(newColorValue.toTbgr());
63
+ // istanbul ignore else
64
+ if (!newColor.equals(colorDef)) {
65
+ setColorDef(newColor);
66
+ // istanbul ignore else
67
+ props.onColorChange && props.onColorChange(newColor);
68
+ }
69
+ }, [colorDef, props]);
70
+ const rgbaString = getCSSColorFromDef(colorDef);
71
+ const buttonStyle = { ...props.style };
72
+ const swatchStyle = { backgroundColor: rgbaString };
73
+ const buttonClassNames = classnames("components-colorpicker-popup-button", props.readonly && "readonly", props.className);
74
+ const clickHandler = (event) => {
75
+ // istanbul ignore else
76
+ if (props.captureClicks)
77
+ event.stopPropagation();
78
+ };
79
+ const colorOptions = React.useMemo(() => {
80
+ if (props.colorDefs && props.colorDefs.length) {
81
+ return props.colorDefs.map((def) => ColorValue.fromTbgr(def.tbgr));
82
+ }
83
+ if (props.colorDefs && 0 === props.colorDefs.length)
84
+ return undefined;
85
+ return defaultColors.current;
86
+ }, [props.colorDefs]);
87
+ const popupPosition = undefined !== props.popupPosition ? props.popupPosition : RelativePosition.BottomLeft;
88
+ const [closeLabel] = React.useState(() => UiIModelComponents.translate("color.close"));
89
+ const [togglePopupLabel] = React.useState(() => UiIModelComponents.translate("color.toggleColorPopup"));
90
+ return (
91
+ /* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
92
+ React.createElement("div", { onClick: clickHandler },
93
+ React.createElement("button", { "data-testid": "components-colorpicker-popup-button", onClick: togglePopup, className: buttonClassNames, style: buttonStyle, disabled: props.disabled, ref: refs, title: togglePopupLabel },
94
+ React.createElement("div", { className: "components-colorpicker-button-container" },
95
+ React.createElement("div", { className: "components-colorpicker-button-color-swatch", style: swatchStyle, "data-testid": showPopup ? "caret-up" : "caret-down" }),
96
+ props.showCaret && React.createElement(Icon, { className: "components-caret", iconSpec: showPopup ? React.createElement(SvgCaretUpSmall, null) : React.createElement(SvgCaretDownSmall, null) }))),
97
+ React.createElement(Popup, { className: "components-colorpicker-popup", isOpen: showPopup, position: popupPosition, onClose: closePopup, target: target.current, closeOnNestedPopupOutsideClick: true },
98
+ React.createElement("div", { className: "components-colorpicker-popup-panel-padding" },
99
+ !props.hideCloseButton &&
100
+ React.createElement("button", { title: closeLabel, className: "core-focus-trap-ignore-initial core-dialog-close icon", "data-testid": "core-dialog-close", onClick: togglePopup },
101
+ React.createElement(Icon, { iconSpec: React.createElement(SvgClose, null) })),
102
+ React.createElement(ColorPicker, { selectedColor: ColorValue.fromTbgr(colorDef.tbgr), onChangeComplete: handleColorChanged },
103
+ React.createElement(ColorBuilder, null),
104
+ props.colorInputType &&
105
+ React.createElement(ColorInputPanel, { defaultColorFormat: props.colorInputType }),
106
+ colorOptions &&
107
+ React.createElement(ColorPalette, { colors: colorOptions }))))));
108
+ });
109
+ /**
110
+ * ColorPickerButton component that allows user to select a color from a set of color swatches or to define a new color.
111
+ * @note Using forwardRef so the ColorEditor (Type Editor) can access the ref of the button element inside this component.
112
+ * @public
113
+ */
114
+ export const ColorPickerPopup = ForwardRefColorPickerPopup;
115
115
  //# sourceMappingURL=ColorPickerPopup.js.map
@@ -1,23 +1,23 @@
1
- /** @packageDocumentation
2
- * @module Color
3
- */
4
- import "./HueSlider.scss";
5
- import * as React from "react";
6
- import { HSVColor } from "@itwin/core-common";
7
- import { CommonProps } from "@itwin/core-react";
8
- /** Properties for the [[HueSlider]] React component
9
- * @beta
10
- */
11
- export interface HueSliderProps extends React.HTMLAttributes<HTMLDivElement>, CommonProps {
12
- /** true if slider is oriented horizontal, else vertical orientation is assumed */
13
- isHorizontal?: boolean;
14
- /** function to run when user hue is changed */
15
- onHueChange?: ((hue: HSVColor) => void) | undefined;
16
- /** HSV Color Value */
17
- hsv: HSVColor;
18
- }
19
- /** HueSlider component used to set the hue value.
20
- * @beta
21
- */
22
- export declare function HueSlider({ isHorizontal, onHueChange, hsv, className, style }: HueSliderProps): JSX.Element;
1
+ /** @packageDocumentation
2
+ * @module Color
3
+ */
4
+ import "./HueSlider.scss";
5
+ import * as React from "react";
6
+ import { HSVColor } from "@itwin/core-common";
7
+ import { CommonProps } from "@itwin/core-react";
8
+ /** Properties for the [[HueSlider]] React component
9
+ * @beta
10
+ */
11
+ export interface HueSliderProps extends React.HTMLAttributes<HTMLDivElement>, CommonProps {
12
+ /** true if slider is oriented horizontal, else vertical orientation is assumed */
13
+ isHorizontal?: boolean;
14
+ /** function to run when user hue is changed */
15
+ onHueChange?: ((hue: HSVColor) => void) | undefined;
16
+ /** HSV Color Value */
17
+ hsv: HSVColor;
18
+ }
19
+ /** HueSlider component used to set the hue value.
20
+ * @beta
21
+ */
22
+ export declare function HueSlider({ isHorizontal, onHueChange, hsv, className, style }: HueSliderProps): JSX.Element;
23
23
  //# sourceMappingURL=HueSlider.d.ts.map
@@ -1,174 +1,174 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Color
7
- */
8
- import "./HueSlider.scss";
9
- import classnames from "classnames";
10
- import * as React from "react";
11
- import { SpecialKey } from "@itwin/appui-abstract";
12
- import { UiIModelComponents } from "../UiIModelComponents";
13
- // hue is a value from 0 to 360
14
- function calculateHue(currentPos, high, isVertical) {
15
- // istanbul ignore next
16
- if (currentPos <= 0) {
17
- return isVertical ? 359 : 0;
18
- }
19
- else if (currentPos >= high) {
20
- return isVertical ? 0 : 359;
21
- }
22
- else {
23
- let percent = ((currentPos * 100) / high);
24
- if (isVertical)
25
- percent = 100 - percent;
26
- return Math.round(((359 * percent) / 100));
27
- }
28
- }
29
- function calculateChange(currentHue, e, isHorizontal, container) {
30
- const { width: containerWidth, height: containerHeight, top: containerTop, left: containerLeft } = container.getBoundingClientRect();
31
- let x;
32
- if ("pageX" in e) {
33
- x = e.pageX;
34
- }
35
- else {
36
- // istanbul ignore if
37
- if (undefined === e.touches || 0 === e.touches.length)
38
- return currentHue;
39
- x = e.touches[0].pageX;
40
- }
41
- // istanbul ignore if
42
- if (undefined === x)
43
- return currentHue;
44
- let y;
45
- if ("pageY" in e) {
46
- y = e.pageY;
47
- }
48
- else {
49
- // istanbul ignore if
50
- if (undefined === e.touches || 0 === e.touches.length)
51
- return currentHue;
52
- y = e.touches[0].pageY;
53
- }
54
- // istanbul ignore if
55
- if (undefined === y)
56
- return currentHue;
57
- const pointerX = x - (containerLeft + window.scrollX);
58
- const pointerY = y - (containerTop + window.scrollY);
59
- if (!isHorizontal) { // vertical
60
- return calculateHue(pointerY, containerHeight, true);
61
- }
62
- else { // horizontal
63
- return calculateHue(pointerX, containerWidth, false);
64
- }
65
- }
66
- /** HueSlider component used to set the hue value.
67
- * @beta
68
- */
69
- export function HueSlider({ isHorizontal, onHueChange, hsv, className, style }) {
70
- const container = React.useRef(null);
71
- const [hueLabel] = React.useState(() => UiIModelComponents.translate("color.hue"));
72
- const isDragging = React.useRef(false);
73
- const onChange = React.useCallback((e) => {
74
- // istanbul ignore else
75
- if (container.current) {
76
- const newHue = calculateChange(hsv.h, e, !!isHorizontal, container.current);
77
- // istanbul ignore else
78
- const newColor = hsv.clone(newHue);
79
- // istanbul ignore else
80
- if (onHueChange)
81
- onHueChange(newColor);
82
- }
83
- }, [isHorizontal, hsv, onHueChange]);
84
- const onDragging = React.useCallback((e) => {
85
- // istanbul ignore else
86
- if (isDragging.current) {
87
- onChange(e);
88
- }
89
- }, [onChange]);
90
- const onMouseUp = React.useCallback(() => {
91
- // istanbul ignore else
92
- if (isDragging.current) {
93
- isDragging.current = false;
94
- }
95
- }, []);
96
- const onTouchEnd = React.useCallback((event) => {
97
- event.preventDefault();
98
- // istanbul ignore else
99
- if (isDragging.current) {
100
- onChange(event);
101
- isDragging.current = false;
102
- }
103
- }, [onChange]);
104
- const onMouseDown = React.useCallback((e) => {
105
- e.preventDefault();
106
- // istanbul ignore else
107
- if (e.target !== e.currentTarget) {
108
- // istanbul ignore else
109
- if (!isDragging.current) {
110
- document.addEventListener("mouseup", onMouseUp, { capture: true, once: true });
111
- isDragging.current = true;
112
- }
113
- }
114
- onChange(e);
115
- // istanbul ignore else
116
- if (container.current)
117
- container.current.focus();
118
- }, [onChange, onMouseUp]);
119
- const onTouchStart = React.useCallback((e) => {
120
- // istanbul ignore else
121
- if (e.target !== e.currentTarget)
122
- isDragging.current = true;
123
- onChange(e);
124
- // istanbul ignore else
125
- if (container.current)
126
- container.current.focus();
127
- }, [onChange]);
128
- const onKeyDown = React.useCallback((evt) => {
129
- let newHue;
130
- const hueValue = hsv.h;
131
- if (evt.key === SpecialKey.ArrowLeft || evt.key === SpecialKey.ArrowDown) {
132
- newHue = hueValue - (evt.ctrlKey ? 10 : 1);
133
- }
134
- else if (evt.key === SpecialKey.ArrowRight || evt.key === SpecialKey.ArrowUp) {
135
- newHue = hueValue + (evt.ctrlKey ? 10 : 1);
136
- }
137
- else if (evt.key === SpecialKey.PageDown) {
138
- newHue = hueValue - (evt.ctrlKey ? 180 : 60);
139
- }
140
- else if (evt.key === SpecialKey.PageUp) {
141
- newHue = hueValue + (evt.ctrlKey ? 180 : 60);
142
- }
143
- else if (evt.key === SpecialKey.Home) {
144
- newHue = 0;
145
- }
146
- else {
147
- // istanbul ignore else
148
- if (evt.key === SpecialKey.End) {
149
- newHue = 359;
150
- }
151
- }
152
- // istanbul ignore else
153
- if (undefined !== newHue) {
154
- // istanbul ignore if
155
- if (newHue > 359)
156
- newHue = 359; // 360 is same as zero
157
- // istanbul ignore if
158
- if (newHue < 0)
159
- newHue = 0;
160
- const newColor = hsv.clone(newHue);
161
- // istanbul ignore else
162
- if (onHueChange)
163
- onHueChange(newColor);
164
- evt.preventDefault();
165
- }
166
- }, [hsv, onHueChange]);
167
- const containerClasses = classnames(isHorizontal ? "components-hue-container-horizontal" : "components-hue-container-vertical", className);
168
- const pointerStyle = isHorizontal ? { left: `${(hsv.h * 100) / 360}%`, backgroundColor: `hsl(${hsv.h} ,100%, 50%)` } :
169
- { left: `0px`, top: `${-((hsv.h * 100) / 360) + 100}%`, backgroundColor: `hsl(${hsv.h} ,100%, 50%)` };
170
- return (React.createElement("div", { className: containerClasses, style: style, "data-testid": "hue-container" },
171
- React.createElement("div", { "data-testid": "hue-slider", role: "slider", "aria-label": hueLabel, "aria-valuemin": 0, "aria-valuemax": 360, "aria-valuenow": hsv.h, className: "components-hue-slider", ref: container, onMouseDown: onMouseDown, onMouseMove: onDragging, onTouchMove: onDragging, onMouseUp: onMouseUp, onTouchStart: onTouchStart, onTouchEnd: onTouchEnd, tabIndex: 0, onKeyDown: onKeyDown },
172
- React.createElement("div", { style: pointerStyle, className: "components-hue-pointer", "data-testid": "hue-pointer" }))));
173
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Color
7
+ */
8
+ import "./HueSlider.scss";
9
+ import classnames from "classnames";
10
+ import * as React from "react";
11
+ import { SpecialKey } from "@itwin/appui-abstract";
12
+ import { UiIModelComponents } from "../UiIModelComponents";
13
+ // hue is a value from 0 to 360
14
+ function calculateHue(currentPos, high, isVertical) {
15
+ // istanbul ignore next
16
+ if (currentPos <= 0) {
17
+ return isVertical ? 359 : 0;
18
+ }
19
+ else if (currentPos >= high) {
20
+ return isVertical ? 0 : 359;
21
+ }
22
+ else {
23
+ let percent = ((currentPos * 100) / high);
24
+ if (isVertical)
25
+ percent = 100 - percent;
26
+ return Math.round(((359 * percent) / 100));
27
+ }
28
+ }
29
+ function calculateChange(currentHue, e, isHorizontal, container) {
30
+ const { width: containerWidth, height: containerHeight, top: containerTop, left: containerLeft } = container.getBoundingClientRect();
31
+ let x;
32
+ if ("pageX" in e) {
33
+ x = e.pageX;
34
+ }
35
+ else {
36
+ // istanbul ignore if
37
+ if (undefined === e.touches || 0 === e.touches.length)
38
+ return currentHue;
39
+ x = e.touches[0].pageX;
40
+ }
41
+ // istanbul ignore if
42
+ if (undefined === x)
43
+ return currentHue;
44
+ let y;
45
+ if ("pageY" in e) {
46
+ y = e.pageY;
47
+ }
48
+ else {
49
+ // istanbul ignore if
50
+ if (undefined === e.touches || 0 === e.touches.length)
51
+ return currentHue;
52
+ y = e.touches[0].pageY;
53
+ }
54
+ // istanbul ignore if
55
+ if (undefined === y)
56
+ return currentHue;
57
+ const pointerX = x - (containerLeft + window.scrollX);
58
+ const pointerY = y - (containerTop + window.scrollY);
59
+ if (!isHorizontal) { // vertical
60
+ return calculateHue(pointerY, containerHeight, true);
61
+ }
62
+ else { // horizontal
63
+ return calculateHue(pointerX, containerWidth, false);
64
+ }
65
+ }
66
+ /** HueSlider component used to set the hue value.
67
+ * @beta
68
+ */
69
+ export function HueSlider({ isHorizontal, onHueChange, hsv, className, style }) {
70
+ const container = React.useRef(null);
71
+ const [hueLabel] = React.useState(() => UiIModelComponents.translate("color.hue"));
72
+ const isDragging = React.useRef(false);
73
+ const onChange = React.useCallback((e) => {
74
+ // istanbul ignore else
75
+ if (container.current) {
76
+ const newHue = calculateChange(hsv.h, e, !!isHorizontal, container.current);
77
+ // istanbul ignore else
78
+ const newColor = hsv.clone(newHue);
79
+ // istanbul ignore else
80
+ if (onHueChange)
81
+ onHueChange(newColor);
82
+ }
83
+ }, [isHorizontal, hsv, onHueChange]);
84
+ const onDragging = React.useCallback((e) => {
85
+ // istanbul ignore else
86
+ if (isDragging.current) {
87
+ onChange(e);
88
+ }
89
+ }, [onChange]);
90
+ const onMouseUp = React.useCallback(() => {
91
+ // istanbul ignore else
92
+ if (isDragging.current) {
93
+ isDragging.current = false;
94
+ }
95
+ }, []);
96
+ const onTouchEnd = React.useCallback((event) => {
97
+ event.preventDefault();
98
+ // istanbul ignore else
99
+ if (isDragging.current) {
100
+ onChange(event);
101
+ isDragging.current = false;
102
+ }
103
+ }, [onChange]);
104
+ const onMouseDown = React.useCallback((e) => {
105
+ e.preventDefault();
106
+ // istanbul ignore else
107
+ if (e.target !== e.currentTarget) {
108
+ // istanbul ignore else
109
+ if (!isDragging.current) {
110
+ document.addEventListener("mouseup", onMouseUp, { capture: true, once: true });
111
+ isDragging.current = true;
112
+ }
113
+ }
114
+ onChange(e);
115
+ // istanbul ignore else
116
+ if (container.current)
117
+ container.current.focus();
118
+ }, [onChange, onMouseUp]);
119
+ const onTouchStart = React.useCallback((e) => {
120
+ // istanbul ignore else
121
+ if (e.target !== e.currentTarget)
122
+ isDragging.current = true;
123
+ onChange(e);
124
+ // istanbul ignore else
125
+ if (container.current)
126
+ container.current.focus();
127
+ }, [onChange]);
128
+ const onKeyDown = React.useCallback((evt) => {
129
+ let newHue;
130
+ const hueValue = hsv.h;
131
+ if (evt.key === SpecialKey.ArrowLeft || evt.key === SpecialKey.ArrowDown) {
132
+ newHue = hueValue - (evt.ctrlKey ? 10 : 1);
133
+ }
134
+ else if (evt.key === SpecialKey.ArrowRight || evt.key === SpecialKey.ArrowUp) {
135
+ newHue = hueValue + (evt.ctrlKey ? 10 : 1);
136
+ }
137
+ else if (evt.key === SpecialKey.PageDown) {
138
+ newHue = hueValue - (evt.ctrlKey ? 180 : 60);
139
+ }
140
+ else if (evt.key === SpecialKey.PageUp) {
141
+ newHue = hueValue + (evt.ctrlKey ? 180 : 60);
142
+ }
143
+ else if (evt.key === SpecialKey.Home) {
144
+ newHue = 0;
145
+ }
146
+ else {
147
+ // istanbul ignore else
148
+ if (evt.key === SpecialKey.End) {
149
+ newHue = 359;
150
+ }
151
+ }
152
+ // istanbul ignore else
153
+ if (undefined !== newHue) {
154
+ // istanbul ignore if
155
+ if (newHue > 359)
156
+ newHue = 359; // 360 is same as zero
157
+ // istanbul ignore if
158
+ if (newHue < 0)
159
+ newHue = 0;
160
+ const newColor = hsv.clone(newHue);
161
+ // istanbul ignore else
162
+ if (onHueChange)
163
+ onHueChange(newColor);
164
+ evt.preventDefault();
165
+ }
166
+ }, [hsv, onHueChange]);
167
+ const containerClasses = classnames(isHorizontal ? "components-hue-container-horizontal" : "components-hue-container-vertical", className);
168
+ const pointerStyle = isHorizontal ? { left: `${(hsv.h * 100) / 360}%`, backgroundColor: `hsl(${hsv.h} ,100%, 50%)` } :
169
+ { left: `0px`, top: `${-((hsv.h * 100) / 360) + 100}%`, backgroundColor: `hsl(${hsv.h} ,100%, 50%)` };
170
+ return (React.createElement("div", { className: containerClasses, style: style, "data-testid": "hue-container" },
171
+ React.createElement("div", { "data-testid": "hue-slider", role: "slider", "aria-label": hueLabel, "aria-valuemin": 0, "aria-valuemax": 360, "aria-valuenow": hsv.h, className: "components-hue-slider", ref: container, onMouseDown: onMouseDown, onMouseMove: onDragging, onTouchMove: onDragging, onMouseUp: onMouseUp, onTouchStart: onTouchStart, onTouchEnd: onTouchEnd, tabIndex: 0, onKeyDown: onKeyDown },
172
+ React.createElement("div", { style: pointerStyle, className: "components-hue-pointer", "data-testid": "hue-pointer" }))));
173
+ }
174
174
  //# sourceMappingURL=HueSlider.js.map