@itwin/imodel-components-react 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +335 -327
- package/LICENSE.md +9 -9
- package/README.md +11 -11
- package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/UiIModelComponents.js +13 -10
- package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js +23 -17
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.scss +71 -63
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +11 -9
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +90 -90
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +6 -8
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +11 -12
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +62 -62
- package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +1 -1
- package/lib/cjs/imodel-components-react/color/HueSlider.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/HueSlider.js +32 -15
- package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/HueSlider.scss +78 -61
- package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +1 -1
- package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js +14 -11
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/SaturationPicker.scss +36 -35
- package/lib/cjs/imodel-components-react/color/Swatch.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/Swatch.js +5 -8
- package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/Swatch.scss +22 -22
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +3 -3
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js +17 -9
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +18 -18
- package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js +8 -6
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +16 -16
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +18 -12
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +36 -22
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +106 -106
- package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js +12 -16
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +48 -48
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +14 -10
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +51 -51
- package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js +31 -11
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/Cube.scss +19 -19
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +103 -49
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -178
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +171 -66
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -135
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +20 -13
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +59 -59
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +4 -7
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +14 -10
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +33 -11
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +16 -10
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +32 -24
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +58 -39
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +8 -7
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +55 -16
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +11 -5
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +39 -12
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +11 -5
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +19 -7
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +21 -8
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +11 -5
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +13 -6
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +22 -12
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +30 -13
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +15 -7
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +11 -9
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +7 -4
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +27 -27
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +3 -3
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +28 -28
- package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +1 -1
- package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js +32 -17
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +105 -105
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +61 -27
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +359 -359
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +4 -5
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.scss +40 -40
- package/lib/cjs/imodel-components-react/timeline/Timeline.scss +165 -165
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +56 -29
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +178 -178
- package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/interfaces.js +3 -3
- package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +2 -2
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +45 -33
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +5 -4
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
- package/lib/cjs/imodel-components-react.js +3 -3
- package/lib/cjs/imodel-components-react.js.map +1 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.js +13 -10
- package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
- package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/AlphaSlider.js +23 -17
- package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
- package/lib/esm/imodel-components-react/color/AlphaSlider.scss +71 -63
- package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js +11 -9
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +90 -90
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +7 -9
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +13 -14
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +62 -62
- package/lib/esm/imodel-components-react/color/HueSlider.d.ts +1 -1
- package/lib/esm/imodel-components-react/color/HueSlider.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/HueSlider.js +32 -15
- package/lib/esm/imodel-components-react/color/HueSlider.js.map +1 -1
- package/lib/esm/imodel-components-react/color/HueSlider.scss +78 -61
- package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +1 -1
- package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/SaturationPicker.js +14 -11
- package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +1 -1
- package/lib/esm/imodel-components-react/color/SaturationPicker.scss +36 -35
- package/lib/esm/imodel-components-react/color/Swatch.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/Swatch.js +5 -8
- package/lib/esm/imodel-components-react/color/Swatch.js.map +1 -1
- package/lib/esm/imodel-components-react/color/Swatch.scss +22 -22
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +3 -3
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
- package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/editors/ColorEditor.js +18 -10
- package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +1 -1
- package/lib/esm/imodel-components-react/editors/ColorEditor.scss +18 -18
- package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/editors/WeightEditor.js +10 -8
- package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +1 -1
- package/lib/esm/imodel-components-react/editors/WeightEditor.scss +16 -16
- package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityInput.js +18 -12
- package/lib/esm/imodel-components-react/inputs/QuantityInput.js.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +38 -24
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +106 -106
- package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/lineweight/Swatch.js +12 -16
- package/lib/esm/imodel-components-react/lineweight/Swatch.js.map +1 -1
- package/lib/esm/imodel-components-react/lineweight/Swatch.scss +48 -48
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +14 -10
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +51 -51
- package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/Cube.js +31 -11
- package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/Cube.scss +19 -19
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +105 -51
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +178 -178
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +173 -68
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +135 -135
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +20 -13
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +59 -59
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +4 -7
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +14 -10
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatType.js +33 -11
- package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +16 -10
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +32 -24
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +58 -39
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +8 -7
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +55 -16
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +11 -5
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +39 -12
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +11 -5
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +19 -7
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +21 -8
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +11 -5
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +13 -6
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +22 -12
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +30 -13
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +16 -8
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +11 -9
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/InlineEdit.js +7 -4
- package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +27 -27
- package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/PlayerButton.js +3 -3
- package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +28 -28
- package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +1 -1
- package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/Scrubber.js +32 -17
- package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/Scrubber.scss +105 -105
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +63 -29
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +359 -359
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +4 -5
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +40 -40
- package/lib/esm/imodel-components-react/timeline/Timeline.scss +165 -165
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +58 -31
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +178 -178
- package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/interfaces.js +3 -3
- package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +2 -2
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +47 -35
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +5 -4
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
- package/lib/esm/imodel-components-react.js +3 -3
- package/lib/esm/imodel-components-react.js.map +1 -1
- package/lib/public/locales/en/UiIModelComponents.json +139 -139
- package/package.json +15 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cube.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/Cube.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,aAAa,CAAC;AAErB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,oBAAY,IAAI;IACd,IAAI,KAAK;IACT,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"Cube.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/Cube.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,aAAa,CAAC;AAErB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,oBAAY,IAAI;IACd,IAAI,KAAK;IACT,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAC7C,WAAW;IACb,KAAK,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC;IAC3C,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;IACtC,MAAM,IAAI,KAAK,CAAC,SAAS;CA0B1C;AAED,gBAAgB;AAChB,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC;IAC5E,SAAS,EAAE,QAAQ,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,gBAAgB;AAChB,qBAAa,QAAS,SAAQ,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;IAC1D,OAAO,CAAC,UAAU,CAAa;IACf,MAAM,IAAI,KAAK,CAAC,SAAS;IAoFzC,OAAO,CAAC,uBAAuB;CAQhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Cube
|
|
7
7
|
*/
|
|
@@ -28,8 +28,14 @@ export var Face;
|
|
|
28
28
|
export class Cube extends React.PureComponent {
|
|
29
29
|
render() {
|
|
30
30
|
const { faces, rotMatrix, className, ...props } = this.props;
|
|
31
|
-
return (React.createElement("div", { className: classnames("components-cube-css3d", className), "data-testid": "components-cube", ...props }, [
|
|
32
|
-
.
|
|
31
|
+
return (React.createElement("div", { className: classnames("components-cube-css3d", className), "data-testid": "components-cube", ...props }, [
|
|
32
|
+
Face.Front,
|
|
33
|
+
Face.Back,
|
|
34
|
+
Face.Right,
|
|
35
|
+
Face.Left,
|
|
36
|
+
Face.Top,
|
|
37
|
+
Face.Bottom,
|
|
38
|
+
].map((face) => {
|
|
33
39
|
const content = faces && faces[face];
|
|
34
40
|
return (React.createElement(CubeFace, { key: face, rotMatrix: rotMatrix, face: face }, content));
|
|
35
41
|
})));
|
|
@@ -76,19 +82,33 @@ export class CubeFace extends React.Component {
|
|
|
76
82
|
const vect = repositioned.multiplyXYZ(0, 0, this._faceWidth);
|
|
77
83
|
const m = repositioned.multiplyMatrixMatrix(reorient);
|
|
78
84
|
const list = [
|
|
79
|
-
m.at(0, 0),
|
|
80
|
-
|
|
81
|
-
m.at(
|
|
82
|
-
|
|
85
|
+
m.at(0, 0),
|
|
86
|
+
-m.at(1, 0),
|
|
87
|
+
m.at(2, 0),
|
|
88
|
+
0,
|
|
89
|
+
m.at(0, 1),
|
|
90
|
+
-m.at(1, 1),
|
|
91
|
+
m.at(2, 1),
|
|
92
|
+
0,
|
|
93
|
+
m.at(0, 2),
|
|
94
|
+
-m.at(1, 2),
|
|
95
|
+
m.at(2, 2),
|
|
96
|
+
0,
|
|
97
|
+
vect.at(0),
|
|
98
|
+
-vect.at(1),
|
|
99
|
+
vect.at(2) -
|
|
100
|
+
this._faceWidth /* move back faceWidth so face is on screen level */,
|
|
101
|
+
1,
|
|
83
102
|
];
|
|
84
103
|
const transform = `matrix3d(${list.join(", ")})`;
|
|
85
104
|
const s = {
|
|
86
105
|
transform,
|
|
87
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
88
106
|
WebkitTransform: transform,
|
|
89
107
|
...style,
|
|
90
108
|
};
|
|
91
|
-
return (React.createElement("div", { style: s, "data-testid": `components-cube-face-${face}`, className: classes, ref: (e) => {
|
|
109
|
+
return (React.createElement("div", { style: s, "data-testid": `components-cube-face-${face}`, className: classes, ref: (e) => {
|
|
110
|
+
this._faceWidth = (e && e.clientWidth / 2) || 0;
|
|
111
|
+
}, ...props }, children));
|
|
92
112
|
}
|
|
93
113
|
getCSSClassNameFromFace(face) {
|
|
94
114
|
let className = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cube.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/Cube.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Cube.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/Cube.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Cube\n */\n\nimport \"./Cube.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Matrix3d } from \"@itwin/core-geometry\";\nimport type { CommonProps } from \"@itwin/core-react\";\n\n/** Cube Face enumeration\n * @public\n */\nexport enum Face {\n None = \"\",\n Left = \"left\",\n Right = \"right\",\n Back = \"back\",\n Front = \"front\",\n Bottom = \"bottom\",\n Top = \"top\",\n}\n\n/** Properties for the [[Cube]] React component\n * @public\n */\nexport interface CubeProps\n extends React.AllHTMLAttributes<HTMLDivElement>,\n CommonProps {\n faces?: { [key: string]: React.ReactNode };\n rotMatrix: Matrix3d;\n}\n\n/** Cube React component used by the 3d Cube Navigation Aid\n * @public\n */\nexport class Cube extends React.PureComponent<CubeProps> {\n public override render(): React.ReactNode {\n const { faces, rotMatrix, className, ...props } = this.props;\n return (\n <div\n className={classnames(\"components-cube-css3d\", className)}\n data-testid=\"components-cube\"\n {...props}\n >\n {[\n Face.Front,\n Face.Back,\n Face.Right,\n Face.Left,\n Face.Top,\n Face.Bottom,\n ].map((face: Face) => {\n const content = faces && faces[face];\n return (\n <CubeFace key={face} rotMatrix={rotMatrix} face={face}>\n {content}\n </CubeFace>\n );\n })}\n </div>\n );\n }\n}\n\n/** @internal */\nexport interface CubeFaceProps extends React.AllHTMLAttributes<HTMLDivElement> {\n rotMatrix: Matrix3d;\n face: Face;\n}\n\n/** @internal */\nexport class CubeFace extends React.Component<CubeFaceProps> {\n private _faceWidth: number = 0;\n public override render(): React.ReactNode {\n const { rotMatrix, face, style, children, ...props } = this.props;\n if (face === Face.None) return null;\n const classes = classnames(\"face\", this.getCSSClassNameFromFace(face));\n // orient face (flip because of y axis reversal, rotate as necessary)\n let reorient: Matrix3d = Matrix3d.createRowValues(\n 1,\n 0,\n 0,\n 0,\n -1,\n 0,\n 0,\n 0,\n 1\n );\n // Position face correctly (applies to rotation, as well as translation)\n let reposition: Matrix3d = Matrix3d.createIdentity();\n switch (this.props.face) {\n case Face.Bottom:\n reposition = Matrix3d.createRowValues(-1, 0, 0, 0, 1, 0, 0, 0, -1);\n reorient = Matrix3d.createRowValues(-1, 0, 0, 0, 1, 0, 0, 0, 1);\n break;\n case Face.Right:\n reposition = Matrix3d.createRowValues(0, 0, 1, 0, 1, 0, -1, 0, 0);\n reorient = Matrix3d.createRowValues(0, 1, 0, 1, 0, 0, 0, 0, 1);\n break;\n case Face.Left:\n reposition = Matrix3d.createRowValues(0, 0, -1, 0, 1, 0, 1, 0, 0);\n reorient = Matrix3d.createRowValues(0, -1, 0, -1, 0, 0, 0, 0, 1);\n break;\n case Face.Back:\n reposition = Matrix3d.createRowValues(1, 0, 0, 0, 0, 1, 0, -1, 0);\n reorient = Matrix3d.createRowValues(-1, 0, 0, 0, 1, 0, 0, 0, 1);\n break;\n case Face.Front:\n reposition = Matrix3d.createRowValues(1, 0, 0, 0, 0, -1, 0, 1, 0);\n reorient = Matrix3d.createRowValues(1, 0, 0, 0, -1, 0, 0, 0, 1);\n break;\n }\n const repositioned = rotMatrix.multiplyMatrixMatrix(reposition);\n const vect = repositioned.multiplyXYZ(0, 0, this._faceWidth);\n const m = repositioned.multiplyMatrixMatrix(reorient);\n const list = [\n m.at(0, 0),\n -m.at(1, 0),\n m.at(2, 0),\n 0,\n m.at(0, 1),\n -m.at(1, 1),\n m.at(2, 1),\n 0,\n m.at(0, 2),\n -m.at(1, 2),\n m.at(2, 2),\n 0,\n vect.at(0),\n -vect.at(1),\n vect.at(2) -\n this._faceWidth /* move back faceWidth so face is on screen level */,\n 1,\n ];\n const transform = `matrix3d(${list.join(\", \")})`;\n const s: React.CSSProperties = {\n transform,\n WebkitTransform: transform,\n ...style,\n };\n\n return (\n <div\n style={s}\n data-testid={`components-cube-face-${face}`}\n className={classes}\n ref={(e) => {\n this._faceWidth = (e && e.clientWidth / 2) || 0;\n }}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n private getCSSClassNameFromFace(face: Face): string {\n let className = \"\";\n\n // istanbul ignore else\n if (face !== Face.None) className = `cube-${face}`;\n\n return className;\n }\n}\n"]}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
$cube-width: 128px;
|
|
6
|
-
$cube-side-width: 12px;
|
|
7
|
-
|
|
8
|
-
.components-cube-css3d {
|
|
9
|
-
width: $cube-width;
|
|
10
|
-
height: $cube-width;
|
|
11
|
-
perspective: 300px;
|
|
12
|
-
transform-style: preserve-3d;
|
|
13
|
-
.face {
|
|
14
|
-
width: 100%;
|
|
15
|
-
height: 100%;
|
|
16
|
-
position: absolute;
|
|
17
|
-
backface-visibility: inherit;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
$cube-width: 128px;
|
|
6
|
+
$cube-side-width: 12px;
|
|
7
|
+
|
|
8
|
+
.components-cube-css3d {
|
|
9
|
+
width: $cube-width;
|
|
10
|
+
height: $cube-width;
|
|
11
|
+
perspective: 300px;
|
|
12
|
+
transform-style: preserve-3d;
|
|
13
|
+
.face {
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
position: absolute;
|
|
17
|
+
backface-visibility: inherit;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeNavigationAid.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/CubeNavigationAid.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,0BAA0B,CAAC;AAElC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,
|
|
1
|
+
{"version":3,"file":"CubeNavigationAid.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/CubeNavigationAid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module NavigationAids
|
|
7
7
|
*/
|
|
8
8
|
import "./CubeNavigationAid.scss";
|
|
9
9
|
import classnames from "classnames";
|
|
10
10
|
import * as React from "react";
|
|
11
|
-
import { Angle, AxisIndex, AxisOrder, Geometry, Matrix3d, Point2d, Vector2d, Vector3d } from "@itwin/core-geometry";
|
|
11
|
+
import { Angle, AxisIndex, AxisOrder, Geometry, Matrix3d, Point2d, Vector2d, Vector3d, } from "@itwin/core-geometry";
|
|
12
12
|
import { IModelApp } from "@itwin/core-frontend";
|
|
13
13
|
import { Icon } from "@itwin/core-react";
|
|
14
14
|
import { UiIModelComponents } from "../UiIModelComponents";
|
|
15
15
|
import { ViewportComponentEvents } from "../viewport/ViewportComponentEvents";
|
|
16
16
|
import { Cube, Face } from "./Cube";
|
|
17
|
-
import { SvgCaretDown, SvgCaretLeft, SvgCaretRight, SvgCaretUp } from "@itwin/itwinui-icons-react";
|
|
17
|
+
import { SvgCaretDown, SvgCaretLeft, SvgCaretRight, SvgCaretUp, } from "@itwin/itwinui-icons-react";
|
|
18
18
|
/** @public */
|
|
19
19
|
export var CubeNavigationHitBoxX;
|
|
20
20
|
(function (CubeNavigationHitBoxX) {
|
|
@@ -54,12 +54,42 @@ const cubeNavigationFaceRotations = {
|
|
|
54
54
|
};
|
|
55
55
|
// data relating Up/Down/Left/Right directions relative to every surface
|
|
56
56
|
const cubeNavigationRoutes = {
|
|
57
|
-
[Face.Front]: {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
[Face.Front]: {
|
|
58
|
+
up: Face.Top,
|
|
59
|
+
down: Face.Bottom,
|
|
60
|
+
left: Face.Left,
|
|
61
|
+
right: Face.Right,
|
|
62
|
+
},
|
|
63
|
+
[Face.Back]: {
|
|
64
|
+
up: Face.Top,
|
|
65
|
+
down: Face.Bottom,
|
|
66
|
+
left: Face.Right,
|
|
67
|
+
right: Face.Left,
|
|
68
|
+
},
|
|
69
|
+
[Face.Top]: {
|
|
70
|
+
up: Face.Back,
|
|
71
|
+
down: Face.Front,
|
|
72
|
+
left: Face.Left,
|
|
73
|
+
right: Face.Right,
|
|
74
|
+
},
|
|
75
|
+
[Face.Bottom]: {
|
|
76
|
+
up: Face.Front,
|
|
77
|
+
down: Face.Back,
|
|
78
|
+
left: Face.Left,
|
|
79
|
+
right: Face.Right,
|
|
80
|
+
},
|
|
81
|
+
[Face.Right]: {
|
|
82
|
+
up: Face.Top,
|
|
83
|
+
down: Face.Bottom,
|
|
84
|
+
left: Face.Front,
|
|
85
|
+
right: Face.Back,
|
|
86
|
+
},
|
|
87
|
+
[Face.Left]: {
|
|
88
|
+
up: Face.Top,
|
|
89
|
+
down: Face.Bottom,
|
|
90
|
+
left: Face.Back,
|
|
91
|
+
right: Face.Front,
|
|
92
|
+
},
|
|
63
93
|
};
|
|
64
94
|
/** The default tolerance (1.0e-6) is appropriate if very dirty viewing operations are expected. */
|
|
65
95
|
const DEFAULT_TOLERANCE = 1.0e-6;
|
|
@@ -102,7 +132,12 @@ class CubeNavigationAid extends React.Component {
|
|
|
102
132
|
if (this.props.viewport === args.viewport && animation >= 1 && !dragging) {
|
|
103
133
|
const newMatrix = this.props.viewport.view.getRotation().clone();
|
|
104
134
|
if (!endRotMatrix.isAlmostEqual(newMatrix)) {
|
|
105
|
-
this.setState({
|
|
135
|
+
this.setState({
|
|
136
|
+
startRotMatrix: newMatrix,
|
|
137
|
+
endRotMatrix: newMatrix,
|
|
138
|
+
animation: 1,
|
|
139
|
+
face: Face.None,
|
|
140
|
+
});
|
|
106
141
|
}
|
|
107
142
|
}
|
|
108
143
|
};
|
|
@@ -111,7 +146,10 @@ class CubeNavigationAid extends React.Component {
|
|
|
111
146
|
const delta = this._lastTime ? t - this._lastTime : 16;
|
|
112
147
|
this._lastTime = t;
|
|
113
148
|
if (this.state.animation !== 1) {
|
|
114
|
-
const animation = Math.min(1, this.state.animation +
|
|
149
|
+
const animation = Math.min(1, this.state.animation +
|
|
150
|
+
delta /
|
|
151
|
+
(1000 *
|
|
152
|
+
(this.props.animationTime || /* istanbul ignore next */ 0.4)));
|
|
115
153
|
// istanbul ignore next
|
|
116
154
|
if (this._mounted) {
|
|
117
155
|
this.setState({ animation }, () => {
|
|
@@ -137,9 +175,8 @@ class CubeNavigationAid extends React.Component {
|
|
|
137
175
|
}
|
|
138
176
|
};
|
|
139
177
|
this._handleCellHoverChange = (vect, state) => {
|
|
140
|
-
var _a, _b;
|
|
141
178
|
if (this._isInteractionLocked()) {
|
|
142
|
-
|
|
179
|
+
this.props.onAnimationEnd?.();
|
|
143
180
|
return;
|
|
144
181
|
}
|
|
145
182
|
const hoverMap = this.state.hoverMap;
|
|
@@ -148,16 +185,16 @@ class CubeNavigationAid extends React.Component {
|
|
|
148
185
|
};
|
|
149
186
|
this._isInteractionLocked = () => {
|
|
150
187
|
// Locked by markup
|
|
151
|
-
if (undefined !== this.props.viewport &&
|
|
188
|
+
if (undefined !== this.props.viewport &&
|
|
189
|
+
this.props.viewport === IModelApp.toolAdmin.markupView) {
|
|
152
190
|
return true;
|
|
153
191
|
}
|
|
154
192
|
return false;
|
|
155
193
|
};
|
|
156
194
|
this._onArrowClick = (arrow) => {
|
|
157
|
-
var _a, _b;
|
|
158
195
|
if (this._isInteractionLocked()) {
|
|
159
196
|
// istanbul ignore next
|
|
160
|
-
|
|
197
|
+
this.props.onAnimationEnd?.();
|
|
161
198
|
return;
|
|
162
199
|
}
|
|
163
200
|
const { newRotation, face } = this.getArrowRotationAndFace(arrow);
|
|
@@ -165,9 +202,8 @@ class CubeNavigationAid extends React.Component {
|
|
|
165
202
|
};
|
|
166
203
|
this._lastClientXY = Vector2d.createZero();
|
|
167
204
|
this._handleBoxMouseDown = (event) => {
|
|
168
|
-
var _a, _b;
|
|
169
205
|
if (this._isInteractionLocked()) {
|
|
170
|
-
|
|
206
|
+
this.props.onAnimationEnd?.();
|
|
171
207
|
return;
|
|
172
208
|
}
|
|
173
209
|
event.preventDefault();
|
|
@@ -192,9 +228,8 @@ class CubeNavigationAid extends React.Component {
|
|
|
192
228
|
};
|
|
193
229
|
// istanbul ignore next - unable to test touch
|
|
194
230
|
this._handleBoxTouchStart = (event) => {
|
|
195
|
-
var _a, _b;
|
|
196
231
|
if (this._isInteractionLocked()) {
|
|
197
|
-
|
|
232
|
+
this.props.onAnimationEnd?.();
|
|
198
233
|
return;
|
|
199
234
|
}
|
|
200
235
|
if (1 !== event.targetTouches.length)
|
|
@@ -223,9 +258,8 @@ class CubeNavigationAid extends React.Component {
|
|
|
223
258
|
window.removeEventListener("touchend", this._onTouchEnd);
|
|
224
259
|
};
|
|
225
260
|
this._handleFaceCellClick = (pos, face) => {
|
|
226
|
-
var _a, _b;
|
|
227
261
|
if (this._isInteractionLocked()) {
|
|
228
|
-
|
|
262
|
+
this.props.onAnimationEnd?.();
|
|
229
263
|
return;
|
|
230
264
|
}
|
|
231
265
|
const { endRotMatrix } = this.state;
|
|
@@ -233,13 +267,14 @@ class CubeNavigationAid extends React.Component {
|
|
|
233
267
|
// istanbul ignore else
|
|
234
268
|
if (rotMatrix) {
|
|
235
269
|
// if isMatrixFace and user is clicking on top/bottom, the current matrix face must be top or bottom
|
|
236
|
-
if (!CubeNavigationAid._isMatrixFace(endRotMatrix) &&
|
|
270
|
+
if (!CubeNavigationAid._isMatrixFace(endRotMatrix) &&
|
|
271
|
+
(face === Face.Top || face === Face.Bottom)) {
|
|
237
272
|
const angleAxis = endRotMatrix.getAxisAndAngleOfRotation();
|
|
238
273
|
// istanbul ignore else
|
|
239
274
|
if (angleAxis.ok) {
|
|
240
275
|
const xAx = endRotMatrix.columnX();
|
|
241
276
|
const a = Math.atan2(xAx.y, xAx.x);
|
|
242
|
-
const r = Math.round(a * 2 / Math.PI) * Math.PI / 2; // round to quarter turn intervals
|
|
277
|
+
const r = (Math.round((a * 2) / Math.PI) * Math.PI) / 2; // round to quarter turn intervals
|
|
243
278
|
const rot = Matrix3d.createRotationAroundAxisIndex(AxisIndex.Z, Angle.createRadians(r));
|
|
244
279
|
rotMatrix = rot.multiplyMatrixMatrix(rotMatrix);
|
|
245
280
|
}
|
|
@@ -254,7 +289,8 @@ class CubeNavigationAid extends React.Component {
|
|
|
254
289
|
// set animation variables, let css transitions animate it.
|
|
255
290
|
this._animationFrame = setTimeout(this._animation, 16.667);
|
|
256
291
|
this.setState((prevState) => ({
|
|
257
|
-
startRotMatrix: prevState.endRotMatrix,
|
|
292
|
+
startRotMatrix: prevState.endRotMatrix,
|
|
293
|
+
endRotMatrix,
|
|
258
294
|
animation: 0,
|
|
259
295
|
face,
|
|
260
296
|
}));
|
|
@@ -277,7 +313,11 @@ class CubeNavigationAid extends React.Component {
|
|
|
277
313
|
// set initial rotation
|
|
278
314
|
if (this.props.viewport) {
|
|
279
315
|
const newMatrix = this.props.viewport.view.getRotation().clone();
|
|
280
|
-
this.setState({
|
|
316
|
+
this.setState({
|
|
317
|
+
startRotMatrix: newMatrix,
|
|
318
|
+
endRotMatrix: newMatrix,
|
|
319
|
+
animation: 1,
|
|
320
|
+
});
|
|
281
321
|
}
|
|
282
322
|
}
|
|
283
323
|
/** @internal */
|
|
@@ -298,8 +338,7 @@ class CubeNavigationAid extends React.Component {
|
|
|
298
338
|
if (this._labels.hasOwnProperty(key)) {
|
|
299
339
|
const f = key;
|
|
300
340
|
const label = this._labels[f];
|
|
301
|
-
faces[f] =
|
|
302
|
-
React.createElement(NavCubeFace, { face: f, label: label, hoverMap: this.state.hoverMap, onFaceCellClick: this._handleFaceCellClick, onFaceCellHoverChange: this._handleCellHoverChange });
|
|
341
|
+
faces[f] = (React.createElement(NavCubeFace, { face: f, label: label, hoverMap: this.state.hoverMap, onFaceCellClick: this._handleFaceCellClick, onFaceCellHoverChange: this._handleCellHoverChange }));
|
|
303
342
|
}
|
|
304
343
|
}
|
|
305
344
|
const cubeClassNames = classnames("nav-cube", this.state.dragging && "cube-dragging");
|
|
@@ -409,7 +448,9 @@ class CubeNavigationAid extends React.Component {
|
|
|
409
448
|
const pitch = Angle.createRadians(diff.y);
|
|
410
449
|
const matX = Matrix3d.createRotationAroundAxisIndex(AxisIndex.X, pitch);
|
|
411
450
|
const matZ = Matrix3d.createRotationAroundAxisIndex(AxisIndex.Z, yaw);
|
|
412
|
-
const mat = matX
|
|
451
|
+
const mat = matX
|
|
452
|
+
.multiplyMatrixMatrix(this.state.startRotMatrix)
|
|
453
|
+
.multiplyMatrixMatrix(matZ);
|
|
413
454
|
this._setRotation(mat, CubeNavigationAid._getMatrixFace(mat));
|
|
414
455
|
if (!this.state.dragging)
|
|
415
456
|
this.setState({ dragging: true });
|
|
@@ -417,7 +458,7 @@ class CubeNavigationAid extends React.Component {
|
|
|
417
458
|
this._lastClientXY = mousePos;
|
|
418
459
|
}
|
|
419
460
|
}
|
|
420
|
-
CubeNavigationAid._animationFn = (t) => t < .5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t;
|
|
461
|
+
CubeNavigationAid._animationFn = (t) => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t;
|
|
421
462
|
CubeNavigationAid._isMatrixFace = (matrix) => {
|
|
422
463
|
let sum = 0;
|
|
423
464
|
for (const coff of matrix.coffs) {
|
|
@@ -438,8 +479,10 @@ CubeNavigationAid._getMatrixFace = (rotMatrix) => {
|
|
|
438
479
|
rotMatrix.coffs[8] === cubeNavigationFaceRotations[Face.Top].coffs[8])
|
|
439
480
|
return Face.Top;
|
|
440
481
|
// istanbul ignore else
|
|
441
|
-
if (rotMatrix.coffs[6] ===
|
|
442
|
-
|
|
482
|
+
if (rotMatrix.coffs[6] ===
|
|
483
|
+
cubeNavigationFaceRotations[Face.Bottom].coffs[6] &&
|
|
484
|
+
rotMatrix.coffs[7] ===
|
|
485
|
+
cubeNavigationFaceRotations[Face.Bottom].coffs[7] &&
|
|
443
486
|
rotMatrix.coffs[8] === cubeNavigationFaceRotations[Face.Bottom].coffs[8])
|
|
444
487
|
return Face.Bottom;
|
|
445
488
|
// istanbul ignore else
|
|
@@ -490,7 +533,9 @@ export { CubeNavigationAid };
|
|
|
490
533
|
class NavCubeFace extends React.Component {
|
|
491
534
|
includeCell(vector) {
|
|
492
535
|
const { x, y, z } = vector;
|
|
493
|
-
const omittedCell = (y === 0 && x !== 0 && z !== 0) ||
|
|
536
|
+
const omittedCell = (y === 0 && x !== 0 && z !== 0) ||
|
|
537
|
+
(y !== 0 && x === 0 && z !== 0) ||
|
|
538
|
+
(y !== 0 && x !== 0 && z === 0);
|
|
494
539
|
return !omittedCell;
|
|
495
540
|
}
|
|
496
541
|
render() {
|
|
@@ -500,8 +545,7 @@ class NavCubeFace extends React.Component {
|
|
|
500
545
|
const vector = NavCubeFace.faceCellToPos(face, x, y);
|
|
501
546
|
if (this.includeCell(vector)) {
|
|
502
547
|
// return a fully functional cell
|
|
503
|
-
return (React.createElement(FaceCell, { key: x, onFaceCellHoverChange: onFaceCellHoverChange, onFaceCellClick: onFaceCellClick, hoverMap: hoverMap, vector: vector, face: face, center: x === 0 }, x === 0 && y === 0 &&
|
|
504
|
-
label));
|
|
548
|
+
return (React.createElement(FaceCell, { key: x, onFaceCellHoverChange: onFaceCellHoverChange, onFaceCellClick: onFaceCellClick, hoverMap: hoverMap, vector: vector, face: face, center: x === 0 }, x === 0 && y === 0 && label));
|
|
505
549
|
}
|
|
506
550
|
else {
|
|
507
551
|
// return a placeholder cell
|
|
@@ -515,9 +559,13 @@ NavCubeFace.faceCellToPos = (face, x, y) => {
|
|
|
515
559
|
const faceVect = cubeNavigationFaceLocs[face];
|
|
516
560
|
const route = cubeNavigationRoutes[face];
|
|
517
561
|
const faceX = x < 0 ? route.left : x > 0 ? route.right : Face.None;
|
|
518
|
-
const xVect = faceX !== Face.None
|
|
562
|
+
const xVect = faceX !== Face.None
|
|
563
|
+
? cubeNavigationFaceLocs[faceX]
|
|
564
|
+
: Vector3d.createZero();
|
|
519
565
|
const faceY = y < 0 ? route.up : y > 0 ? route.down : Face.None;
|
|
520
|
-
const yVect = faceY !== Face.None
|
|
566
|
+
const yVect = faceY !== Face.None
|
|
567
|
+
? cubeNavigationFaceLocs[faceY]
|
|
568
|
+
: Vector3d.createZero();
|
|
521
569
|
return faceVect.plus(xVect).plus(yVect);
|
|
522
570
|
};
|
|
523
571
|
export { NavCubeFace };
|
|
@@ -525,7 +573,7 @@ class FaceRow extends React.Component {
|
|
|
525
573
|
render() {
|
|
526
574
|
const { center, children, ...props } = this.props;
|
|
527
575
|
const classNames = classnames("face-row", center && "cube-center");
|
|
528
|
-
return React.createElement("div", { className: classNames, ...props }, children);
|
|
576
|
+
return (React.createElement("div", { className: classNames, ...props }, children));
|
|
529
577
|
}
|
|
530
578
|
}
|
|
531
579
|
/** @internal */
|
|
@@ -534,11 +582,13 @@ export class FaceCell extends React.Component {
|
|
|
534
582
|
super(...arguments);
|
|
535
583
|
this._handleMouseOver = () => {
|
|
536
584
|
const { vector } = this.props;
|
|
537
|
-
this.props.onFaceCellHoverChange &&
|
|
585
|
+
this.props.onFaceCellHoverChange &&
|
|
586
|
+
this.props.onFaceCellHoverChange(vector, CubeHover.Hover);
|
|
538
587
|
};
|
|
539
588
|
this._handleMouseOut = () => {
|
|
540
589
|
const { vector } = this.props;
|
|
541
|
-
this.props.onFaceCellHoverChange &&
|
|
590
|
+
this.props.onFaceCellHoverChange &&
|
|
591
|
+
this.props.onFaceCellHoverChange(vector, CubeHover.None);
|
|
542
592
|
};
|
|
543
593
|
this._handleMouseDown = (event) => {
|
|
544
594
|
const { clientX, clientY } = event;
|
|
@@ -550,35 +600,39 @@ export class FaceCell extends React.Component {
|
|
|
550
600
|
};
|
|
551
601
|
this._handleTouchStart = (event) => {
|
|
552
602
|
event.preventDefault();
|
|
553
|
-
event.targetTouches.length === 1 &&
|
|
603
|
+
event.targetTouches.length === 1 &&
|
|
604
|
+
this.handlePointerDown(event.targetTouches[0].clientX, event.targetTouches[0].clientY);
|
|
554
605
|
};
|
|
555
606
|
this._handleTouchEnd = (event) => {
|
|
556
607
|
event.preventDefault();
|
|
557
|
-
event.changedTouches.length === 1 &&
|
|
608
|
+
event.changedTouches.length === 1 &&
|
|
609
|
+
this.handlePointerUp(event.changedTouches[0].clientX, event.changedTouches[0].clientY);
|
|
558
610
|
};
|
|
559
611
|
}
|
|
560
612
|
render() {
|
|
561
|
-
const { center, children, onFaceCellClick, onFaceCellHoverChange, hoverMap, face, vector, ...props } = this.props;
|
|
613
|
+
const { center, children, onFaceCellClick, onFaceCellHoverChange, hoverMap, face, vector, ...props } = this.props;
|
|
562
614
|
const { x, y, z } = vector;
|
|
563
615
|
const n = `${x}-${y}-${z}`;
|
|
564
616
|
const hover = hoverMap && hoverMap[n] === CubeHover.Hover;
|
|
565
617
|
const active = hoverMap && hoverMap[n] === CubeHover.Active;
|
|
566
618
|
const classNames = classnames("face-cell", center && "cube-center", hover && "cube-hover", active && "cube-active");
|
|
567
|
-
|
|
568
|
-
return React.createElement("div", { onMouseDown: this._handleMouseDown, onMouseUp: this._handleMouseUp, onMouseOver: this._handleMouseOver, onMouseOut: this._handleMouseOut, onTouchStart: this._handleTouchStart, onTouchEnd: this._handleTouchEnd, "data-testid": `nav-cube-face-cell-${face}-${n}`, className: classNames, role: "presentation", ...props }, children);
|
|
619
|
+
return (React.createElement("div", { onMouseDown: this._handleMouseDown, onMouseUp: this._handleMouseUp, onMouseOver: this._handleMouseOver, onMouseOut: this._handleMouseOut, onTouchStart: this._handleTouchStart, onTouchEnd: this._handleTouchEnd, "data-testid": `nav-cube-face-cell-${face}-${n}`, className: classNames, role: "presentation", ...props }, children));
|
|
569
620
|
}
|
|
570
621
|
handlePointerDown(x, y) {
|
|
571
622
|
const { vector } = this.props;
|
|
572
623
|
this._startMouse = Point2d.create(x, y);
|
|
573
|
-
this.props.onFaceCellHoverChange &&
|
|
624
|
+
this.props.onFaceCellHoverChange &&
|
|
625
|
+
this.props.onFaceCellHoverChange(vector, CubeHover.Active);
|
|
574
626
|
}
|
|
575
627
|
handlePointerUp(x, y) {
|
|
576
628
|
const { vector, face } = this.props;
|
|
577
|
-
this.props.onFaceCellHoverChange &&
|
|
629
|
+
this.props.onFaceCellHoverChange &&
|
|
630
|
+
this.props.onFaceCellHoverChange(vector, CubeHover.None);
|
|
578
631
|
const mouse = Point2d.create(x, y);
|
|
579
632
|
if (this._startMouse && this._startMouse.isAlmostEqual(mouse)) {
|
|
580
633
|
const isFace = Math.abs(vector.x) + Math.abs(vector.y) + Math.abs(vector.z) === 1;
|
|
581
|
-
this.props.onFaceCellClick &&
|
|
634
|
+
this.props.onFaceCellClick &&
|
|
635
|
+
this.props.onFaceCellClick(vector, isFace ? face : Face.None);
|
|
582
636
|
}
|
|
583
637
|
}
|
|
584
638
|
}
|
|
@@ -612,7 +666,7 @@ class PointerButton extends React.Component {
|
|
|
612
666
|
};
|
|
613
667
|
}
|
|
614
668
|
render() {
|
|
615
|
-
const { visible, pointerType, onArrowClick, title, ...props } = this.props;
|
|
669
|
+
const { visible, pointerType, onArrowClick, title, ...props } = this.props;
|
|
616
670
|
const classes = classnames("cube-pointer", "icon", pointerClass[pointerType], visible && "cube-visible");
|
|
617
671
|
return (
|
|
618
672
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|