@itwin/imodel-components-react 4.0.0-dev.12 → 4.0.0-dev.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +113 -1
- package/README.md +2 -2
- package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
- package/lib/cjs/imodel-components-react/UiIModelComponents.js +75 -77
- 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.js +112 -108
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- 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/ColorPickerPanel.d.ts +21 -21
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +149 -145
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +143 -139
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
- 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/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/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/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 -268
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- 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/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 +1 -2
- 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 +175 -174
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +650 -638
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +657 -653
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- 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 +0 -4
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +56 -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.js +88 -84
- 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 +89 -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 +112 -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 +133 -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 +187 -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 +98 -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/PlayerButton.d.ts +33 -33
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +99 -95
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
- 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/SolarTimeline.d.ts +77 -77
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +432 -428
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
- 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 -365
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +17 -0
- package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +174 -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/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 +276 -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 +82 -82
- package/lib/cjs/imodel-components-react.js +105 -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.js +72 -73
- 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/ColorPickerButton.d.ts +37 -37
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js +83 -83
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- 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/ColorPickerPanel.d.ts +21 -21
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +122 -122
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +114 -114
- 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/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/WeightEditor.d.ts +47 -47
- package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
- 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 -243
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- 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/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 +1 -2
- 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 +175 -174
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +620 -610
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +627 -626
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- 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.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +0 -4
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +29 -30
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +61 -61
- 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 +62 -63
- package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +82 -83
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +106 -110
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +157 -158
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
- 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 +68 -69
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
- 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/PlayerButton.d.ts +33 -33
- package/lib/esm/imodel-components-react/timeline/PlayerButton.js +68 -68
- 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/SolarTimeline.d.ts +77 -77
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +402 -402
- 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 -339
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +17 -0
- package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +174 -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/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 +249 -251
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
- 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 +82 -82
- package/lib/esm/imodel-components-react.js +87 -87
- package/package.json +26 -24
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module PropertyEditors
|
|
7
|
-
*/
|
|
8
|
-
import "./WeightEditor.scss";
|
|
9
|
-
import classnames from "classnames";
|
|
10
|
-
import * as React from "react";
|
|
11
|
-
import { PropertyValueFormat, StandardEditorNames, StandardTypeNames } from "@itwin/appui-abstract";
|
|
12
|
-
import { PropertyEditorBase, PropertyEditorManager } from "@itwin/components-react";
|
|
13
|
-
import { WeightPickerButton } from "../lineweight/WeightPickerButton";
|
|
14
|
-
/** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component
|
|
15
|
-
* @public
|
|
16
|
-
*/
|
|
17
|
-
export class WeightEditor extends React.PureComponent {
|
|
18
|
-
constructor(props) {
|
|
19
|
-
super(props);
|
|
20
|
-
this._control = null;
|
|
21
|
-
this._isMounted = false;
|
|
22
|
-
this._availableWeights = [];
|
|
23
|
-
this._divElement = React.createRef();
|
|
24
|
-
/** @internal */
|
|
25
|
-
this.state = {
|
|
26
|
-
weightValue: 0,
|
|
27
|
-
readonly: false,
|
|
28
|
-
};
|
|
29
|
-
this._onLineWeightPick = (weight) => {
|
|
30
|
-
const propertyRecord = this.props.propertyRecord;
|
|
31
|
-
this.setState({
|
|
32
|
-
weightValue: weight,
|
|
33
|
-
}, async () => {
|
|
34
|
-
// istanbul ignore else
|
|
35
|
-
if (propertyRecord && this.props.onCommit) {
|
|
36
|
-
const propertyValue = await this.getPropertyValue();
|
|
37
|
-
// istanbul ignore else
|
|
38
|
-
if (propertyValue !== undefined) {
|
|
39
|
-
this.props.onCommit({ propertyRecord, newValue: propertyValue });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
// TODO: add support for following if we need to specify set of weights to display
|
|
45
|
-
// const record = this.props.propertyRecord;
|
|
46
|
-
// if (record && record.property && record.property.editor && record.property.editor.params) {
|
|
47
|
-
// const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;
|
|
48
|
-
// // istanbul ignore else
|
|
49
|
-
// if (weightParams) {
|
|
50
|
-
// weightParams.weightValues.forEach((weight: number) => {
|
|
51
|
-
// this._availableWeights.push(weight);
|
|
52
|
-
// });
|
|
53
|
-
// }
|
|
54
|
-
// }
|
|
55
|
-
}
|
|
56
|
-
async getPropertyValue() {
|
|
57
|
-
const record = this.props.propertyRecord;
|
|
58
|
-
let propertyValue;
|
|
59
|
-
// istanbul ignore else
|
|
60
|
-
if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
|
|
61
|
-
propertyValue = {
|
|
62
|
-
valueFormat: PropertyValueFormat.Primitive,
|
|
63
|
-
value: this.state.weightValue,
|
|
64
|
-
displayValue: "",
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
return propertyValue;
|
|
68
|
-
}
|
|
69
|
-
get htmlElement() {
|
|
70
|
-
return this._divElement.current;
|
|
71
|
-
}
|
|
72
|
-
get hasFocus() {
|
|
73
|
-
let containsFocus = false;
|
|
74
|
-
// istanbul ignore else
|
|
75
|
-
if (this._divElement.current)
|
|
76
|
-
containsFocus = this._divElement.current.contains(document.activeElement);
|
|
77
|
-
return containsFocus;
|
|
78
|
-
}
|
|
79
|
-
setFocus() {
|
|
80
|
-
// istanbul ignore else
|
|
81
|
-
if (this._control && !this.state.isDisabled) {
|
|
82
|
-
this._control.setFocus();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/** @internal */
|
|
86
|
-
componentDidMount() {
|
|
87
|
-
this._isMounted = true;
|
|
88
|
-
this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
89
|
-
}
|
|
90
|
-
/** @internal */
|
|
91
|
-
componentWillUnmount() {
|
|
92
|
-
this._isMounted = false;
|
|
93
|
-
}
|
|
94
|
-
/** @internal */
|
|
95
|
-
componentDidUpdate(prevProps) {
|
|
96
|
-
if (this.props.propertyRecord !== prevProps.propertyRecord) {
|
|
97
|
-
this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
async setStateFromProps() {
|
|
101
|
-
const record = this.props.propertyRecord;
|
|
102
|
-
let initialValue = 0;
|
|
103
|
-
// istanbul ignore else
|
|
104
|
-
if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
|
|
105
|
-
initialValue = record.value.value;
|
|
106
|
-
}
|
|
107
|
-
const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;
|
|
108
|
-
const isDisabled = record ? record.isDisabled : undefined;
|
|
109
|
-
// istanbul ignore else
|
|
110
|
-
if (this._isMounted)
|
|
111
|
-
this.setState({ weightValue: initialValue, readonly, isDisabled }, () => {
|
|
112
|
-
if (this.props.setFocus) {
|
|
113
|
-
this.setFocus();
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
/** @internal */
|
|
118
|
-
render() {
|
|
119
|
-
return (React.createElement("div", { className: classnames("components-weight-editor", this.props.className), style: this.props.style, ref: this._divElement },
|
|
120
|
-
React.createElement(WeightPickerButton, { ref: (control) => this._control = control, activeWeight: this.state.weightValue, weights: this._availableWeights.length > 0 ? /* istanbul ignore next */ this._availableWeights : undefined, disabled: this.state.isDisabled ? true : false, readonly: this.state.readonly, onLineWeightPick: this._onLineWeightPick, "data-testid": "components-weight-editor" })));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/** Weight Property Editor registered for the "number" type name and "weight-picker" editor name.
|
|
124
|
-
* It uses the [[WeightEditor]] React component.
|
|
125
|
-
* @public
|
|
126
|
-
*/
|
|
127
|
-
export class WeightPropertyEditor extends PropertyEditorBase {
|
|
128
|
-
// istanbul ignore next
|
|
129
|
-
get reactNode() {
|
|
130
|
-
return React.createElement(WeightEditor, null);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
PropertyEditorManager.registerEditor(StandardTypeNames.Number, WeightPropertyEditor, StandardEditorNames.WeightPicker);
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module PropertyEditors
|
|
7
|
+
*/
|
|
8
|
+
import "./WeightEditor.scss";
|
|
9
|
+
import classnames from "classnames";
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import { PropertyValueFormat, StandardEditorNames, StandardTypeNames } from "@itwin/appui-abstract";
|
|
12
|
+
import { PropertyEditorBase, PropertyEditorManager } from "@itwin/components-react";
|
|
13
|
+
import { WeightPickerButton } from "../lineweight/WeightPickerButton";
|
|
14
|
+
/** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export class WeightEditor extends React.PureComponent {
|
|
18
|
+
constructor(props) {
|
|
19
|
+
super(props);
|
|
20
|
+
this._control = null;
|
|
21
|
+
this._isMounted = false;
|
|
22
|
+
this._availableWeights = [];
|
|
23
|
+
this._divElement = React.createRef();
|
|
24
|
+
/** @internal */
|
|
25
|
+
this.state = {
|
|
26
|
+
weightValue: 0,
|
|
27
|
+
readonly: false,
|
|
28
|
+
};
|
|
29
|
+
this._onLineWeightPick = (weight) => {
|
|
30
|
+
const propertyRecord = this.props.propertyRecord;
|
|
31
|
+
this.setState({
|
|
32
|
+
weightValue: weight,
|
|
33
|
+
}, async () => {
|
|
34
|
+
// istanbul ignore else
|
|
35
|
+
if (propertyRecord && this.props.onCommit) {
|
|
36
|
+
const propertyValue = await this.getPropertyValue();
|
|
37
|
+
// istanbul ignore else
|
|
38
|
+
if (propertyValue !== undefined) {
|
|
39
|
+
this.props.onCommit({ propertyRecord, newValue: propertyValue });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
// TODO: add support for following if we need to specify set of weights to display
|
|
45
|
+
// const record = this.props.propertyRecord;
|
|
46
|
+
// if (record && record.property && record.property.editor && record.property.editor.params) {
|
|
47
|
+
// const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;
|
|
48
|
+
// // istanbul ignore else
|
|
49
|
+
// if (weightParams) {
|
|
50
|
+
// weightParams.weightValues.forEach((weight: number) => {
|
|
51
|
+
// this._availableWeights.push(weight);
|
|
52
|
+
// });
|
|
53
|
+
// }
|
|
54
|
+
// }
|
|
55
|
+
}
|
|
56
|
+
async getPropertyValue() {
|
|
57
|
+
const record = this.props.propertyRecord;
|
|
58
|
+
let propertyValue;
|
|
59
|
+
// istanbul ignore else
|
|
60
|
+
if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
|
|
61
|
+
propertyValue = {
|
|
62
|
+
valueFormat: PropertyValueFormat.Primitive,
|
|
63
|
+
value: this.state.weightValue,
|
|
64
|
+
displayValue: "",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return propertyValue;
|
|
68
|
+
}
|
|
69
|
+
get htmlElement() {
|
|
70
|
+
return this._divElement.current;
|
|
71
|
+
}
|
|
72
|
+
get hasFocus() {
|
|
73
|
+
let containsFocus = false;
|
|
74
|
+
// istanbul ignore else
|
|
75
|
+
if (this._divElement.current)
|
|
76
|
+
containsFocus = this._divElement.current.contains(document.activeElement);
|
|
77
|
+
return containsFocus;
|
|
78
|
+
}
|
|
79
|
+
setFocus() {
|
|
80
|
+
// istanbul ignore else
|
|
81
|
+
if (this._control && !this.state.isDisabled) {
|
|
82
|
+
this._control.setFocus();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** @internal */
|
|
86
|
+
componentDidMount() {
|
|
87
|
+
this._isMounted = true;
|
|
88
|
+
this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
89
|
+
}
|
|
90
|
+
/** @internal */
|
|
91
|
+
componentWillUnmount() {
|
|
92
|
+
this._isMounted = false;
|
|
93
|
+
}
|
|
94
|
+
/** @internal */
|
|
95
|
+
componentDidUpdate(prevProps) {
|
|
96
|
+
if (this.props.propertyRecord !== prevProps.propertyRecord) {
|
|
97
|
+
this.setStateFromProps(); // eslint-disable-line @typescript-eslint/no-floating-promises
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async setStateFromProps() {
|
|
101
|
+
const record = this.props.propertyRecord;
|
|
102
|
+
let initialValue = 0;
|
|
103
|
+
// istanbul ignore else
|
|
104
|
+
if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {
|
|
105
|
+
initialValue = record.value.value;
|
|
106
|
+
}
|
|
107
|
+
const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;
|
|
108
|
+
const isDisabled = record ? record.isDisabled : undefined;
|
|
109
|
+
// istanbul ignore else
|
|
110
|
+
if (this._isMounted)
|
|
111
|
+
this.setState({ weightValue: initialValue, readonly, isDisabled }, () => {
|
|
112
|
+
if (this.props.setFocus) {
|
|
113
|
+
this.setFocus();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/** @internal */
|
|
118
|
+
render() {
|
|
119
|
+
return (React.createElement("div", { className: classnames("components-weight-editor", this.props.className), style: this.props.style, ref: this._divElement },
|
|
120
|
+
React.createElement(WeightPickerButton, { ref: (control) => this._control = control, activeWeight: this.state.weightValue, weights: this._availableWeights.length > 0 ? /* istanbul ignore next */ this._availableWeights : undefined, disabled: this.state.isDisabled ? true : false, readonly: this.state.readonly, onLineWeightPick: this._onLineWeightPick, "data-testid": "components-weight-editor" })));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/** Weight Property Editor registered for the "number" type name and "weight-picker" editor name.
|
|
124
|
+
* It uses the [[WeightEditor]] React component.
|
|
125
|
+
* @public
|
|
126
|
+
*/
|
|
127
|
+
export class WeightPropertyEditor extends PropertyEditorBase {
|
|
128
|
+
// istanbul ignore next
|
|
129
|
+
get reactNode() {
|
|
130
|
+
return React.createElement(WeightEditor, null);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
PropertyEditorManager.registerEditor(StandardTypeNames.Number, WeightPropertyEditor, StandardEditorNames.WeightPicker);
|
|
134
134
|
//# sourceMappingURL=WeightEditor.js.map
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Inputs
|
|
3
|
-
*/
|
|
4
|
-
import * as React from "react";
|
|
5
|
-
import { QuantityTypeArg } from "@itwin/core-frontend";
|
|
6
|
-
import { CommonProps } from "@itwin/core-react";
|
|
7
|
-
/** Props for [[QuantityInput]] control
|
|
8
|
-
* @beta
|
|
9
|
-
*/
|
|
10
|
-
export interface QuantityProps extends CommonProps {
|
|
11
|
-
/** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend) */
|
|
12
|
-
initialValue: number;
|
|
13
|
-
/** Type of quantity being input. */
|
|
14
|
-
quantityType: QuantityTypeArg;
|
|
15
|
-
/** Function to call in the quantity value is changed. The value returned will be in 'persistence' units. */
|
|
16
|
-
onQuantityChange: (newQuantityValue: number) => void;
|
|
17
|
-
/** Set to `true` if value is for display only */
|
|
18
|
-
readonly?: boolean;
|
|
19
|
-
/** Provides ability to return reference to HTMLInputElement */
|
|
20
|
-
ref?: React.Ref<HTMLInputElement>;
|
|
21
|
-
}
|
|
22
|
-
/** Input control that allows users to input a quantity and show the formatted string that represents the value.
|
|
23
|
-
* @beta
|
|
24
|
-
*/
|
|
25
|
-
export declare function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }: QuantityProps): JSX.Element;
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Inputs
|
|
3
|
+
*/
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { QuantityTypeArg } from "@itwin/core-frontend";
|
|
6
|
+
import { CommonProps } from "@itwin/core-react";
|
|
7
|
+
/** Props for [[QuantityInput]] control
|
|
8
|
+
* @beta
|
|
9
|
+
*/
|
|
10
|
+
export interface QuantityProps extends CommonProps {
|
|
11
|
+
/** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend) */
|
|
12
|
+
initialValue: number;
|
|
13
|
+
/** Type of quantity being input. */
|
|
14
|
+
quantityType: QuantityTypeArg;
|
|
15
|
+
/** Function to call in the quantity value is changed. The value returned will be in 'persistence' units. */
|
|
16
|
+
onQuantityChange: (newQuantityValue: number) => void;
|
|
17
|
+
/** Set to `true` if value is for display only */
|
|
18
|
+
readonly?: boolean;
|
|
19
|
+
/** Provides ability to return reference to HTMLInputElement */
|
|
20
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
21
|
+
}
|
|
22
|
+
/** Input control that allows users to input a quantity and show the formatted string that represents the value.
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
export declare function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }: QuantityProps): JSX.Element;
|
|
26
26
|
//# sourceMappingURL=QuantityInput.d.ts.map
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module Inputs
|
|
7
|
-
*/
|
|
8
|
-
import classnames from "classnames";
|
|
9
|
-
import * as React from "react";
|
|
10
|
-
import { IModelApp } from "@itwin/core-frontend";
|
|
11
|
-
import { Parser } from "@itwin/core-quantity";
|
|
12
|
-
import { UiIModelComponents } from "../UiIModelComponents";
|
|
13
|
-
import { ParsedInput } from "@itwin/components-react";
|
|
14
|
-
/** Input control that allows users to input a quantity and show the formatted string that represents the value.
|
|
15
|
-
* @beta
|
|
16
|
-
*/
|
|
17
|
-
export function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }) {
|
|
18
|
-
const [formatterSpec, setFormatterSpec] = React.useState(() => IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
19
|
-
const [parserSpec, setParserSpec] = React.useState(() => IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
20
|
-
const formatValue = React.useCallback((value) => {
|
|
21
|
-
// istanbul ignore else
|
|
22
|
-
if (formatterSpec) {
|
|
23
|
-
return formatterSpec.applyFormatting(value);
|
|
24
|
-
}
|
|
25
|
-
// istanbul ignore next
|
|
26
|
-
return value.toFixed(2);
|
|
27
|
-
}, [formatterSpec]);
|
|
28
|
-
const parseString = React.useCallback((userInput) => {
|
|
29
|
-
// istanbul ignore else
|
|
30
|
-
if (parserSpec) {
|
|
31
|
-
const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, parserSpec);
|
|
32
|
-
// istanbul ignore else
|
|
33
|
-
if (Parser.isParsedQuantity(parseResult)) {
|
|
34
|
-
return { value: parseResult.value };
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
const statusId = Parser.isParseError(parseResult) ? parseResult.error.toString() : "Unknown";
|
|
38
|
-
return { parseError: `${UiIModelComponents.translate("QuantityInput.NoParserDefined")}${statusId}` };
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
// istanbul ignore next
|
|
42
|
-
return { parseError: UiIModelComponents.translate("QuantityInput.NoParserDefined") };
|
|
43
|
-
}, [parserSpec]);
|
|
44
|
-
const classNames = classnames(className, "components-quantity-input");
|
|
45
|
-
React.useEffect(() => {
|
|
46
|
-
const handleUnitSystemChanged = (() => {
|
|
47
|
-
setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
48
|
-
setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
49
|
-
});
|
|
50
|
-
IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);
|
|
51
|
-
return () => {
|
|
52
|
-
IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);
|
|
53
|
-
};
|
|
54
|
-
}, [quantityType]);
|
|
55
|
-
React.useEffect(() => {
|
|
56
|
-
const handleUnitSystemChanged = ((args) => {
|
|
57
|
-
const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);
|
|
58
|
-
// istanbul ignore else
|
|
59
|
-
if (args.quantityType === quantityKey) {
|
|
60
|
-
setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
61
|
-
setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleUnitSystemChanged);
|
|
65
|
-
return () => {
|
|
66
|
-
IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleUnitSystemChanged);
|
|
67
|
-
};
|
|
68
|
-
}, [quantityType]);
|
|
69
|
-
return React.createElement(ParsedInput, { "data-testid": "components-quantity-input", ref: ref, style: style, className: classNames, onChange: onQuantityChange, initialValue: initialValue, readonly: readonly, formatValue: formatValue, parseString: parseString });
|
|
70
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module Inputs
|
|
7
|
+
*/
|
|
8
|
+
import classnames from "classnames";
|
|
9
|
+
import * as React from "react";
|
|
10
|
+
import { IModelApp } from "@itwin/core-frontend";
|
|
11
|
+
import { Parser } from "@itwin/core-quantity";
|
|
12
|
+
import { UiIModelComponents } from "../UiIModelComponents";
|
|
13
|
+
import { ParsedInput } from "@itwin/components-react";
|
|
14
|
+
/** Input control that allows users to input a quantity and show the formatted string that represents the value.
|
|
15
|
+
* @beta
|
|
16
|
+
*/
|
|
17
|
+
export function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref }) {
|
|
18
|
+
const [formatterSpec, setFormatterSpec] = React.useState(() => IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
19
|
+
const [parserSpec, setParserSpec] = React.useState(() => IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
20
|
+
const formatValue = React.useCallback((value) => {
|
|
21
|
+
// istanbul ignore else
|
|
22
|
+
if (formatterSpec) {
|
|
23
|
+
return formatterSpec.applyFormatting(value);
|
|
24
|
+
}
|
|
25
|
+
// istanbul ignore next
|
|
26
|
+
return value.toFixed(2);
|
|
27
|
+
}, [formatterSpec]);
|
|
28
|
+
const parseString = React.useCallback((userInput) => {
|
|
29
|
+
// istanbul ignore else
|
|
30
|
+
if (parserSpec) {
|
|
31
|
+
const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, parserSpec);
|
|
32
|
+
// istanbul ignore else
|
|
33
|
+
if (Parser.isParsedQuantity(parseResult)) {
|
|
34
|
+
return { value: parseResult.value };
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const statusId = Parser.isParseError(parseResult) ? parseResult.error.toString() : "Unknown";
|
|
38
|
+
return { parseError: `${UiIModelComponents.translate("QuantityInput.NoParserDefined")}${statusId}` };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// istanbul ignore next
|
|
42
|
+
return { parseError: UiIModelComponents.translate("QuantityInput.NoParserDefined") };
|
|
43
|
+
}, [parserSpec]);
|
|
44
|
+
const classNames = classnames(className, "components-quantity-input");
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
const handleUnitSystemChanged = (() => {
|
|
47
|
+
setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
48
|
+
setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
49
|
+
});
|
|
50
|
+
IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(handleUnitSystemChanged);
|
|
51
|
+
return () => {
|
|
52
|
+
IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(handleUnitSystemChanged);
|
|
53
|
+
};
|
|
54
|
+
}, [quantityType]);
|
|
55
|
+
React.useEffect(() => {
|
|
56
|
+
const handleUnitSystemChanged = ((args) => {
|
|
57
|
+
const quantityKey = IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);
|
|
58
|
+
// istanbul ignore else
|
|
59
|
+
if (args.quantityType === quantityKey) {
|
|
60
|
+
setFormatterSpec(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
61
|
+
setParserSpec(IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(handleUnitSystemChanged);
|
|
65
|
+
return () => {
|
|
66
|
+
IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(handleUnitSystemChanged);
|
|
67
|
+
};
|
|
68
|
+
}, [quantityType]);
|
|
69
|
+
return React.createElement(ParsedInput, { "data-testid": "components-quantity-input", ref: ref, style: style, className: classNames, onChange: onQuantityChange, initialValue: initialValue, readonly: readonly, formatValue: formatValue, parseString: parseString });
|
|
70
|
+
}
|
|
71
71
|
//# sourceMappingURL=QuantityInput.js.map
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Inputs
|
|
3
|
-
*/
|
|
4
|
-
import "./QuantityNumberInput.scss";
|
|
5
|
-
import * as React from "react";
|
|
6
|
-
import { QuantityTypeArg } from "@itwin/core-frontend";
|
|
7
|
-
import { InputProps } from "@itwin/itwinui-react";
|
|
8
|
-
/** Step function prototype for [[QuantityNumberInput]] component
|
|
9
|
-
* @beta
|
|
10
|
-
*/
|
|
11
|
-
export
|
|
12
|
-
/** Properties for the [[QuantityNumberInput]] component
|
|
13
|
-
* @beta
|
|
14
|
-
*/
|
|
15
|
-
export interface QuantityNumberInputProps extends Omit<InputProps, "value" | "min" | "max" | "step" | "onFocus" | "onChange"> {
|
|
16
|
-
/** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend).
|
|
17
|
-
* Set to `undefined` to show placeholder text */
|
|
18
|
-
persistenceValue?: number;
|
|
19
|
-
/** CSS class name for the QuantityNumberInput component container div */
|
|
20
|
-
containerClassName?: string;
|
|
21
|
-
/** number or function Number.MIN_SAFE_INTEGER */
|
|
22
|
-
min?: number;
|
|
23
|
-
/** number or function defaults to Number.MAX_SAFE_INTEGER */
|
|
24
|
-
max?: number;
|
|
25
|
-
/** increment step value used while incrementing or decrementing (up/down buttons or arrow keys) defaults to 1. */
|
|
26
|
-
step?: StepFunctionProp;
|
|
27
|
-
/** Set to true to "snap" to the closest step value while incrementing or decrementing (up/down buttons or arrow keys). */
|
|
28
|
-
snap?: boolean;
|
|
29
|
-
/** Function to call when the quantity value is changed. The value returned will be in 'persistence' units. */
|
|
30
|
-
onChange?: (value: number) => void;
|
|
31
|
-
/** if true up/down buttons are shown larger and side by side */
|
|
32
|
-
showTouchButtons?: boolean;
|
|
33
|
-
/** Provides ability to return reference to HTMLInputElement */
|
|
34
|
-
ref?: React.Ref<HTMLInputElement>;
|
|
35
|
-
/** Type of quantity being input. */
|
|
36
|
-
quantityType: QuantityTypeArg;
|
|
37
|
-
}
|
|
38
|
-
/** The QuantityNumberInput component accepts input for quantity values. The quantity value is shown as a single numeric value and the quantity's
|
|
39
|
-
* "display" unit is shown next to the input control. The "display" unit is determined by the active unit system as defined by the [QuantityFormatter]($frontend).
|
|
40
|
-
* The control also display buttons to increment and decrement the "displayed" value. The value reported by via the onChange function is in "persistence"
|
|
41
|
-
* units that can be stored in the iModel.
|
|
42
|
-
* @beta
|
|
43
|
-
*/
|
|
44
|
-
export declare const QuantityNumberInput: (props: QuantityNumberInputProps) => JSX.Element | null;
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Inputs
|
|
3
|
+
*/
|
|
4
|
+
import "./QuantityNumberInput.scss";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { QuantityTypeArg } from "@itwin/core-frontend";
|
|
7
|
+
import { InputProps } from "@itwin/itwinui-react";
|
|
8
|
+
/** Step function prototype for [[QuantityNumberInput]] component
|
|
9
|
+
* @beta
|
|
10
|
+
*/
|
|
11
|
+
export type StepFunctionProp = number | ((direction: string) => number | undefined);
|
|
12
|
+
/** Properties for the [[QuantityNumberInput]] component
|
|
13
|
+
* @beta
|
|
14
|
+
*/
|
|
15
|
+
export interface QuantityNumberInputProps extends Omit<InputProps, "value" | "min" | "max" | "step" | "onFocus" | "onChange"> {
|
|
16
|
+
/** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend).
|
|
17
|
+
* Set to `undefined` to show placeholder text */
|
|
18
|
+
persistenceValue?: number;
|
|
19
|
+
/** CSS class name for the QuantityNumberInput component container div */
|
|
20
|
+
containerClassName?: string;
|
|
21
|
+
/** number or function Number.MIN_SAFE_INTEGER */
|
|
22
|
+
min?: number;
|
|
23
|
+
/** number or function defaults to Number.MAX_SAFE_INTEGER */
|
|
24
|
+
max?: number;
|
|
25
|
+
/** increment step value used while incrementing or decrementing (up/down buttons or arrow keys) defaults to 1. */
|
|
26
|
+
step?: StepFunctionProp;
|
|
27
|
+
/** Set to true to "snap" to the closest step value while incrementing or decrementing (up/down buttons or arrow keys). */
|
|
28
|
+
snap?: boolean;
|
|
29
|
+
/** Function to call when the quantity value is changed. The value returned will be in 'persistence' units. */
|
|
30
|
+
onChange?: (value: number) => void;
|
|
31
|
+
/** if true up/down buttons are shown larger and side by side */
|
|
32
|
+
showTouchButtons?: boolean;
|
|
33
|
+
/** Provides ability to return reference to HTMLInputElement */
|
|
34
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
35
|
+
/** Type of quantity being input. */
|
|
36
|
+
quantityType: QuantityTypeArg;
|
|
37
|
+
}
|
|
38
|
+
/** The QuantityNumberInput component accepts input for quantity values. The quantity value is shown as a single numeric value and the quantity's
|
|
39
|
+
* "display" unit is shown next to the input control. The "display" unit is determined by the active unit system as defined by the [QuantityFormatter]($frontend).
|
|
40
|
+
* The control also display buttons to increment and decrement the "displayed" value. The value reported by via the onChange function is in "persistence"
|
|
41
|
+
* units that can be stored in the iModel.
|
|
42
|
+
* @beta
|
|
43
|
+
*/
|
|
44
|
+
export declare const QuantityNumberInput: (props: QuantityNumberInputProps) => JSX.Element | null;
|
|
45
45
|
//# sourceMappingURL=QuantityNumberInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityNumberInput.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityNumberInput.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAyC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EAAS,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"QuantityNumberInput.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityNumberInput.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAyC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EAAS,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3H;qDACiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kHAAkH;IAClH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,0HAA0H;IAC1H,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC,oCAAoC;IACpC,YAAY,EAAE,eAAe,CAAC;CAC/B;AAkRD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,GAAG,CAAC,OAAO,GAAG,IAAoC,CAAC"}
|