@itwin/imodel-components-react 3.6.0-dev.8 → 4.0.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/CHANGELOG.md +1 -66
  2. package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
  3. package/lib/cjs/imodel-components-react/UiIModelComponents.js +79 -79
  4. package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
  5. package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  6. package/lib/cjs/imodel-components-react/color/AlphaSlider.js +186 -186
  7. package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
  8. package/lib/cjs/imodel-components-react/color/AlphaSlider.scss +63 -63
  9. package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  10. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +107 -107
  11. package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  12. package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +90 -92
  13. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  14. package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +74 -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 +145 -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 +137 -137
  22. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  23. package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +63 -64
  24. package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
  25. package/lib/cjs/imodel-components-react/color/HueSlider.js +199 -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 +213 -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 +60 -60
  34. package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
  35. package/lib/cjs/imodel-components-react/color/Swatch.scss +23 -24
  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 +151 -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 -19
  43. package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  44. package/lib/cjs/imodel-components-react/editors/WeightEditor.js +160 -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 -17
  47. package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  48. package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +96 -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.js +265 -265
  52. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  53. package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +107 -107
  54. package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  55. package/lib/cjs/imodel-components-react/lineweight/Swatch.js +85 -85
  56. package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
  57. package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +48 -49
  58. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  59. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +159 -159
  60. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  61. package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +52 -53
  62. package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  63. package/lib/cjs/imodel-components-react/navigationaids/Cube.js +127 -127
  64. package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
  65. package/lib/cjs/imodel-components-react/navigationaids/Cube.scss +19 -19
  66. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +174 -174
  67. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +634 -634
  68. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  69. package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +182 -181
  70. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  71. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +647 -647
  72. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  73. package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +134 -134
  74. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  75. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +99 -99
  76. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  77. package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +63 -65
  78. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  79. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +53 -53
  80. package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  81. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  82. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +83 -83
  83. package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  84. package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  85. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +86 -86
  86. package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  87. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  88. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +109 -109
  89. package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  90. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  91. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +133 -133
  92. package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  93. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  94. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +184 -184
  95. package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  96. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  97. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +1 -1
  98. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +145 -154
  99. package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  100. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  101. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +59 -59
  102. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  103. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  104. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +47 -47
  105. package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  106. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  107. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +54 -54
  108. package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  109. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  110. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +48 -48
  111. package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  112. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  113. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +50 -50
  114. package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  115. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  116. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +58 -58
  117. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  118. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  119. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +47 -47
  120. package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  121. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  122. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +56 -56
  123. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  124. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  125. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +95 -95
  126. package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  127. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  128. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +119 -119
  129. package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  130. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  131. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +143 -143
  132. package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  133. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  134. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
  135. package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  136. package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  137. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +81 -81
  138. package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  139. package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +26 -26
  140. package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  141. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +91 -91
  142. package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  143. package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +31 -26
  144. package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  145. package/lib/cjs/imodel-components-react/timeline/Scrubber.js +191 -191
  146. package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
  147. package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +112 -107
  148. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  149. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +424 -424
  150. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  151. package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +356 -358
  152. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  153. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +54 -54
  154. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  155. package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  156. package/lib/cjs/imodel-components-react/timeline/Timeline.scss +164 -164
  157. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +133 -133
  158. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +358 -358
  159. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  160. package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +164 -164
  161. package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +174 -174
  162. package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
  163. package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
  164. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  165. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +274 -274
  166. package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  167. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  168. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
  169. package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  170. package/lib/cjs/imodel-components-react.d.ts +82 -82
  171. package/lib/cjs/imodel-components-react.js +101 -101
  172. package/lib/cjs/imodel-components-react.js.map +1 -1
  173. package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
  174. package/lib/esm/imodel-components-react/UiIModelComponents.js +75 -75
  175. package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
  176. package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
  177. package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
  178. package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
  179. package/lib/esm/imodel-components-react/color/AlphaSlider.scss +63 -63
  180. package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
  181. package/lib/esm/imodel-components-react/color/ColorPickerButton.js +82 -82
  182. package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
  183. package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +90 -92
  184. package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
  185. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
  186. package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
  187. package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
  188. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +122 -122
  189. package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
  190. package/lib/esm/imodel-components-react/color/ColorPickerPanel.scss +93 -93
  191. package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
  192. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +112 -112
  193. package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
  194. package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +63 -64
  195. package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
  196. package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
  197. package/lib/esm/imodel-components-react/color/HueSlider.js.map +1 -1
  198. package/lib/esm/imodel-components-react/color/HueSlider.scss +61 -61
  199. package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
  200. package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
  201. package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +1 -1
  202. package/lib/esm/imodel-components-react/color/SaturationPicker.scss +35 -35
  203. package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
  204. package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
  205. package/lib/esm/imodel-components-react/color/Swatch.js.map +1 -1
  206. package/lib/esm/imodel-components-react/color/Swatch.scss +23 -24
  207. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
  208. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
  209. package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
  210. package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
  211. package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
  212. package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +1 -1
  213. package/lib/esm/imodel-components-react/editors/ColorEditor.scss +18 -19
  214. package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
  215. package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
  216. package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +1 -1
  217. package/lib/esm/imodel-components-react/editors/WeightEditor.scss +16 -17
  218. package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
  219. package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
  220. package/lib/esm/imodel-components-react/inputs/QuantityInput.js.map +1 -1
  221. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
  222. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +240 -240
  223. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
  224. package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +107 -107
  225. package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
  226. package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
  227. package/lib/esm/imodel-components-react/lineweight/Swatch.js.map +1 -1
  228. package/lib/esm/imodel-components-react/lineweight/Swatch.scss +48 -49
  229. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
  230. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +133 -133
  231. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
  232. package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +52 -53
  233. package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
  234. package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
  235. package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +1 -1
  236. package/lib/esm/imodel-components-react/navigationaids/Cube.scss +19 -19
  237. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +174 -174
  238. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +606 -606
  239. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
  240. package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +182 -181
  241. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
  242. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +620 -620
  243. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
  244. package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +134 -134
  245. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
  246. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
  247. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
  248. package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +63 -65
  249. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
  250. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +30 -30
  251. package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
  252. package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
  253. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +60 -60
  254. package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
  255. package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
  256. package/lib/esm/imodel-components-react/quantityformat/FormatType.js +63 -63
  257. package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
  258. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
  259. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +83 -83
  260. package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
  261. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
  262. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +110 -110
  263. package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
  264. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
  265. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +158 -158
  266. package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
  267. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
  268. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +1 -1
  269. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +122 -131
  270. package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
  271. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
  272. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
  273. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
  274. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
  275. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
  276. package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
  277. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
  278. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
  279. package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
  280. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
  281. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
  282. package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
  283. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
  284. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
  285. package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
  286. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
  287. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
  288. package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
  289. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
  290. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
  291. package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
  292. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
  293. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
  294. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
  295. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
  296. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +69 -69
  297. package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
  298. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
  299. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
  300. package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
  301. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
  302. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +139 -139
  303. package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
  304. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
  305. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
  306. package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
  307. package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
  308. package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
  309. package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +1 -1
  310. package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +26 -26
  311. package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
  312. package/lib/esm/imodel-components-react/timeline/PlayerButton.js +64 -64
  313. package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
  314. package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +31 -26
  315. package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
  316. package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
  317. package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +1 -1
  318. package/lib/esm/imodel-components-react/timeline/Scrubber.scss +112 -107
  319. package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
  320. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +398 -398
  321. package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
  322. package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +356 -358
  323. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
  324. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
  325. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
  326. package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
  327. package/lib/esm/imodel-components-react/timeline/Timeline.scss +164 -164
  328. package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +133 -133
  329. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +332 -332
  330. package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
  331. package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +164 -164
  332. package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +174 -174
  333. package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
  334. package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
  335. package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
  336. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +251 -251
  337. package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
  338. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
  339. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +95 -95
  340. package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
  341. package/lib/esm/imodel-components-react.d.ts +82 -82
  342. package/lib/esm/imodel-components-react.js +87 -87
  343. package/lib/esm/imodel-components-react.js.map +1 -1
  344. package/lib/public/locales/en/UiIModelComponents.json +139 -139
  345. package/package.json +25 -33
@@ -1,275 +1,275 @@
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
+ 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;
275
275
  //# sourceMappingURL=ViewportComponent.js.map