@itwin/imodel-components-react 4.0.0-dev.11 → 4.0.0-dev.13

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 (354) hide show
  1. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
  2. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
  3. package/lib/cjs/imodel-components-react/UiIModelComponents.js +75 -79
  4. package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
  5. package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  6. package/lib/cjs/imodel-components-react/color/AlphaSlider.js +190 -186
  7. package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
  8. package/lib/cjs/imodel-components-react/color/AlphaSlider.scss +63 -63
  9. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  10. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +112 -108
  11. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  12. package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +90 -90
  13. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  14. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +78 -74
  15. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  16. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  17. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +149 -145
  18. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  19. package/lib/cjs/imodel-components-react/color/ColorPickerPanel.scss +93 -93
  20. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  21. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +143 -139
  22. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  23. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +62 -62
  24. package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
  25. package/lib/cjs/imodel-components-react/color/HueSlider.js +203 -199
  26. package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
  27. package/lib/cjs/imodel-components-react/color/HueSlider.scss +61 -61
  28. package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  29. package/lib/cjs/imodel-components-react/color/SaturationPicker.js +217 -213
  30. package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
  31. package/lib/cjs/imodel-components-react/color/SaturationPicker.scss +35 -35
  32. package/lib/cjs/imodel-components-react/color/Swatch.d.ts +22 -22
  33. package/lib/cjs/imodel-components-react/color/Swatch.js +64 -60
  34. package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
  35. package/lib/cjs/imodel-components-react/color/Swatch.scss +22 -22
  36. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  37. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +23 -23
  38. package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
  39. package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  40. package/lib/cjs/imodel-components-react/editors/ColorEditor.js +155 -151
  41. package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
  42. package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +18 -18
  43. package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  44. package/lib/cjs/imodel-components-react/editors/WeightEditor.js +164 -160
  45. package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
  46. package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +16 -16
  47. package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  48. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +100 -96
  49. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  50. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  51. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  52. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +272 -268
  53. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  54. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +106 -106
  55. package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  56. package/lib/cjs/imodel-components-react/lineweight/Swatch.js +89 -85
  57. package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
  58. package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +48 -48
  59. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  60. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +163 -159
  61. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  62. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +51 -52
  63. package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  64. package/lib/cjs/imodel-components-react/navigationaids/Cube.js +131 -127
  65. package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
  66. package/lib/cjs/imodel-components-react/navigationaids/Cube.scss +19 -19
  67. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -174
  68. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  69. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +650 -638
  70. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  71. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -178
  72. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  73. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +657 -653
  74. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  75. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -135
  76. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  77. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +103 -99
  78. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  79. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +59 -63
  80. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  81. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +56 -53
  82. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  83. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  84. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +88 -84
  85. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  86. package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  87. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +89 -86
  88. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  89. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  90. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +112 -109
  91. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  92. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  93. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +133 -133
  94. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  95. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  96. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +187 -184
  97. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  98. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  99. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +149 -145
  100. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  101. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  102. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +63 -59
  103. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  104. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  105. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +51 -47
  106. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  107. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  108. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +58 -54
  109. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  110. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  111. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +52 -48
  112. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  113. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  114. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +54 -50
  115. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  116. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  117. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +62 -58
  118. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  119. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  120. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +51 -47
  121. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  122. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  123. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +60 -56
  124. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  125. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  126. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +98 -95
  127. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  128. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  129. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +123 -119
  130. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  131. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  132. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +143 -143
  133. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  134. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  135. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
  136. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  137. package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  138. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +85 -81
  139. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  140. package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +26 -26
  141. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  142. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +99 -95
  143. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  144. package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +28 -28
  145. package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  146. package/lib/cjs/imodel-components-react/timeline/Scrubber.js +195 -191
  147. package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
  148. package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +105 -105
  149. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  150. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +432 -428
  151. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  152. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +359 -359
  153. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  154. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +58 -54
  155. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  156. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  157. package/lib/cjs/imodel-components-react/timeline/Timeline.scss +164 -164
  158. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  159. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  160. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +398 -365
  161. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  162. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +178 -161
  163. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +174 -174
  164. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  165. package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
  166. package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
  167. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  168. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  169. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +276 -274
  170. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  171. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  172. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
  173. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  174. package/lib/cjs/imodel-components-react.d.ts +82 -82
  175. package/lib/cjs/imodel-components-react.js +105 -101
  176. package/lib/cjs/imodel-components-react.js.map +1 -1
  177. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
  178. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
  179. package/lib/esm/imodel-components-react/UiIModelComponents.js +72 -75
  180. package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
  181. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  182. package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
  183. package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
  184. package/lib/esm/imodel-components-react/color/AlphaSlider.scss +63 -63
  185. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  186. package/lib/esm/imodel-components-react/color/ColorPickerButton.js +83 -83
  187. package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  188. package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +90 -90
  189. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  190. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
  191. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  192. package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  193. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +122 -122
  194. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  195. package/lib/esm/imodel-components-react/color/ColorPickerPanel.scss +93 -93
  196. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  197. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +114 -114
  198. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  199. package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +62 -62
  200. package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
  201. package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
  202. package/lib/esm/imodel-components-react/color/HueSlider.js.map +1 -1
  203. package/lib/esm/imodel-components-react/color/HueSlider.scss +61 -61
  204. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  205. package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
  206. package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +1 -1
  207. package/lib/esm/imodel-components-react/color/SaturationPicker.scss +35 -35
  208. package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
  209. package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
  210. package/lib/esm/imodel-components-react/color/Swatch.js.map +1 -1
  211. package/lib/esm/imodel-components-react/color/Swatch.scss +22 -22
  212. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  213. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
  214. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
  215. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  216. package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
  217. package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +1 -1
  218. package/lib/esm/imodel-components-react/editors/ColorEditor.scss +18 -18
  219. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  220. package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
  221. package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +1 -1
  222. package/lib/esm/imodel-components-react/editors/WeightEditor.scss +16 -16
  223. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  224. package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
  225. package/lib/esm/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  226. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  227. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
  228. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +243 -243
  229. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  230. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +106 -106
  231. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  232. package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
  233. package/lib/esm/imodel-components-react/lineweight/Swatch.js.map +1 -1
  234. package/lib/esm/imodel-components-react/lineweight/Swatch.scss +48 -48
  235. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  236. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +134 -133
  237. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  238. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +51 -52
  239. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  240. package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
  241. package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +1 -1
  242. package/lib/esm/imodel-components-react/navigationaids/Cube.scss +19 -19
  243. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -174
  244. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
  245. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +620 -610
  246. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  247. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -178
  248. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  249. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +627 -626
  250. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  251. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -135
  252. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  253. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
  254. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  255. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +59 -63
  256. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  257. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +29 -30
  258. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  259. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  260. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +61 -61
  261. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  262. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  263. package/lib/esm/imodel-components-react/quantityformat/FormatType.js +62 -63
  264. package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  265. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  266. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +82 -83
  267. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  268. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  269. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +106 -110
  270. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  271. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  272. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +157 -158
  273. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  274. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  275. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +122 -122
  276. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  277. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  278. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
  279. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  280. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  281. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
  282. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  283. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  284. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
  285. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  286. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  287. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
  288. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  289. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  290. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
  291. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  292. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  293. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
  294. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  295. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  296. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
  297. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  298. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  299. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
  300. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  301. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  302. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +68 -69
  303. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  304. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  305. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
  306. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  307. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  308. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +139 -139
  309. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  310. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  311. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
  312. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  313. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  314. package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
  315. package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  316. package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +26 -26
  317. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  318. package/lib/esm/imodel-components-react/timeline/PlayerButton.js +68 -68
  319. package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  320. package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +28 -28
  321. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  322. package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
  323. package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +1 -1
  324. package/lib/esm/imodel-components-react/timeline/Scrubber.scss +105 -105
  325. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  326. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +402 -402
  327. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  328. package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +359 -359
  329. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  330. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
  331. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  332. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  333. package/lib/esm/imodel-components-react/timeline/Timeline.scss +164 -164
  334. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
  335. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
  336. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +368 -339
  337. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  338. package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +178 -161
  339. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +174 -174
  340. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
  341. package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
  342. package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
  343. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  344. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
  345. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +249 -251
  346. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  347. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  348. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +96 -95
  349. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  350. package/lib/esm/imodel-components-react.d.ts +82 -82
  351. package/lib/esm/imodel-components-react.js +87 -87
  352. package/lib/esm/imodel-components-react.js.map +1 -1
  353. package/lib/public/locales/en/UiIModelComponents.json +139 -139
  354. package/package.json +24 -28
@@ -1,275 +1,277 @@
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 Viewport
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ViewportComponent = void 0;
30
- const React = __importStar(require("react"));
31
- const core_bentley_1 = require("@itwin/core-bentley");
32
- const core_geometry_1 = require("@itwin/core-geometry");
33
- const core_common_1 = require("@itwin/core-common");
34
- const core_frontend_1 = require("@itwin/core-frontend");
35
- const ViewportComponentEvents_1 = require("./ViewportComponentEvents");
36
- /**
37
- * A viewport React component that creates a ScreenViewport.
38
- * @public
39
- */
40
- function ViewportComponent(props) {
41
- const { viewState, imodel, viewDefinitionId, getViewOverlay, viewManagerOverride, tentativePointOverride, onContextMenu, style, className, screenViewportOverride, controlId, viewportRef } = props;
42
- // istanbul ignore next
43
- const viewManagerRef = React.useRef(viewManagerOverride !== null && viewManagerOverride !== void 0 ? viewManagerOverride : core_frontend_1.IModelApp.viewManager);
44
- const tentativePointOverrideRef = React.useRef(tentativePointOverride);
45
- const screenViewportCreated = React.useRef(false);
46
- const viewportDiv = React.useRef(null);
47
- const screenViewportRef = React.useRef(null);
48
- const isMounted = React.useRef(false);
49
- const viewClassFullName = React.useRef("");
50
- const viewId = React.useRef("0");
51
- // istanbul ignore next
52
- const handleViewChanged = (vp) => {
53
- // istanbul ignore next
54
- if (!(vp.iModel.isOpen || vp.iModel.isBlank))
55
- return;
56
- ViewportComponentEvents_1.ViewportComponentEvents.setViewMatrix(vp);
57
- if (viewClassFullName.current !== vp.view.classFullName) {
58
- setTimeout(() => {
59
- ViewportComponentEvents_1.ViewportComponentEvents.onViewClassFullNameChangedEvent.emit({ viewport: vp, oldName: viewClassFullName.current, newName: vp.view.classFullName });
60
- viewClassFullName.current = vp.view.classFullName;
61
- });
62
- }
63
- if (viewId.current !== vp.view.id) {
64
- setTimeout(() => {
65
- ViewportComponentEvents_1.ViewportComponentEvents.onViewIdChangedEvent.emit({ viewport: vp, oldId: viewId.current, newId: vp.view.id });
66
- viewId.current = vp.view.id;
67
- });
68
- }
69
- };
70
- const handleStandardRotationChangeEvent = (args) => {
71
- const viewManager = viewManagerRef.current;
72
- const currentScreenViewport = screenViewportRef.current;
73
- if (currentScreenViewport && viewManager.selectedView === currentScreenViewport) {
74
- currentScreenViewport.view.setRotationAboutPoint(core_frontend_1.ViewState.getStandardViewMatrix(args.standardRotation));
75
- currentScreenViewport.synchWithView();
76
- }
77
- };
78
- const handleDrawingViewportChangeEvent = (args) => {
79
- const viewManager = viewManagerRef.current;
80
- const currentScreenViewport = screenViewportRef.current;
81
- if (currentScreenViewport && viewManager.selectedView === currentScreenViewport) {
82
- currentScreenViewport.view.setOrigin(args.origin);
83
- currentScreenViewport.view.setRotation(args.rotation);
84
- currentScreenViewport.synchWithView({ noSaveInUndo: args.complete !== true });
85
- }
86
- };
87
- const targetPoint = React.useRef(null);
88
- const getRotatePoint = (vp) => {
89
- var _a, _b;
90
- const lastTargetPoint = targetPoint.current;
91
- // istanbul ignore next
92
- const tentativePoint = (_a = tentativePointOverrideRef.current) !== null && _a !== void 0 ? _a : core_frontend_1.IModelApp.tentativePoint;
93
- // istanbul ignore else
94
- if (tentativePoint.isActive)
95
- return tentativePoint.getPoint();
96
- // istanbul ignore else
97
- if (undefined !== vp.viewCmdTargetCenter) {
98
- const testPt = vp.worldToView(vp.viewCmdTargetCenter);
99
- const viewRect = vp.viewRect;
100
- if (viewRect.containsPoint(testPt))
101
- return vp.viewCmdTargetCenter;
102
- vp.viewCmdTargetCenter = undefined;
103
- }
104
- // istanbul ignore else
105
- if (null !== lastTargetPoint) {
106
- const testPt = vp.worldToView(lastTargetPoint);
107
- const viewRect = vp.viewRect.clone();
108
- viewRect.scaleAboutCenter(0.25, 0.25);
109
- // istanbul ignore next hard to reach because of mocks
110
- if (viewRect.containsPoint(testPt))
111
- return lastTargetPoint;
112
- targetPoint.current = null;
113
- }
114
- const visiblePoint = vp.pickNearestVisibleGeometry(vp.npcToWorld(core_common_1.NpcCenter), vp.pixelsFromInches(core_frontend_1.ToolSettings.viewToolPickRadiusInches));
115
- targetPoint.current = (undefined !== visiblePoint ? visiblePoint : vp.view.getTargetPoint());
116
- // istanbul ignore next
117
- return (_b = targetPoint.current) !== null && _b !== void 0 ? _b : vp.view.getCenter();
118
- };
119
- const handleCubeRotationChangeEvent = (args) => {
120
- const viewManager = viewManagerRef.current;
121
- const currentScreenViewport = screenViewportRef.current;
122
- // istanbul ignore else
123
- if (currentScreenViewport && viewManager.selectedView === currentScreenViewport) {
124
- const rotMatrix = args.rotMatrix;
125
- // istanbul ignore else
126
- if (currentScreenViewport.rotation !== rotMatrix) {
127
- const inverse = rotMatrix.transpose(); // rotation is from current nav cube state...
128
- const center = getRotatePoint(currentScreenViewport);
129
- const targetMatrix = inverse.multiplyMatrixMatrix(currentScreenViewport.view.getRotation());
130
- const worldTransform = core_geometry_1.Transform.createFixedPointAndMatrix(center, targetMatrix);
131
- const frustum = currentScreenViewport.getWorldFrustum();
132
- frustum.multiply(worldTransform);
133
- currentScreenViewport.view.setupFromFrustum(frustum);
134
- currentScreenViewport.synchWithView({ noSaveInUndo: !args.complete });
135
- }
136
- }
137
- };
138
- const handleDisconnectFromViewManager = () => {
139
- const screenViewport = screenViewportRef.current;
140
- if (screenViewport) {
141
- const viewManager = core_frontend_1.IModelApp.viewManager;
142
- screenViewport.onViewChanged.removeListener(handleViewChanged);
143
- screenViewportRef.current = null;
144
- screenViewportCreated.current = false;
145
- ViewportComponentEvents_1.ViewportComponentEvents.onDrawingViewportChangeEvent.removeListener(handleDrawingViewportChangeEvent);
146
- ViewportComponentEvents_1.ViewportComponentEvents.onCubeRotationChangeEvent.removeListener(handleCubeRotationChangeEvent);
147
- ViewportComponentEvents_1.ViewportComponentEvents.onStandardRotationChangeEvent.removeListener(handleStandardRotationChangeEvent);
148
- viewManager.dropViewport(screenViewport, true);
149
- }
150
- };
151
- // istanbul ignore next
152
- const handleWindowUnload = () => {
153
- const parentDiv = viewportDiv.current;
154
- if (parentDiv) {
155
- const parentWindow = parentDiv.ownerDocument.defaultView;
156
- if (parentWindow !== window) {
157
- handleDisconnectFromViewManager();
158
- }
159
- }
160
- };
161
- const getScreenViewport = (parentDiv, inViewState) => {
162
- // istanbul ignore next
163
- const screenViewportFactory = screenViewportOverride ? screenViewportOverride : core_frontend_1.ScreenViewport;
164
- const parentWindow = parentDiv.ownerDocument.defaultView;
165
- parentWindow.addEventListener("unload", handleWindowUnload, true); // listener clear after being called
166
- ViewportComponentEvents_1.ViewportComponentEvents.initialize();
167
- ViewportComponentEvents_1.ViewportComponentEvents.onDrawingViewportChangeEvent.addListener(handleDrawingViewportChangeEvent);
168
- ViewportComponentEvents_1.ViewportComponentEvents.onCubeRotationChangeEvent.addListener(handleCubeRotationChangeEvent);
169
- ViewportComponentEvents_1.ViewportComponentEvents.onStandardRotationChangeEvent.addListener(handleStandardRotationChangeEvent);
170
- const screenViewport = screenViewportFactory.create(parentDiv, inViewState);
171
- screenViewportCreated.current = true;
172
- viewClassFullName.current = screenViewport.view.classFullName;
173
- viewId.current = screenViewport.view.id;
174
- screenViewport.onViewChanged.addListener(handleViewChanged);
175
- return screenViewport;
176
- };
177
- React.useEffect(() => {
178
- isMounted.current = true;
179
- core_bentley_1.Logger.logInfo("ViewportComponent", `mounting ViewportComponent for controlId=${controlId}`);
180
- return () => {
181
- isMounted.current = false;
182
- core_bentley_1.Logger.logInfo("ViewportComponent", `un-mounting ViewportComponent for controlId=${controlId}`);
183
- handleDisconnectFromViewManager();
184
- };
185
- // eslint-disable-next-line react-hooks/exhaustive-deps
186
- }, []);
187
- const [initialViewState, setInitialViewState] = React.useState(() => {
188
- if (viewState) {
189
- if (typeof viewState === "function")
190
- return viewState().clone();
191
- else
192
- return viewState.clone();
193
- }
194
- return undefined;
195
- });
196
- React.useEffect(() => {
197
- setInitialViewState(undefined);
198
- }, [viewDefinitionId, viewState]);
199
- React.useEffect(() => {
200
- async function fetchInitialViewstate() {
201
- let currentViewState;
202
- if (viewState) {
203
- if (typeof viewState === "function")
204
- currentViewState = viewState();
205
- else
206
- currentViewState = viewState;
207
- }
208
- else if (viewDefinitionId && imodel) {
209
- try {
210
- currentViewState = await imodel.views.load(viewDefinitionId);
211
- // istanbul ignore next
212
- if (!currentViewState) {
213
- core_bentley_1.Logger.logError("ViewportComponent", `Viewstate failed to load`);
214
- }
215
- }
216
- catch (_e) {
217
- // istanbul ignore next
218
- core_bentley_1.Logger.logError("ViewportComponent", `Viewstate failed to load`);
219
- }
220
- }
221
- else {
222
- core_bentley_1.Logger.logError("ViewportComponent", `A Viewstate or a viewId and imodel must be provided`);
223
- }
224
- // istanbul ignore next
225
- if (isMounted.current && ((currentViewState === null || currentViewState === void 0 ? void 0 : currentViewState.iModel.isOpen) || (currentViewState === null || currentViewState === void 0 ? void 0 : currentViewState.iModel.isBlank))) {
226
- setInitialViewState(currentViewState === null || currentViewState === void 0 ? void 0 : currentViewState.clone());
227
- }
228
- }
229
- if (undefined === initialViewState)
230
- fetchInitialViewstate(); // eslint-disable-line @typescript-eslint/no-floating-promises
231
- }, [imodel, initialViewState, viewDefinitionId, viewState]);
232
- const [viewOverlay, setViewOverlay] = React.useState(null);
233
- // This useEffect connects to ViewManger as soon as initialViewState is available once component is mounted.
234
- React.useEffect(() => {
235
- var _a;
236
- const parentDiv = viewportDiv.current;
237
- const viewManager = viewManagerRef.current;
238
- // istanbul ignore next
239
- if (parentDiv && initialViewState && ((initialViewState === null || initialViewState === void 0 ? void 0 : initialViewState.iModel.isOpen) || (initialViewState === null || initialViewState === void 0 ? void 0 : initialViewState.iModel.isBlank))) {
240
- if (!screenViewportCreated.current) {
241
- const screenViewport = getScreenViewport(parentDiv, initialViewState);
242
- screenViewportRef.current = screenViewport;
243
- if (viewportRef)
244
- viewportRef(screenViewport);
245
- core_bentley_1.Logger.logInfo("ViewportComponent", `processing viewManager.addViewport for controlId=${controlId}`);
246
- viewManager.addViewport(screenViewport);
247
- // overlay component is set up once a ScreenViewport is available. The overlay component must handle any view changes itself.
248
- setViewOverlay(getViewOverlay ? getViewOverlay(screenViewport) : null);
249
- }
250
- else {
251
- // istanbul ignore next
252
- (_a = screenViewportRef.current) === null || _a === void 0 ? void 0 : _a.changeView(initialViewState);
253
- }
254
- }
255
- // eslint-disable-next-line react-hooks/exhaustive-deps
256
- }, [controlId, initialViewState, viewportRef]);
257
- const handleContextMenu = React.useCallback((e) => {
258
- e.preventDefault();
259
- if (onContextMenu)
260
- onContextMenu(e);
261
- }, [onContextMenu]);
262
- const parentDivStyle = {
263
- height: "100%", width: "100%", position: "relative",
264
- };
265
- const viewportDivStyle = {
266
- ...style,
267
- height: "100%", width: "100%",
268
- };
269
- return (React.createElement("div", { style: parentDivStyle, "data-item-id": controlId },
270
- React.createElement(React.Fragment, null,
271
- React.createElement("div", { ref: viewportDiv, "data-testid": "viewport-component", className: className, style: viewportDivStyle, onContextMenu: handleContextMenu }),
272
- viewOverlay)));
273
- }
274
- exports.ViewportComponent = ViewportComponent;
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 Viewport
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
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.ViewportComponent = void 0;
34
+ const React = __importStar(require("react"));
35
+ const core_bentley_1 = require("@itwin/core-bentley");
36
+ const core_geometry_1 = require("@itwin/core-geometry");
37
+ const core_common_1 = require("@itwin/core-common");
38
+ const core_frontend_1 = require("@itwin/core-frontend");
39
+ const ViewportComponentEvents_1 = require("./ViewportComponentEvents");
40
+ /**
41
+ * A viewport React component that creates a ScreenViewport.
42
+ * @public
43
+ */
44
+ function ViewportComponent(props) {
45
+ const { viewState, imodel, viewDefinitionId, getViewOverlay, viewManagerOverride, tentativePointOverride, onContextMenu, style, className, screenViewportOverride, controlId, viewportRef } = props;
46
+ // istanbul ignore next
47
+ const viewManagerRef = React.useRef(viewManagerOverride ?? core_frontend_1.IModelApp.viewManager);
48
+ const tentativePointOverrideRef = React.useRef(tentativePointOverride);
49
+ const screenViewportCreated = React.useRef(false);
50
+ const viewportDiv = React.useRef(null);
51
+ const screenViewportRef = React.useRef(null);
52
+ const isMounted = React.useRef(false);
53
+ const viewClassFullName = React.useRef("");
54
+ const viewId = React.useRef("0");
55
+ // istanbul ignore next
56
+ const handleViewChanged = (vp) => {
57
+ // istanbul ignore next
58
+ if (!(vp.iModel.isOpen || vp.iModel.isBlank))
59
+ return;
60
+ ViewportComponentEvents_1.ViewportComponentEvents.setViewMatrix(vp);
61
+ if (viewClassFullName.current !== vp.view.classFullName) {
62
+ setTimeout(() => {
63
+ ViewportComponentEvents_1.ViewportComponentEvents.onViewClassFullNameChangedEvent.emit({ viewport: vp, oldName: viewClassFullName.current, newName: vp.view.classFullName });
64
+ viewClassFullName.current = vp.view.classFullName;
65
+ });
66
+ }
67
+ if (viewId.current !== vp.view.id) {
68
+ setTimeout(() => {
69
+ ViewportComponentEvents_1.ViewportComponentEvents.onViewIdChangedEvent.emit({ viewport: vp, oldId: viewId.current, newId: vp.view.id });
70
+ viewId.current = vp.view.id;
71
+ });
72
+ }
73
+ };
74
+ const handleStandardRotationChangeEvent = (args) => {
75
+ const viewManager = viewManagerRef.current;
76
+ const currentScreenViewport = screenViewportRef.current;
77
+ if (currentScreenViewport && viewManager.selectedView === currentScreenViewport) {
78
+ currentScreenViewport.view.setRotationAboutPoint(core_frontend_1.ViewState.getStandardViewMatrix(args.standardRotation));
79
+ currentScreenViewport.synchWithView();
80
+ }
81
+ };
82
+ const handleDrawingViewportChangeEvent = (args) => {
83
+ const viewManager = viewManagerRef.current;
84
+ const currentScreenViewport = screenViewportRef.current;
85
+ if (currentScreenViewport && viewManager.selectedView === currentScreenViewport) {
86
+ currentScreenViewport.view.setOrigin(args.origin);
87
+ currentScreenViewport.view.setRotation(args.rotation);
88
+ currentScreenViewport.synchWithView({ noSaveInUndo: args.complete !== true });
89
+ }
90
+ };
91
+ const targetPoint = React.useRef(null);
92
+ const getRotatePoint = (vp) => {
93
+ const lastTargetPoint = targetPoint.current;
94
+ // istanbul ignore next
95
+ const tentativePoint = tentativePointOverrideRef.current ?? core_frontend_1.IModelApp.tentativePoint;
96
+ // istanbul ignore else
97
+ if (tentativePoint.isActive)
98
+ return tentativePoint.getPoint();
99
+ // istanbul ignore else
100
+ if (undefined !== vp.viewCmdTargetCenter) {
101
+ const testPt = vp.worldToView(vp.viewCmdTargetCenter);
102
+ const viewRect = vp.viewRect;
103
+ if (viewRect.containsPoint(testPt))
104
+ return vp.viewCmdTargetCenter;
105
+ vp.viewCmdTargetCenter = undefined;
106
+ }
107
+ // istanbul ignore else
108
+ if (null !== lastTargetPoint) {
109
+ const testPt = vp.worldToView(lastTargetPoint);
110
+ const viewRect = vp.viewRect.clone();
111
+ viewRect.scaleAboutCenter(0.25, 0.25);
112
+ // istanbul ignore next hard to reach because of mocks
113
+ if (viewRect.containsPoint(testPt))
114
+ return lastTargetPoint;
115
+ targetPoint.current = null;
116
+ }
117
+ const visiblePoint = vp.pickNearestVisibleGeometry(vp.npcToWorld(core_common_1.NpcCenter), vp.pixelsFromInches(core_frontend_1.ToolSettings.viewToolPickRadiusInches));
118
+ targetPoint.current = (undefined !== visiblePoint ? visiblePoint : vp.view.getTargetPoint());
119
+ // istanbul ignore next
120
+ return targetPoint.current ?? vp.view.getCenter();
121
+ };
122
+ const handleCubeRotationChangeEvent = (args) => {
123
+ const viewManager = viewManagerRef.current;
124
+ const currentScreenViewport = screenViewportRef.current;
125
+ // istanbul ignore else
126
+ if (currentScreenViewport && viewManager.selectedView === currentScreenViewport) {
127
+ const rotMatrix = args.rotMatrix;
128
+ // istanbul ignore else
129
+ if (currentScreenViewport.rotation !== rotMatrix) {
130
+ const inverse = rotMatrix.transpose(); // rotation is from current nav cube state...
131
+ const center = getRotatePoint(currentScreenViewport);
132
+ const targetMatrix = inverse.multiplyMatrixMatrix(currentScreenViewport.view.getRotation());
133
+ const worldTransform = core_geometry_1.Transform.createFixedPointAndMatrix(center, targetMatrix);
134
+ const frustum = currentScreenViewport.getWorldFrustum();
135
+ frustum.multiply(worldTransform);
136
+ currentScreenViewport.view.setupFromFrustum(frustum);
137
+ currentScreenViewport.synchWithView({ noSaveInUndo: !args.complete });
138
+ }
139
+ }
140
+ };
141
+ const handleDisconnectFromViewManager = () => {
142
+ const screenViewport = screenViewportRef.current;
143
+ if (screenViewport) {
144
+ const viewManager = core_frontend_1.IModelApp.viewManager;
145
+ screenViewport.onViewChanged.removeListener(handleViewChanged);
146
+ screenViewportRef.current = null;
147
+ screenViewportCreated.current = false;
148
+ ViewportComponentEvents_1.ViewportComponentEvents.onDrawingViewportChangeEvent.removeListener(handleDrawingViewportChangeEvent);
149
+ ViewportComponentEvents_1.ViewportComponentEvents.onCubeRotationChangeEvent.removeListener(handleCubeRotationChangeEvent);
150
+ ViewportComponentEvents_1.ViewportComponentEvents.onStandardRotationChangeEvent.removeListener(handleStandardRotationChangeEvent);
151
+ viewManager.dropViewport(screenViewport, true);
152
+ }
153
+ };
154
+ // istanbul ignore next
155
+ const handleWindowUnload = () => {
156
+ const parentDiv = viewportDiv.current;
157
+ if (parentDiv) {
158
+ const parentWindow = parentDiv.ownerDocument.defaultView;
159
+ if (parentWindow !== window) {
160
+ handleDisconnectFromViewManager();
161
+ }
162
+ }
163
+ };
164
+ const getScreenViewport = (parentDiv, inViewState) => {
165
+ // istanbul ignore next
166
+ const screenViewportFactory = screenViewportOverride ? screenViewportOverride : core_frontend_1.ScreenViewport;
167
+ const parentWindow = parentDiv.ownerDocument.defaultView;
168
+ parentWindow.addEventListener("unload", handleWindowUnload, true); // listener clear after being called
169
+ ViewportComponentEvents_1.ViewportComponentEvents.initialize();
170
+ ViewportComponentEvents_1.ViewportComponentEvents.onDrawingViewportChangeEvent.addListener(handleDrawingViewportChangeEvent);
171
+ ViewportComponentEvents_1.ViewportComponentEvents.onCubeRotationChangeEvent.addListener(handleCubeRotationChangeEvent);
172
+ ViewportComponentEvents_1.ViewportComponentEvents.onStandardRotationChangeEvent.addListener(handleStandardRotationChangeEvent);
173
+ const screenViewport = screenViewportFactory.create(parentDiv, inViewState);
174
+ screenViewportCreated.current = true;
175
+ viewClassFullName.current = screenViewport.view.classFullName;
176
+ viewId.current = screenViewport.view.id;
177
+ screenViewport.onViewChanged.addListener(handleViewChanged);
178
+ return screenViewport;
179
+ };
180
+ React.useEffect(() => {
181
+ isMounted.current = true;
182
+ core_bentley_1.Logger.logInfo("ViewportComponent", `mounting ViewportComponent for controlId=${controlId}`);
183
+ return () => {
184
+ isMounted.current = false;
185
+ core_bentley_1.Logger.logInfo("ViewportComponent", `un-mounting ViewportComponent for controlId=${controlId}`);
186
+ handleDisconnectFromViewManager();
187
+ };
188
+ // eslint-disable-next-line react-hooks/exhaustive-deps
189
+ }, []);
190
+ const [initialViewState, setInitialViewState] = React.useState(() => {
191
+ if (viewState) {
192
+ if (typeof viewState === "function")
193
+ return viewState().clone();
194
+ else
195
+ return viewState.clone();
196
+ }
197
+ return undefined;
198
+ });
199
+ React.useEffect(() => {
200
+ setInitialViewState(undefined);
201
+ }, [viewDefinitionId, viewState]);
202
+ React.useEffect(() => {
203
+ async function fetchInitialViewstate() {
204
+ let currentViewState;
205
+ if (viewState) {
206
+ if (typeof viewState === "function")
207
+ currentViewState = viewState();
208
+ else
209
+ currentViewState = viewState;
210
+ }
211
+ else if (viewDefinitionId && imodel) {
212
+ try {
213
+ currentViewState = await imodel.views.load(viewDefinitionId);
214
+ // istanbul ignore next
215
+ if (!currentViewState) {
216
+ core_bentley_1.Logger.logError("ViewportComponent", `Viewstate failed to load`);
217
+ }
218
+ }
219
+ catch (_e) {
220
+ // istanbul ignore next
221
+ core_bentley_1.Logger.logError("ViewportComponent", `Viewstate failed to load`);
222
+ }
223
+ }
224
+ else {
225
+ core_bentley_1.Logger.logError("ViewportComponent", `A Viewstate or a viewId and imodel must be provided`);
226
+ }
227
+ // istanbul ignore next
228
+ if (isMounted.current && (currentViewState?.iModel.isOpen || currentViewState?.iModel.isBlank)) {
229
+ setInitialViewState(currentViewState?.clone());
230
+ }
231
+ }
232
+ if (undefined === initialViewState)
233
+ fetchInitialViewstate(); // eslint-disable-line @typescript-eslint/no-floating-promises
234
+ }, [imodel, initialViewState, viewDefinitionId, viewState]);
235
+ const [viewOverlay, setViewOverlay] = React.useState(null);
236
+ // This useEffect connects to ViewManger as soon as initialViewState is available once component is mounted.
237
+ React.useEffect(() => {
238
+ const parentDiv = viewportDiv.current;
239
+ const viewManager = viewManagerRef.current;
240
+ // istanbul ignore next
241
+ if (parentDiv && initialViewState && (initialViewState?.iModel.isOpen || initialViewState?.iModel.isBlank)) {
242
+ if (!screenViewportCreated.current) {
243
+ const screenViewport = getScreenViewport(parentDiv, initialViewState);
244
+ screenViewportRef.current = screenViewport;
245
+ if (viewportRef)
246
+ viewportRef(screenViewport);
247
+ core_bentley_1.Logger.logInfo("ViewportComponent", `processing viewManager.addViewport for controlId=${controlId}`);
248
+ viewManager.addViewport(screenViewport);
249
+ // overlay component is set up once a ScreenViewport is available. The overlay component must handle any view changes itself.
250
+ setViewOverlay(getViewOverlay ? getViewOverlay(screenViewport) : null);
251
+ }
252
+ else {
253
+ // istanbul ignore next
254
+ screenViewportRef.current?.changeView(initialViewState);
255
+ }
256
+ }
257
+ // eslint-disable-next-line react-hooks/exhaustive-deps
258
+ }, [controlId, initialViewState, viewportRef]);
259
+ const handleContextMenu = React.useCallback((e) => {
260
+ e.preventDefault();
261
+ if (onContextMenu)
262
+ onContextMenu(e);
263
+ }, [onContextMenu]);
264
+ const parentDivStyle = {
265
+ height: "100%", width: "100%", position: "relative",
266
+ };
267
+ const viewportDivStyle = {
268
+ ...style,
269
+ height: "100%", width: "100%",
270
+ };
271
+ return (React.createElement("div", { style: parentDivStyle, "data-item-id": controlId },
272
+ React.createElement(React.Fragment, null,
273
+ React.createElement("div", { ref: viewportDiv, "data-testid": "viewport-component", className: className, style: viewportDivStyle, onContextMenu: handleContextMenu }),
274
+ viewOverlay)));
275
+ }
276
+ exports.ViewportComponent = ViewportComponent;
275
277
  //# sourceMappingURL=ViewportComponent.js.map