@itwin/imodel-components-react 4.0.0-dev.9 → 4.0.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 +156 -1
- package/README.md +2 -2
- package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
- package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/UiIModelComponents.js +77 -79
- package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js +190 -186
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +112 -107
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +4 -4
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +78 -74
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +143 -137
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +4 -5
- package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
- package/lib/cjs/imodel-components-react/color/HueSlider.js +203 -199
- package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +20 -20
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js +217 -213
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/Swatch.d.ts +22 -22
- package/lib/cjs/imodel-components-react/color/Swatch.js +64 -60
- package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/Swatch.scss +1 -2
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +23 -23
- package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts +44 -44
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js +155 -151
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +1 -1
- package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js +164 -160
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +100 -96
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +272 -265
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +6 -7
- package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js +89 -85
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +1 -1
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +163 -159
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +7 -8
- package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js +131 -127
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +154 -174
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +631 -634
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +13 -17
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +657 -647
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +4 -3
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +103 -99
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +2 -6
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +57 -53
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +88 -83
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +90 -86
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +113 -109
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +137 -133
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +188 -184
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +149 -145
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +63 -59
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +51 -47
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +58 -54
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +52 -48
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +54 -50
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +62 -58
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +51 -47
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +60 -56
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +99 -95
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +123 -119
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +142 -143
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +85 -81
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +2 -2
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +99 -91
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +9 -12
- package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js +195 -191
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +8 -15
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +432 -424
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +27 -24
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +58 -54
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +398 -358
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +25 -11
- package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +145 -174
- package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
- package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +278 -274
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
- package/lib/cjs/imodel-components-react.d.ts +81 -82
- package/lib/cjs/imodel-components-react.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react.js +104 -101
- package/lib/cjs/imodel-components-react.js.map +1 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
- package/lib/esm/imodel-components-react/UiIModelComponents.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.js +74 -75
- package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
- package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
- package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
- package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
- package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js +83 -82
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +4 -4
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +114 -112
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +4 -5
- package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
- package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
- package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
- package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
- package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
- package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
- package/lib/esm/imodel-components-react/color/Swatch.scss +1 -2
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
- package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
- package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
- package/lib/esm/imodel-components-react/editors/ColorEditor.scss +1 -1
- package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
- package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
- package/lib/esm/imodel-components-react/editors/WeightEditor.scss +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
- package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +243 -240
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +6 -7
- package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
- package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
- package/lib/esm/imodel-components-react/lineweight/Swatch.scss +1 -1
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +134 -133
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +7 -8
- package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
- package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +154 -174
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +601 -606
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +13 -17
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +627 -620
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +4 -3
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +2 -6
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +30 -30
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +61 -60
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatType.js +63 -63
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +83 -83
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +110 -110
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +158 -158
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +122 -122
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +69 -69
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +138 -139
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
- package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
- package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
- package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +2 -2
- package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
- package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/PlayerButton.js +68 -64
- package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +9 -12
- package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
- package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
- package/lib/esm/imodel-components-react/timeline/Scrubber.scss +8 -15
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +402 -398
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +27 -24
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +130 -133
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +368 -332
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +25 -11
- package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +145 -174
- package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
- package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +251 -251
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +96 -95
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
- package/lib/esm/imodel-components-react.d.ts +81 -82
- package/lib/esm/imodel-components-react.d.ts.map +1 -1
- package/lib/esm/imodel-components-react.js +86 -87
- package/lib/esm/imodel-components-react.js.map +1 -1
- package/package.json +35 -37
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts +0 -22
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +0 -146
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.scss +0 -94
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +0 -22
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +0 -123
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.scss +0 -94
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import "./Scrubber.scss";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { CommonProps } from "@itwin/core-react";
|
|
4
|
-
import { TimelineDateMarkerProps } from "./TimelineComponent";
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export declare function getPercentageOfRectangle(rect: DOMRect, pointer: number): number;
|
|
9
|
-
/**
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export declare function RailMarkers({ showToolTip, percent, tooltipText, markDate }: {
|
|
13
|
-
showToolTip: boolean;
|
|
14
|
-
percent: number;
|
|
15
|
-
tooltipText: string;
|
|
16
|
-
markDate?: DateMarkerProps;
|
|
17
|
-
}): JSX.Element;
|
|
18
|
-
/**
|
|
19
|
-
* Custom Timeline Thumb
|
|
20
|
-
* @internal
|
|
21
|
-
*/
|
|
22
|
-
export declare function CustomThumb(): JSX.Element;
|
|
23
|
-
/**
|
|
24
|
-
* @internal
|
|
25
|
-
*/
|
|
26
|
-
export declare function useFocusedThumb(sliderContainer: HTMLDivElement | undefined): boolean;
|
|
27
|
-
/** Properties for Scrubber/Slider used on timeline control
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
export interface ScrubberProps extends CommonProps {
|
|
31
|
-
currentDuration: number;
|
|
32
|
-
totalDuration: number;
|
|
33
|
-
isPlaying: boolean;
|
|
34
|
-
inMiniMode: boolean;
|
|
35
|
-
startDate?: Date;
|
|
36
|
-
endDate?: Date;
|
|
37
|
-
showTime?: boolean;
|
|
38
|
-
onChange?: (values: ReadonlyArray<number>) => void;
|
|
39
|
-
onUpdate?: (values: ReadonlyArray<number>) => void;
|
|
40
|
-
timeZoneOffset?: number;
|
|
41
|
-
markDate?: TimelineDateMarkerProps;
|
|
42
|
-
}
|
|
43
|
-
/** Properties for marking current date in RailMarkers
|
|
44
|
-
* @internal
|
|
45
|
-
*/
|
|
46
|
-
interface DateMarkerProps {
|
|
47
|
-
datePercentage: number;
|
|
48
|
-
dateMarker?: React.ReactNode;
|
|
49
|
-
}
|
|
50
|
-
/** Scrubber/Slider for timeline control
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
export declare function Scrubber(props: ScrubberProps): JSX.Element;
|
|
54
|
-
export {};
|
|
1
|
+
import "./Scrubber.scss";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { CommonProps } from "@itwin/core-react";
|
|
4
|
+
import { TimelineDateMarkerProps } from "./TimelineComponent";
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPercentageOfRectangle(rect: DOMRect, pointer: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function RailMarkers({ showToolTip, percent, tooltipText, markDate }: {
|
|
13
|
+
showToolTip: boolean;
|
|
14
|
+
percent: number;
|
|
15
|
+
tooltipText: string;
|
|
16
|
+
markDate?: DateMarkerProps;
|
|
17
|
+
}): JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* Custom Timeline Thumb
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare function CustomThumb(): JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export declare function useFocusedThumb(sliderContainer: HTMLDivElement | undefined): boolean;
|
|
27
|
+
/** Properties for Scrubber/Slider used on timeline control
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export interface ScrubberProps extends CommonProps {
|
|
31
|
+
currentDuration: number;
|
|
32
|
+
totalDuration: number;
|
|
33
|
+
isPlaying: boolean;
|
|
34
|
+
inMiniMode: boolean;
|
|
35
|
+
startDate?: Date;
|
|
36
|
+
endDate?: Date;
|
|
37
|
+
showTime?: boolean;
|
|
38
|
+
onChange?: (values: ReadonlyArray<number>) => void;
|
|
39
|
+
onUpdate?: (values: ReadonlyArray<number>) => void;
|
|
40
|
+
timeZoneOffset?: number;
|
|
41
|
+
markDate?: TimelineDateMarkerProps;
|
|
42
|
+
}
|
|
43
|
+
/** Properties for marking current date in RailMarkers
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
interface DateMarkerProps {
|
|
47
|
+
datePercentage: number;
|
|
48
|
+
dateMarker?: React.ReactNode;
|
|
49
|
+
}
|
|
50
|
+
/** Scrubber/Slider for timeline control
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
export declare function Scrubber(props: ScrubberProps): JSX.Element;
|
|
54
|
+
export {};
|
|
55
55
|
//# sourceMappingURL=Scrubber.d.ts.map
|
|
@@ -1,165 +1,165 @@
|
|
|
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
|
-
import "./Scrubber.scss";
|
|
6
|
-
import * as React from "react";
|
|
7
|
-
import { Slider } from "@itwin/itwinui-react";
|
|
8
|
-
import { useEventListener } from "@itwin/core-react";
|
|
9
|
-
import { toDateString, toTimeString } from "@itwin/components-react";
|
|
10
|
-
/**
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
export function getPercentageOfRectangle(rect, pointer) {
|
|
14
|
-
const position = Math.min(rect.right, Math.max(rect.left, pointer));
|
|
15
|
-
return (position - rect.left) / rect.width;
|
|
16
|
-
}
|
|
17
|
-
// istanbul ignore next - WIP
|
|
18
|
-
const formatDuration = (value) => {
|
|
19
|
-
const addZero = (i) => {
|
|
20
|
-
return (i < 10) ? `0${i}` : i;
|
|
21
|
-
};
|
|
22
|
-
const date = new Date(value);
|
|
23
|
-
const minutes = date.getUTCMinutes();
|
|
24
|
-
const seconds = date.getUTCSeconds();
|
|
25
|
-
return `${addZero(minutes)}:${addZero(seconds)}`;
|
|
26
|
-
};
|
|
27
|
-
const formatDate = (startDate, endDate, fraction, timeZoneOffset) => {
|
|
28
|
-
const delta = (endDate.getTime() - startDate.getTime()) * fraction;
|
|
29
|
-
const date = new Date(startDate.getTime() + delta);
|
|
30
|
-
return toDateString(date, timeZoneOffset);
|
|
31
|
-
};
|
|
32
|
-
// istanbul ignore next - WIP
|
|
33
|
-
const formatTime = (startDate, endDate, fraction, timeZoneOffset) => {
|
|
34
|
-
const delta = (endDate.getTime() - startDate.getTime()) * fraction;
|
|
35
|
-
const date = new Date(startDate.getTime() + delta);
|
|
36
|
-
return ` ${toTimeString(date, timeZoneOffset)}`;
|
|
37
|
-
};
|
|
38
|
-
function generateToolTipText(showTime, percent, min, max, startDate, endDate, timeZoneOffset = 0) {
|
|
39
|
-
if (startDate && endDate)
|
|
40
|
-
return `${formatDate(startDate, endDate, percent, timeZoneOffset)}${showTime ? formatTime(startDate, endDate, percent, timeZoneOffset) : ""} `;
|
|
41
|
-
const val = Math.round(min + ((max - min) * percent));
|
|
42
|
-
return formatDuration(val);
|
|
43
|
-
}
|
|
44
|
-
function getPercentageFromDate(startDate, endDate, date) {
|
|
45
|
-
const newDate = date ? date : new Date();
|
|
46
|
-
const startTime = startDate.getTime();
|
|
47
|
-
const totalDuration = endDate.getTime() - startTime;
|
|
48
|
-
return (newDate.getTime() - startTime) / totalDuration;
|
|
49
|
-
}
|
|
50
|
-
function getDateMarker(dateMarkerPropsIn, startDate, endDate) {
|
|
51
|
-
const percentage = getPercentageFromDate(startDate, endDate, dateMarkerPropsIn.date);
|
|
52
|
-
const marker = dateMarkerPropsIn.dateMarker ? dateMarkerPropsIn.dateMarker : React.createElement("span", { className: "date-marker-default" });
|
|
53
|
-
return { datePercentage: percentage, dateMarker: marker };
|
|
54
|
-
}
|
|
55
|
-
function markDateInTimelineRange(dateMarkerProps, startDate, endDate) {
|
|
56
|
-
// istanbul ignore else
|
|
57
|
-
if (dateMarkerProps && startDate && endDate) {
|
|
58
|
-
const inDate = dateMarkerProps.date ? dateMarkerProps.date : new Date();
|
|
59
|
-
// istanbul ignore else
|
|
60
|
-
if (inDate.getTime() >= startDate.getTime() && inDate.getTime() <= endDate.getTime())
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @internal
|
|
67
|
-
*/
|
|
68
|
-
export function RailMarkers({ showToolTip, percent, tooltipText, markDate }) {
|
|
69
|
-
return (React.createElement("div", { className: "components-timeline-rail-marker-container" },
|
|
70
|
-
showToolTip &&
|
|
71
|
-
React.createElement("div", { className: "components-timeline-tooltip", style: { left: `${Math.round(percent * 100)}% ` } },
|
|
72
|
-
React.createElement("span", { className: "tooltip-text" }, tooltipText)),
|
|
73
|
-
markDate &&
|
|
74
|
-
React.createElement("div", { className: "components-timeline-date-marker", "data-testid": "test-date-marker", style: { left: `${Math.round(markDate.datePercentage * 100)}% ` } }, markDate.dateMarker)));
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Custom Timeline Thumb
|
|
78
|
-
* @internal
|
|
79
|
-
*/
|
|
80
|
-
export function CustomThumb() {
|
|
81
|
-
return (React.createElement("div", { className: "scrubber-handle" },
|
|
82
|
-
React.createElement("div", null),
|
|
83
|
-
React.createElement("div", null),
|
|
84
|
-
React.createElement("div", null)));
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* @internal
|
|
88
|
-
*/
|
|
89
|
-
export function useFocusedThumb(sliderContainer) {
|
|
90
|
-
const [thumbElement, setThumbElement] = React.useState();
|
|
91
|
-
React.useLayoutEffect(() => {
|
|
92
|
-
// istanbul ignore else
|
|
93
|
-
if (sliderContainer) {
|
|
94
|
-
const element = sliderContainer.querySelector(".iui-slider-thumb");
|
|
95
|
-
if (element && thumbElement !== element) {
|
|
96
|
-
setThumbElement(element);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}, [sliderContainer, thumbElement]);
|
|
100
|
-
const [thumbHasFocus, setThumbHasFocus] = React.useState(false);
|
|
101
|
-
const handleThumbFocus = React.useCallback(() => {
|
|
102
|
-
setThumbHasFocus(true);
|
|
103
|
-
}, []);
|
|
104
|
-
const handleThumbBlur = React.useCallback(() => {
|
|
105
|
-
setThumbHasFocus(false);
|
|
106
|
-
}, []);
|
|
107
|
-
useEventListener("focus", handleThumbFocus, thumbElement);
|
|
108
|
-
useEventListener("blur", handleThumbBlur, thumbElement);
|
|
109
|
-
return thumbHasFocus;
|
|
110
|
-
}
|
|
111
|
-
/** Scrubber/Slider for timeline control
|
|
112
|
-
* @internal
|
|
113
|
-
*/
|
|
114
|
-
export function Scrubber(props) {
|
|
115
|
-
const { startDate, endDate, showTime, isPlaying, totalDuration, timeZoneOffset, currentDuration, className, onChange, onUpdate } = props;
|
|
116
|
-
const thumbProps = () => {
|
|
117
|
-
return {
|
|
118
|
-
className: "components-timeline-thumb",
|
|
119
|
-
children: React.createElement(CustomThumb, null),
|
|
120
|
-
};
|
|
121
|
-
};
|
|
122
|
-
const sliderRef = React.useRef(null);
|
|
123
|
-
const [sliderContainer, setSliderContainer] = React.useState();
|
|
124
|
-
const [pointerPercent, setPointerPercent] = React.useState(0);
|
|
125
|
-
React.useLayoutEffect(() => {
|
|
126
|
-
// istanbul ignore else
|
|
127
|
-
if (sliderRef.current) {
|
|
128
|
-
const container = sliderRef.current.querySelector(".iui-slider-container");
|
|
129
|
-
if (container && sliderContainer !== container) {
|
|
130
|
-
setSliderContainer(container);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}, [sliderContainer]);
|
|
134
|
-
const tooltipProps = React.useCallback(() => {
|
|
135
|
-
return { visible: false };
|
|
136
|
-
}, []);
|
|
137
|
-
const [showRailTooltip, setShowRailTooltip] = React.useState(false);
|
|
138
|
-
// istanbul ignore next
|
|
139
|
-
const handlePointerEnter = React.useCallback(() => {
|
|
140
|
-
setShowRailTooltip(true);
|
|
141
|
-
}, []);
|
|
142
|
-
// istanbul ignore next
|
|
143
|
-
const handlePointerLeave = React.useCallback(() => {
|
|
144
|
-
setShowRailTooltip(false);
|
|
145
|
-
}, []);
|
|
146
|
-
const handlePointerMove = React.useCallback((event) => {
|
|
147
|
-
sliderContainer &&
|
|
148
|
-
setPointerPercent(getPercentageOfRectangle(sliderContainer.getBoundingClientRect(), event.clientX));
|
|
149
|
-
}, [sliderContainer]);
|
|
150
|
-
const thumbHasFocus = useFocusedThumb(sliderContainer);
|
|
151
|
-
const tickLabel = React.useMemo(() => {
|
|
152
|
-
const showTip = isPlaying || showRailTooltip || thumbHasFocus;
|
|
153
|
-
const percent = (isPlaying || thumbHasFocus) ? currentDuration / totalDuration : pointerPercent;
|
|
154
|
-
const markDateInRange = markDateInTimelineRange(props.markDate, startDate, endDate);
|
|
155
|
-
const currentDateMarker = props.markDate && markDateInRange && startDate && endDate ? getDateMarker(props.markDate, startDate, endDate) : undefined;
|
|
156
|
-
const tooltipText = generateToolTipText(!!showTime, percent, 0, totalDuration, startDate, endDate, timeZoneOffset);
|
|
157
|
-
return (React.createElement(RailMarkers, { showToolTip: showTip, percent: percent, tooltipText: tooltipText, markDate: currentDateMarker }));
|
|
158
|
-
}, [isPlaying, showRailTooltip, currentDuration, totalDuration, pointerPercent, startDate, endDate, timeZoneOffset, showTime, thumbHasFocus, props.markDate]);
|
|
159
|
-
return (React.createElement(Slider, { ref: sliderRef, className: className, step: 1, min: 0, max: totalDuration, minLabel: "", maxLabel: "", onUpdate: onUpdate, onChange: onChange, values: [currentDuration], tooltipProps: tooltipProps, thumbProps: thumbProps, tickLabels: tickLabel, railContainerProps: {
|
|
160
|
-
onPointerEnter: handlePointerEnter,
|
|
161
|
-
onPointerMove: handlePointerMove,
|
|
162
|
-
onPointerLeave: handlePointerLeave,
|
|
163
|
-
} }));
|
|
164
|
-
}
|
|
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
|
+
import "./Scrubber.scss";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { Slider } from "@itwin/itwinui-react";
|
|
8
|
+
import { useEventListener } from "@itwin/core-react";
|
|
9
|
+
import { toDateString, toTimeString } from "@itwin/components-react";
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export function getPercentageOfRectangle(rect, pointer) {
|
|
14
|
+
const position = Math.min(rect.right, Math.max(rect.left, pointer));
|
|
15
|
+
return (position - rect.left) / rect.width;
|
|
16
|
+
}
|
|
17
|
+
// istanbul ignore next - WIP
|
|
18
|
+
const formatDuration = (value) => {
|
|
19
|
+
const addZero = (i) => {
|
|
20
|
+
return (i < 10) ? `0${i}` : i;
|
|
21
|
+
};
|
|
22
|
+
const date = new Date(value);
|
|
23
|
+
const minutes = date.getUTCMinutes();
|
|
24
|
+
const seconds = date.getUTCSeconds();
|
|
25
|
+
return `${addZero(minutes)}:${addZero(seconds)}`;
|
|
26
|
+
};
|
|
27
|
+
const formatDate = (startDate, endDate, fraction, timeZoneOffset) => {
|
|
28
|
+
const delta = (endDate.getTime() - startDate.getTime()) * fraction;
|
|
29
|
+
const date = new Date(startDate.getTime() + delta);
|
|
30
|
+
return toDateString(date, timeZoneOffset);
|
|
31
|
+
};
|
|
32
|
+
// istanbul ignore next - WIP
|
|
33
|
+
const formatTime = (startDate, endDate, fraction, timeZoneOffset) => {
|
|
34
|
+
const delta = (endDate.getTime() - startDate.getTime()) * fraction;
|
|
35
|
+
const date = new Date(startDate.getTime() + delta);
|
|
36
|
+
return ` ${toTimeString(date, timeZoneOffset)}`;
|
|
37
|
+
};
|
|
38
|
+
function generateToolTipText(showTime, percent, min, max, startDate, endDate, timeZoneOffset = 0) {
|
|
39
|
+
if (startDate && endDate)
|
|
40
|
+
return `${formatDate(startDate, endDate, percent, timeZoneOffset)}${showTime ? formatTime(startDate, endDate, percent, timeZoneOffset) : ""} `;
|
|
41
|
+
const val = Math.round(min + ((max - min) * percent));
|
|
42
|
+
return formatDuration(val);
|
|
43
|
+
}
|
|
44
|
+
function getPercentageFromDate(startDate, endDate, date) {
|
|
45
|
+
const newDate = date ? date : new Date();
|
|
46
|
+
const startTime = startDate.getTime();
|
|
47
|
+
const totalDuration = endDate.getTime() - startTime;
|
|
48
|
+
return (newDate.getTime() - startTime) / totalDuration;
|
|
49
|
+
}
|
|
50
|
+
function getDateMarker(dateMarkerPropsIn, startDate, endDate) {
|
|
51
|
+
const percentage = getPercentageFromDate(startDate, endDate, dateMarkerPropsIn.date);
|
|
52
|
+
const marker = dateMarkerPropsIn.dateMarker ? dateMarkerPropsIn.dateMarker : React.createElement("span", { className: "date-marker-default" });
|
|
53
|
+
return { datePercentage: percentage, dateMarker: marker };
|
|
54
|
+
}
|
|
55
|
+
function markDateInTimelineRange(dateMarkerProps, startDate, endDate) {
|
|
56
|
+
// istanbul ignore else
|
|
57
|
+
if (dateMarkerProps && startDate && endDate) {
|
|
58
|
+
const inDate = dateMarkerProps.date ? dateMarkerProps.date : new Date();
|
|
59
|
+
// istanbul ignore else
|
|
60
|
+
if (inDate.getTime() >= startDate.getTime() && inDate.getTime() <= endDate.getTime())
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
export function RailMarkers({ showToolTip, percent, tooltipText, markDate }) {
|
|
69
|
+
return (React.createElement("div", { className: "components-timeline-rail-marker-container" },
|
|
70
|
+
showToolTip &&
|
|
71
|
+
React.createElement("div", { className: "components-timeline-tooltip", style: { left: `${Math.round(percent * 100)}% ` } },
|
|
72
|
+
React.createElement("span", { className: "tooltip-text" }, tooltipText)),
|
|
73
|
+
markDate &&
|
|
74
|
+
React.createElement("div", { className: "components-timeline-date-marker", "data-testid": "test-date-marker", style: { left: `${Math.round(markDate.datePercentage * 100)}% ` } }, markDate.dateMarker)));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Custom Timeline Thumb
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
export function CustomThumb() {
|
|
81
|
+
return (React.createElement("div", { className: "scrubber-handle" },
|
|
82
|
+
React.createElement("div", null),
|
|
83
|
+
React.createElement("div", null),
|
|
84
|
+
React.createElement("div", null)));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
export function useFocusedThumb(sliderContainer) {
|
|
90
|
+
const [thumbElement, setThumbElement] = React.useState();
|
|
91
|
+
React.useLayoutEffect(() => {
|
|
92
|
+
// istanbul ignore else
|
|
93
|
+
if (sliderContainer) {
|
|
94
|
+
const element = sliderContainer.querySelector(".iui-slider-thumb");
|
|
95
|
+
if (element && thumbElement !== element) {
|
|
96
|
+
setThumbElement(element);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, [sliderContainer, thumbElement]);
|
|
100
|
+
const [thumbHasFocus, setThumbHasFocus] = React.useState(false);
|
|
101
|
+
const handleThumbFocus = React.useCallback(() => {
|
|
102
|
+
setThumbHasFocus(true);
|
|
103
|
+
}, []);
|
|
104
|
+
const handleThumbBlur = React.useCallback(() => {
|
|
105
|
+
setThumbHasFocus(false);
|
|
106
|
+
}, []);
|
|
107
|
+
useEventListener("focus", handleThumbFocus, thumbElement);
|
|
108
|
+
useEventListener("blur", handleThumbBlur, thumbElement);
|
|
109
|
+
return thumbHasFocus;
|
|
110
|
+
}
|
|
111
|
+
/** Scrubber/Slider for timeline control
|
|
112
|
+
* @internal
|
|
113
|
+
*/
|
|
114
|
+
export function Scrubber(props) {
|
|
115
|
+
const { startDate, endDate, showTime, isPlaying, totalDuration, timeZoneOffset, currentDuration, className, onChange, onUpdate } = props;
|
|
116
|
+
const thumbProps = () => {
|
|
117
|
+
return {
|
|
118
|
+
className: "components-timeline-thumb",
|
|
119
|
+
children: React.createElement(CustomThumb, null),
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
const sliderRef = React.useRef(null);
|
|
123
|
+
const [sliderContainer, setSliderContainer] = React.useState();
|
|
124
|
+
const [pointerPercent, setPointerPercent] = React.useState(0);
|
|
125
|
+
React.useLayoutEffect(() => {
|
|
126
|
+
// istanbul ignore else
|
|
127
|
+
if (sliderRef.current) {
|
|
128
|
+
const container = sliderRef.current.querySelector(".iui-slider-container");
|
|
129
|
+
if (container && sliderContainer !== container) {
|
|
130
|
+
setSliderContainer(container);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}, [sliderContainer]);
|
|
134
|
+
const tooltipProps = React.useCallback(() => {
|
|
135
|
+
return { visible: false };
|
|
136
|
+
}, []);
|
|
137
|
+
const [showRailTooltip, setShowRailTooltip] = React.useState(false);
|
|
138
|
+
// istanbul ignore next
|
|
139
|
+
const handlePointerEnter = React.useCallback(() => {
|
|
140
|
+
setShowRailTooltip(true);
|
|
141
|
+
}, []);
|
|
142
|
+
// istanbul ignore next
|
|
143
|
+
const handlePointerLeave = React.useCallback(() => {
|
|
144
|
+
setShowRailTooltip(false);
|
|
145
|
+
}, []);
|
|
146
|
+
const handlePointerMove = React.useCallback((event) => {
|
|
147
|
+
sliderContainer &&
|
|
148
|
+
setPointerPercent(getPercentageOfRectangle(sliderContainer.getBoundingClientRect(), event.clientX));
|
|
149
|
+
}, [sliderContainer]);
|
|
150
|
+
const thumbHasFocus = useFocusedThumb(sliderContainer);
|
|
151
|
+
const tickLabel = React.useMemo(() => {
|
|
152
|
+
const showTip = isPlaying || showRailTooltip || thumbHasFocus;
|
|
153
|
+
const percent = (isPlaying || thumbHasFocus) ? currentDuration / totalDuration : pointerPercent;
|
|
154
|
+
const markDateInRange = markDateInTimelineRange(props.markDate, startDate, endDate);
|
|
155
|
+
const currentDateMarker = props.markDate && markDateInRange && startDate && endDate ? getDateMarker(props.markDate, startDate, endDate) : undefined;
|
|
156
|
+
const tooltipText = generateToolTipText(!!showTime, percent, 0, totalDuration, startDate, endDate, timeZoneOffset);
|
|
157
|
+
return (React.createElement(RailMarkers, { showToolTip: showTip, percent: percent, tooltipText: tooltipText, markDate: currentDateMarker }));
|
|
158
|
+
}, [isPlaying, showRailTooltip, currentDuration, totalDuration, pointerPercent, startDate, endDate, timeZoneOffset, showTime, thumbHasFocus, props.markDate]);
|
|
159
|
+
return (React.createElement(Slider, { ref: sliderRef, className: className, step: 1, min: 0, max: totalDuration, minLabel: "", maxLabel: "", onUpdate: onUpdate, onChange: onChange, values: [currentDuration], tooltipProps: tooltipProps, thumbProps: thumbProps, tickLabels: tickLabel, railContainerProps: {
|
|
160
|
+
onPointerEnter: handlePointerEnter,
|
|
161
|
+
onPointerMove: handlePointerMove,
|
|
162
|
+
onPointerLeave: handlePointerLeave,
|
|
163
|
+
} }));
|
|
164
|
+
}
|
|
165
165
|
//# sourceMappingURL=Scrubber.js.map
|
|
@@ -2,25 +2,18 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
5
|
@import "~@itwin/core-react/lib/cjs/core-react/z-index";
|
|
7
|
-
|
|
8
6
|
// the following overrides default iui-slider-thumb settings from iTwinUI
|
|
9
7
|
div.components-timeline-thumb.iui-slider-thumb {
|
|
10
8
|
display: flex;
|
|
11
9
|
justify-content: center;
|
|
12
10
|
align-items: center;
|
|
13
|
-
background-
|
|
14
|
-
to bottom,
|
|
15
|
-
$buic-background-3,
|
|
16
|
-
$buic-background-3
|
|
17
|
-
),
|
|
18
|
-
linear-gradient(to bottom, $buic-background-1, $buic-background-1);
|
|
11
|
+
background-color: var(--iui-color-background);
|
|
19
12
|
box-sizing: border-box;
|
|
20
13
|
width: 38px;
|
|
21
14
|
height: 20px;
|
|
22
15
|
border-radius: var(--iui-border-radius-1);
|
|
23
|
-
border: 1px solid
|
|
16
|
+
border: 1px solid var(--iui-color-border);
|
|
24
17
|
transform: translateX(-19.2px);
|
|
25
18
|
top: 4px;
|
|
26
19
|
}
|
|
@@ -35,12 +28,12 @@ div.components-timeline-thumb.iui-slider-thumb {
|
|
|
35
28
|
top: -8px;
|
|
36
29
|
display: inline-block;
|
|
37
30
|
transform: translateX(-50px);
|
|
38
|
-
border-bottom: 1px dotted
|
|
31
|
+
border-bottom: 1px dotted rgba(0, 0, 0, var(--iui-opacity-3));
|
|
39
32
|
font-size: 14px;
|
|
40
33
|
|
|
41
34
|
.tooltip-text {
|
|
42
35
|
width: 100px;
|
|
43
|
-
background-color:
|
|
36
|
+
background-color: rgba(0, 0, 0, var(--iui-opacity-3));
|
|
44
37
|
color: #fff;
|
|
45
38
|
// opacity: 0.8;
|
|
46
39
|
text-align: center;
|
|
@@ -58,7 +51,8 @@ div.components-timeline-thumb.iui-slider-thumb {
|
|
|
58
51
|
margin-left: -5px;
|
|
59
52
|
border-width: 5px;
|
|
60
53
|
border-style: solid;
|
|
61
|
-
border-color:
|
|
54
|
+
border-color: rgba(0, 0, 0, var(--iui-opacity-3)) transparent
|
|
55
|
+
transparent transparent;
|
|
62
56
|
}
|
|
63
57
|
}
|
|
64
58
|
}
|
|
@@ -79,9 +73,8 @@ div.components-timeline-thumb.iui-slider-thumb {
|
|
|
79
73
|
> div {
|
|
80
74
|
width: 1px;
|
|
81
75
|
height: 10px;
|
|
82
|
-
opacity: 0.25;
|
|
83
76
|
margin: 0 1px;
|
|
84
|
-
background-color:
|
|
77
|
+
background-color: var(--iui-color-border-subtle);
|
|
85
78
|
}
|
|
86
79
|
}
|
|
87
80
|
|
|
@@ -108,5 +101,5 @@ div.components-timeline-thumb.iui-slider-thumb {
|
|
|
108
101
|
width: 3px;
|
|
109
102
|
border-radius: var(--iui-border-radius-1);
|
|
110
103
|
transform: translateY(1px);
|
|
111
|
-
background-color:
|
|
104
|
+
background-color: var(--iui-color-border);
|
|
112
105
|
}
|
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Timeline
|
|
3
|
-
*/
|
|
4
|
-
import "./SolarTimeline.scss";
|
|
5
|
-
import * as React from "react";
|
|
6
|
-
import { ColorDef } from "@itwin/core-common";
|
|
7
|
-
import { SolarDataProvider } from "./interfaces";
|
|
8
|
-
interface SolarTimelineComponentProps {
|
|
9
|
-
dataProvider: SolarDataProvider;
|
|
10
|
-
onPlayPause?: (playing: boolean) => void;
|
|
11
|
-
duration?: number;
|
|
12
|
-
speed?: number;
|
|
13
|
-
}
|
|
14
|
-
interface SolarTimelineComponentState {
|
|
15
|
-
isPlaying: boolean;
|
|
16
|
-
isDateOpened: boolean;
|
|
17
|
-
isSettingsOpened: boolean;
|
|
18
|
-
dayStartMs: number;
|
|
19
|
-
sunRiseOffsetMs: number;
|
|
20
|
-
sunSetOffsetMs: number;
|
|
21
|
-
sunDeltaMs: number;
|
|
22
|
-
currentTimeOffsetMs: number;
|
|
23
|
-
speed: number;
|
|
24
|
-
loop: boolean;
|
|
25
|
-
shadowColor: ColorDef;
|
|
26
|
-
duration: number;
|
|
27
|
-
adjustedDuration: number;
|
|
28
|
-
}
|
|
29
|
-
/** Solar Timeline
|
|
30
|
-
* @alpha
|
|
31
|
-
*/
|
|
32
|
-
export declare class SolarTimeline extends React.PureComponent<SolarTimelineComponentProps, SolarTimelineComponentState> {
|
|
33
|
-
private _datePicker;
|
|
34
|
-
private _settings;
|
|
35
|
-
private _requestFrame;
|
|
36
|
-
private _unmounted;
|
|
37
|
-
private _timeLastCycle;
|
|
38
|
-
private _totalPlayTime;
|
|
39
|
-
private _settingsPopupTitle;
|
|
40
|
-
private _playLabel;
|
|
41
|
-
private _settingLabel;
|
|
42
|
-
private _loopLabel;
|
|
43
|
-
private _speedLabel;
|
|
44
|
-
private _dateTimeLabel;
|
|
45
|
-
private _months;
|
|
46
|
-
private _timeLabel;
|
|
47
|
-
private _amLabel;
|
|
48
|
-
private _pmLabel;
|
|
49
|
-
private readonly _presetColors;
|
|
50
|
-
constructor(props: SolarTimelineComponentProps);
|
|
51
|
-
componentWillUnmount(): void;
|
|
52
|
-
private _updateAnimation;
|
|
53
|
-
private _play;
|
|
54
|
-
private _onPause;
|
|
55
|
-
private _onPlay;
|
|
56
|
-
private setPlaybackTimeBySunTime;
|
|
57
|
-
/** note the day passed in is in the time of the current user not in project time because the date picker works in
|
|
58
|
-
* local time */
|
|
59
|
-
private _onDayClick;
|
|
60
|
-
private _onTimeChanged;
|
|
61
|
-
private _onCloseDayPicker;
|
|
62
|
-
private _onOpenDayPicker;
|
|
63
|
-
private _onCloseSettingsPopup;
|
|
64
|
-
private _onOpenSettingsPopup;
|
|
65
|
-
private ensureRange;
|
|
66
|
-
private processSunTimeChange;
|
|
67
|
-
private _onUpdate;
|
|
68
|
-
private _onChange;
|
|
69
|
-
private _onSpeedChange;
|
|
70
|
-
private _onToggleLoop;
|
|
71
|
-
private _formatTime;
|
|
72
|
-
private _onPresetColorPick;
|
|
73
|
-
private _handleHueOrSaturationChange;
|
|
74
|
-
getLocalTime(ticks: number): Date;
|
|
75
|
-
render(): JSX.Element;
|
|
76
|
-
}
|
|
77
|
-
export {};
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Timeline
|
|
3
|
+
*/
|
|
4
|
+
import "./SolarTimeline.scss";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { ColorDef } from "@itwin/core-common";
|
|
7
|
+
import { SolarDataProvider } from "./interfaces";
|
|
8
|
+
interface SolarTimelineComponentProps {
|
|
9
|
+
dataProvider: SolarDataProvider;
|
|
10
|
+
onPlayPause?: (playing: boolean) => void;
|
|
11
|
+
duration?: number;
|
|
12
|
+
speed?: number;
|
|
13
|
+
}
|
|
14
|
+
interface SolarTimelineComponentState {
|
|
15
|
+
isPlaying: boolean;
|
|
16
|
+
isDateOpened: boolean;
|
|
17
|
+
isSettingsOpened: boolean;
|
|
18
|
+
dayStartMs: number;
|
|
19
|
+
sunRiseOffsetMs: number;
|
|
20
|
+
sunSetOffsetMs: number;
|
|
21
|
+
sunDeltaMs: number;
|
|
22
|
+
currentTimeOffsetMs: number;
|
|
23
|
+
speed: number;
|
|
24
|
+
loop: boolean;
|
|
25
|
+
shadowColor: ColorDef;
|
|
26
|
+
duration: number;
|
|
27
|
+
adjustedDuration: number;
|
|
28
|
+
}
|
|
29
|
+
/** Solar Timeline
|
|
30
|
+
* @alpha
|
|
31
|
+
*/
|
|
32
|
+
export declare class SolarTimeline extends React.PureComponent<SolarTimelineComponentProps, SolarTimelineComponentState> {
|
|
33
|
+
private _datePicker;
|
|
34
|
+
private _settings;
|
|
35
|
+
private _requestFrame;
|
|
36
|
+
private _unmounted;
|
|
37
|
+
private _timeLastCycle;
|
|
38
|
+
private _totalPlayTime;
|
|
39
|
+
private _settingsPopupTitle;
|
|
40
|
+
private _playLabel;
|
|
41
|
+
private _settingLabel;
|
|
42
|
+
private _loopLabel;
|
|
43
|
+
private _speedLabel;
|
|
44
|
+
private _dateTimeLabel;
|
|
45
|
+
private _months;
|
|
46
|
+
private _timeLabel;
|
|
47
|
+
private _amLabel;
|
|
48
|
+
private _pmLabel;
|
|
49
|
+
private readonly _presetColors;
|
|
50
|
+
constructor(props: SolarTimelineComponentProps);
|
|
51
|
+
componentWillUnmount(): void;
|
|
52
|
+
private _updateAnimation;
|
|
53
|
+
private _play;
|
|
54
|
+
private _onPause;
|
|
55
|
+
private _onPlay;
|
|
56
|
+
private setPlaybackTimeBySunTime;
|
|
57
|
+
/** note the day passed in is in the time of the current user not in project time because the date picker works in
|
|
58
|
+
* local time */
|
|
59
|
+
private _onDayClick;
|
|
60
|
+
private _onTimeChanged;
|
|
61
|
+
private _onCloseDayPicker;
|
|
62
|
+
private _onOpenDayPicker;
|
|
63
|
+
private _onCloseSettingsPopup;
|
|
64
|
+
private _onOpenSettingsPopup;
|
|
65
|
+
private ensureRange;
|
|
66
|
+
private processSunTimeChange;
|
|
67
|
+
private _onUpdate;
|
|
68
|
+
private _onChange;
|
|
69
|
+
private _onSpeedChange;
|
|
70
|
+
private _onToggleLoop;
|
|
71
|
+
private _formatTime;
|
|
72
|
+
private _onPresetColorPick;
|
|
73
|
+
private _handleHueOrSaturationChange;
|
|
74
|
+
getLocalTime(ticks: number): Date;
|
|
75
|
+
render(): JSX.Element;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
|
78
78
|
//# sourceMappingURL=SolarTimeline.d.ts.map
|