@itwin/imodel-components-react 4.17.6 → 5.0.0-dev.3
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 +1 -31
- package/README.md +15 -2
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +2 -4
- package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +0 -2
- package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +0 -2
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +1 -1
- package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +2 -4
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +5 -6
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +0 -2
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +9 -10
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +0 -2
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +3 -5
- package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +1 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +0 -2
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.scss +2 -4
- package/lib/cjs/imodel-components-react/timeline/Timeline.scss +7 -9
- package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +2 -4
- package/lib/esm/imodel-components-react/editors/ColorEditor.scss +0 -2
- package/lib/esm/imodel-components-react/editors/WeightEditor.scss +0 -2
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +1 -1
- package/lib/esm/imodel-components-react/lineweight/Swatch.scss +2 -4
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +5 -6
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +0 -2
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +9 -10
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +0 -2
- package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +3 -5
- package/lib/esm/imodel-components-react/timeline/Scrubber.scss +1 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +0 -2
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +2 -4
- package/lib/esm/imodel-components-react/timeline/Timeline.scss +7 -9
- package/lib/{cjs/imodel-components-react → imodel-components-react}/UiIModelComponents.d.ts +1 -1
- package/lib/imodel-components-react/UiIModelComponents.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/UiIModelComponents.js +4 -7
- package/lib/imodel-components-react/UiIModelComponents.js.map +1 -0
- package/lib/imodel-components-react/color/AlphaSlider.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/AlphaSlider.js +1 -1
- package/lib/imodel-components-react/color/AlphaSlider.js.map +1 -0
- package/lib/imodel-components-react/color/AlphaSlider.scss +71 -0
- package/lib/imodel-components-react/color/ColorPickerButton.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/ColorPickerButton.js +4 -3
- package/lib/imodel-components-react/color/ColorPickerButton.js.map +1 -0
- package/lib/imodel-components-react/color/ColorPickerButton.scss +88 -0
- package/lib/imodel-components-react/color/ColorPickerDialog.d.ts.map +1 -0
- package/lib/imodel-components-react/color/ColorPickerDialog.js.map +1 -0
- package/lib/imodel-components-react/color/ColorPickerPopup.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/ColorPickerPopup.js +4 -3
- package/lib/imodel-components-react/color/ColorPickerPopup.js.map +1 -0
- package/lib/imodel-components-react/color/ColorPickerPopup.scss +62 -0
- package/lib/imodel-components-react/color/HueSlider.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/HueSlider.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/HueSlider.js.map +1 -1
- package/lib/imodel-components-react/color/HueSlider.scss +78 -0
- package/lib/imodel-components-react/color/SaturationPicker.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/SaturationPicker.js +1 -1
- package/lib/imodel-components-react/color/SaturationPicker.js.map +1 -0
- package/lib/imodel-components-react/color/SaturationPicker.scss +36 -0
- package/lib/imodel-components-react/color/Swatch.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/Swatch.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/color/Swatch.js.map +1 -1
- package/lib/imodel-components-react/color/Swatch.scss +22 -0
- package/lib/imodel-components-react/color/getCSSColorFromDef.d.ts.map +1 -0
- package/lib/imodel-components-react/color/getCSSColorFromDef.js.map +1 -0
- package/lib/imodel-components-react/editors/ColorEditor.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/editors/ColorEditor.js +3 -4
- package/lib/imodel-components-react/editors/ColorEditor.js.map +1 -0
- package/lib/imodel-components-react/editors/ColorEditor.scss +16 -0
- package/lib/imodel-components-react/editors/WeightEditor.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/editors/WeightEditor.js +3 -4
- package/lib/imodel-components-react/editors/WeightEditor.js.map +1 -0
- package/lib/imodel-components-react/editors/WeightEditor.scss +14 -0
- package/lib/imodel-components-react/inputs/QuantityInput.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/inputs/QuantityInput.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/inputs/QuantityInput.js.map +1 -1
- package/lib/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +1 -0
- package/lib/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -0
- package/lib/imodel-components-react/inputs/QuantityNumberInput.scss +106 -0
- package/lib/imodel-components-react/lineweight/Swatch.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/Swatch.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/Swatch.js.map +1 -1
- package/lib/imodel-components-react/lineweight/Swatch.scss +46 -0
- package/lib/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/WeightPickerButton.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/lineweight/WeightPickerButton.js.map +1 -1
- package/lib/imodel-components-react/lineweight/WeightPickerButton.scss +50 -0
- package/lib/imodel-components-react/navigationaids/Cube.d.ts.map +1 -0
- package/lib/imodel-components-react/navigationaids/Cube.js.map +1 -0
- package/lib/imodel-components-react/navigationaids/Cube.scss +19 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/CubeNavigationAid.d.ts +1 -1
- package/lib/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/CubeNavigationAid.js +3 -3
- package/lib/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -0
- package/lib/imodel-components-react/navigationaids/CubeNavigationAid.scss +177 -0
- package/lib/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/DrawingNavigationAid.js +2 -2
- package/lib/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -0
- package/lib/imodel-components-react/navigationaids/DrawingNavigationAid.scss +133 -0
- package/lib/imodel-components-react/quantityformat/FormatPanel.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatPanel.js +6 -6
- package/lib/imodel-components-react/quantityformat/FormatPanel.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/FormatPanel.scss +53 -0
- package/lib/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatPrecision.js +3 -3
- package/lib/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/FormatSample.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatSample.js +1 -1
- package/lib/imodel-components-react/quantityformat/FormatSample.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/FormatType.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatType.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatType.js.map +1 -1
- package/lib/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatUnitLabel.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatUnitLabel.js.map +1 -1
- package/lib/imodel-components-react/quantityformat/FormatUnits.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/FormatUnits.js +2 -2
- package/lib/imodel-components-react/quantityformat/FormatUnits.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/MiscFormatOptions.js +7 -7
- package/lib/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/QuantityFormatPanel.js +1 -1
- package/lib/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalPrecision.js +1 -1
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalPrecision.js.map +1 -1
- package/lib/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalSeparator.js +1 -1
- package/lib/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/FractionPrecision.js +1 -1
- package/lib/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/ScientificType.js +1 -1
- package/lib/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/SignOption.js +1 -1
- package/lib/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSeparatorSelector.js +1 -1
- package/lib/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSizeSelector.js +1 -1
- package/lib/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSelector.js +1 -1
- package/lib/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSeparator.js +2 -2
- package/lib/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +1 -0
- package/lib/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -0
- package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/BaseSolarDataProvider.d.ts +1 -1
- package/lib/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/BaseSolarDataProvider.js.map +1 -1
- package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/BaseTimelineDataProvider.d.ts +1 -1
- package/lib/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +1 -0
- package/lib/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -0
- package/lib/imodel-components-react/timeline/InlineEdit.d.ts.map +1 -0
- package/lib/imodel-components-react/timeline/InlineEdit.js.map +1 -0
- package/lib/imodel-components-react/timeline/InlineEdit.scss +22 -0
- package/lib/imodel-components-react/timeline/PlayButton.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/PlayButton.js +1 -1
- package/lib/imodel-components-react/timeline/PlayButton.js.map +1 -0
- package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/Scrubber.d.ts +2 -4
- package/lib/imodel-components-react/timeline/Scrubber.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/Scrubber.js +19 -12
- package/lib/imodel-components-react/timeline/Scrubber.js.map +1 -0
- package/lib/imodel-components-react/timeline/Scrubber.scss +105 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/SolarTimeline.d.ts +1 -1
- package/lib/imodel-components-react/timeline/SolarTimeline.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/SolarTimeline.js +3 -3
- package/lib/imodel-components-react/timeline/SolarTimeline.js.map +1 -0
- package/lib/imodel-components-react/timeline/SolarTimeline.scss +43 -0
- package/lib/imodel-components-react/timeline/SpeedTimeline.d.ts.map +1 -0
- package/lib/imodel-components-react/timeline/SpeedTimeline.js.map +1 -0
- package/lib/imodel-components-react/timeline/SpeedTimeline.scss +38 -0
- package/lib/imodel-components-react/timeline/Timeline.scss +163 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/TimelineComponent.d.ts +1 -1
- package/lib/imodel-components-react/timeline/TimelineComponent.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/TimelineComponent.js +5 -5
- package/lib/imodel-components-react/timeline/TimelineComponent.js.map +1 -0
- package/lib/imodel-components-react/timeline/TimelineComponent.scss +48 -0
- package/lib/imodel-components-react/timeline/interfaces.d.ts.map +1 -0
- package/lib/imodel-components-react/timeline/interfaces.js.map +1 -0
- package/lib/imodel-components-react/useTranslation.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/useTranslation.js +2 -2
- package/lib/imodel-components-react/useTranslation.js.map +1 -0
- package/lib/imodel-components-react/viewport/ViewportComponent.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/viewport/ViewportComponent.js +1 -1
- package/lib/imodel-components-react/viewport/ViewportComponent.js.map +1 -0
- package/lib/{cjs/imodel-components-react → imodel-components-react}/viewport/ViewportComponentEvents.d.ts +1 -1
- package/lib/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +1 -0
- package/lib/{esm/imodel-components-react → imodel-components-react}/viewport/ViewportComponentEvents.js +1 -1
- package/lib/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -0
- package/lib/imodel-components-react.d.ts +77 -0
- package/lib/imodel-components-react.d.ts.map +1 -0
- package/lib/imodel-components-react.js +90 -0
- package/lib/imodel-components-react.js.map +1 -0
- package/lib/internal.d.ts +2 -0
- package/lib/internal.d.ts.map +1 -0
- package/lib/internal.js +6 -0
- package/lib/internal.js.map +1 -0
- package/package.json +51 -46
- package/lib/cjs/imodel-components-react/UiIModelComponents.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/UiIModelComponents.js +0 -78
- package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js +0 -182
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +0 -119
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +0 -76
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +0 -141
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/HueSlider.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/HueSlider.js +0 -201
- package/lib/cjs/imodel-components-react/color/HueSlider.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js +0 -197
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/Swatch.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/Swatch.js +0 -63
- package/lib/cjs/imodel-components-react/color/Swatch.js.map +0 -1
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +0 -24
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js.map +0 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js +0 -150
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +0 -1
- package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js +0 -153
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +0 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +0 -94
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +0 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +0 -265
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +0 -1
- package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js +0 -84
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +0 -1
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +0 -160
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +0 -1
- package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js +0 -151
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +0 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +0 -153
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +0 -683
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +0 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +0 -736
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +0 -112
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +0 -56
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +0 -94
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +0 -115
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +0 -117
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +0 -137
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +0 -193
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +0 -145
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +0 -104
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +0 -59
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +0 -87
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +0 -60
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +0 -68
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +0 -76
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +0 -59
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +0 -65
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +0 -106
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +0 -135
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +0 -150
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +0 -64
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +0 -86
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/PlayButton.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/PlayButton.js +0 -50
- package/lib/cjs/imodel-components-react/timeline/PlayButton.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js +0 -185
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +0 -60
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +0 -358
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +0 -57
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +0 -100
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +0 -286
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/timeline/interfaces.js +0 -46
- package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +0 -1
- package/lib/cjs/imodel-components-react/useTranslation.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/useTranslation.js +0 -52
- package/lib/cjs/imodel-components-react/useTranslation.js.map +0 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +0 -267
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +0 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +0 -119
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +0 -1
- package/lib/cjs/imodel-components-react.d.ts +0 -80
- package/lib/cjs/imodel-components-react.d.ts.map +0 -1
- package/lib/cjs/imodel-components-react.js +0 -103
- package/lib/cjs/imodel-components-react.js.map +0 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +0 -29
- package/lib/esm/imodel-components-react/UiIModelComponents.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.js.map +0 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.json +0 -150
- package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +0 -36
- package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +0 -40
- package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +0 -26
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +0 -47
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +0 -1
- package/lib/esm/imodel-components-react/color/HueSlider.d.ts +0 -25
- package/lib/esm/imodel-components-react/color/HueSlider.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +0 -23
- package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +0 -1
- package/lib/esm/imodel-components-react/color/Swatch.d.ts +0 -25
- package/lib/esm/imodel-components-react/color/Swatch.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +0 -7
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +0 -1
- package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +0 -42
- package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +0 -1
- package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +0 -44
- package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +0 -1
- package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +0 -26
- package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +0 -47
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +0 -1
- package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +0 -33
- package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +0 -59
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +0 -46
- package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +0 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +0 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +0 -144
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +0 -29
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +0 -19
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +0 -20
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +0 -19
- package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +0 -19
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +0 -21
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +0 -23
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +0 -24
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +0 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +0 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +0 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +0 -19
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +0 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +0 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +0 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +0 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +0 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +0 -24
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +0 -53
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +0 -32
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +0 -27
- package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/PlayButton.d.ts +0 -12
- package/lib/esm/imodel-components-react/timeline/PlayButton.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/PlayButton.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +0 -54
- package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +0 -16
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +0 -1
- package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +0 -146
- package/lib/esm/imodel-components-react/timeline/interfaces.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/timeline/interfaces.js.map +0 -1
- package/lib/esm/imodel-components-react/useTranslation.d.ts +0 -7
- package/lib/esm/imodel-components-react/useTranslation.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/useTranslation.js.map +0 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +0 -43
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +0 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +0 -119
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts.map +0 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +0 -1
- package/lib/esm/imodel-components-react.d.ts +0 -80
- package/lib/esm/imodel-components-react.d.ts.map +0 -1
- package/lib/esm/imodel-components-react.js +0 -85
- package/lib/esm/imodel-components-react.js.map +0 -1
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/UiIModelComponents.json +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/AlphaSlider.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/ColorPickerButton.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/ColorPickerDialog.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/color/ColorPickerDialog.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/ColorPickerPopup.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/HueSlider.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/SaturationPicker.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/Swatch.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/color/getCSSColorFromDef.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/color/getCSSColorFromDef.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/editors/ColorEditor.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/editors/WeightEditor.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/inputs/QuantityInput.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/inputs/QuantityNumberInput.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/inputs/QuantityNumberInput.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/lineweight/Swatch.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/lineweight/WeightPickerButton.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/navigationaids/Cube.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/navigationaids/Cube.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/navigationaids/DrawingNavigationAid.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatPanel.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatPrecision.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatSample.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatType.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatUnitLabel.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/FormatUnits.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/MiscFormatOptions.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/QuantityFormatPanel.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalPrecision.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/DecimalSeparator.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/FractionPrecision.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/ScientificType.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/SignOption.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSeparatorSelector.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/StationSizeSelector.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSelector.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/ThousandsSeparator.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/quantityformat/misc/UnitDescr.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/quantityformat/misc/UnitDescr.js +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/BaseSolarDataProvider.js +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/BaseTimelineDataProvider.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/InlineEdit.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/InlineEdit.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/PlayButton.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/SpeedTimeline.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/SpeedTimeline.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/timeline/interfaces.d.ts +0 -0
- /package/lib/{esm/imodel-components-react → imodel-components-react}/timeline/interfaces.js +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/useTranslation.d.ts +0 -0
- /package/lib/{cjs/imodel-components-react → imodel-components-react}/viewport/ViewportComponent.d.ts +0 -0
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module PropertyEditors
|
|
8
|
-
*/
|
|
9
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
-
if (mod && mod.__esModule) return mod;
|
|
27
|
-
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
-
__setModuleDefault(result, mod);
|
|
30
|
-
return result;
|
|
31
|
-
};
|
|
32
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
|
-
};
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.WeightPropertyEditor = exports.WeightEditor = void 0;
|
|
37
|
-
require("./WeightEditor.scss");
|
|
38
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
39
|
-
const React = __importStar(require("react"));
|
|
40
|
-
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
41
|
-
const components_react_1 = require("@itwin/components-react");
|
|
42
|
-
const WeightPickerButton_1 = require("../lineweight/WeightPickerButton");
|
|
43
|
-
/** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component
|
|
44
|
-
* @public
|
|
45
|
-
*/
|
|
46
|
-
class WeightEditor extends React.PureComponent {
|
|
47
|
-
constructor(props) {
|
|
48
|
-
super(props);
|
|
49
|
-
this._control = null;
|
|
50
|
-
this._isMounted = false;
|
|
51
|
-
this._availableWeights = [];
|
|
52
|
-
this._divElement = React.createRef();
|
|
53
|
-
this.state = {
|
|
54
|
-
weightValue: 0,
|
|
55
|
-
readonly: false,
|
|
56
|
-
};
|
|
57
|
-
this._onLineWeightPick = (weight) => {
|
|
58
|
-
const propertyRecord = this.props.propertyRecord;
|
|
59
|
-
this.setState({
|
|
60
|
-
weightValue: weight,
|
|
61
|
-
}, async () => {
|
|
62
|
-
if (propertyRecord && this.props.onCommit) {
|
|
63
|
-
const propertyValue = await this.getPropertyValue();
|
|
64
|
-
if (propertyValue !== undefined) {
|
|
65
|
-
this.props.onCommit({ propertyRecord, newValue: propertyValue });
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
// TODO: add support for following if we need to specify set of weights to display
|
|
71
|
-
// const record = this.props.propertyRecord;
|
|
72
|
-
// if (record && record.property && record.property.editor && record.property.editor.params) {
|
|
73
|
-
// const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;
|
|
74
|
-
// // if (weightParams) {
|
|
75
|
-
// weightParams.weightValues.forEach((weight: number) => {
|
|
76
|
-
// this._availableWeights.push(weight);
|
|
77
|
-
// });
|
|
78
|
-
// }
|
|
79
|
-
// }
|
|
80
|
-
}
|
|
81
|
-
async getPropertyValue() {
|
|
82
|
-
const record = this.props.propertyRecord;
|
|
83
|
-
let propertyValue;
|
|
84
|
-
if (record && record.value.valueFormat === appui_abstract_1.PropertyValueFormat.Primitive) {
|
|
85
|
-
propertyValue = {
|
|
86
|
-
valueFormat: appui_abstract_1.PropertyValueFormat.Primitive,
|
|
87
|
-
value: this.state.weightValue,
|
|
88
|
-
displayValue: "",
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
return propertyValue;
|
|
92
|
-
}
|
|
93
|
-
get htmlElement() {
|
|
94
|
-
return this._divElement.current;
|
|
95
|
-
}
|
|
96
|
-
get hasFocus() {
|
|
97
|
-
let containsFocus = false;
|
|
98
|
-
if (this._divElement.current)
|
|
99
|
-
containsFocus = this._divElement.current.contains(document.activeElement);
|
|
100
|
-
return containsFocus;
|
|
101
|
-
}
|
|
102
|
-
setFocus() {
|
|
103
|
-
if (this._control && !this.state.isDisabled) {
|
|
104
|
-
this._control.setFocus();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
componentDidMount() {
|
|
108
|
-
this._isMounted = true;
|
|
109
|
-
void this.setStateFromProps();
|
|
110
|
-
}
|
|
111
|
-
componentWillUnmount() {
|
|
112
|
-
this._isMounted = false;
|
|
113
|
-
}
|
|
114
|
-
componentDidUpdate(prevProps) {
|
|
115
|
-
if (this.props.propertyRecord !== prevProps.propertyRecord) {
|
|
116
|
-
void this.setStateFromProps();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
async setStateFromProps() {
|
|
120
|
-
const record = this.props.propertyRecord;
|
|
121
|
-
let initialValue = 0;
|
|
122
|
-
if (record && record.value.valueFormat === appui_abstract_1.PropertyValueFormat.Primitive) {
|
|
123
|
-
initialValue = record.value.value;
|
|
124
|
-
}
|
|
125
|
-
const readonly = record && undefined !== record.isReadonly ? record.isReadonly : false;
|
|
126
|
-
const isDisabled = record ? record.isDisabled : undefined;
|
|
127
|
-
if (this._isMounted)
|
|
128
|
-
this.setState({ weightValue: initialValue, readonly, isDisabled }, () => {
|
|
129
|
-
if (this.props.setFocus) {
|
|
130
|
-
this.setFocus();
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
render() {
|
|
135
|
-
return (React.createElement("div", { className: (0, classnames_1.default)("components-weight-editor", this.props.className), style: this.props.style, ref: this._divElement },
|
|
136
|
-
React.createElement(WeightPickerButton_1.WeightPickerButton, { ref: (control) => (this._control = control), activeWeight: this.state.weightValue, weights: this._availableWeights.length > 0
|
|
137
|
-
? this._availableWeights
|
|
138
|
-
: undefined, disabled: this.state.isDisabled ? true : false, readonly: this.state.readonly, onLineWeightPick: this._onLineWeightPick, "data-testid": "components-weight-editor" })));
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
exports.WeightEditor = WeightEditor;
|
|
142
|
-
/** Weight Property Editor registered for the "number" type name and "weight-picker" editor name.
|
|
143
|
-
* It uses the [[WeightEditor]] React component.
|
|
144
|
-
* @public
|
|
145
|
-
*/
|
|
146
|
-
class WeightPropertyEditor extends components_react_1.PropertyEditorBase {
|
|
147
|
-
get reactNode() {
|
|
148
|
-
return React.createElement(WeightEditor, null);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
exports.WeightPropertyEditor = WeightPropertyEditor;
|
|
152
|
-
components_react_1.PropertyEditorManager.registerEditor(appui_abstract_1.StandardTypeNames.Number, WeightPropertyEditor, appui_abstract_1.StandardEditorNames.WeightPicker);
|
|
153
|
-
//# sourceMappingURL=WeightEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WeightEditor.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/editors/WeightEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PropertyEditors\n */\n\nimport \"./WeightEditor.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { PropertyRecord, PropertyValue } from \"@itwin/appui-abstract\";\nimport {\n PropertyValueFormat,\n StandardEditorNames,\n StandardTypeNames,\n} from \"@itwin/appui-abstract\";\nimport type { PropertyEditorProps, TypeEditor } from \"@itwin/components-react\";\nimport {\n PropertyEditorBase,\n PropertyEditorManager,\n} from \"@itwin/components-react\";\nimport { WeightPickerButton } from \"../lineweight/WeightPickerButton\";\n\n// cspell:ignore lineweight\n\n/** @internal */\ninterface WeightEditorState {\n weightValue: number;\n readonly: boolean;\n isDisabled?: boolean;\n}\n\n/** WeightEditor React component that is a property editor for picking a weight using a [[WeightPickerButton]] component\n * @public\n */\nexport class WeightEditor\n extends React.PureComponent<PropertyEditorProps, WeightEditorState>\n implements TypeEditor\n{\n private _control: any = null;\n private _isMounted = false;\n private _availableWeights: number[] = [];\n private _divElement = React.createRef<HTMLDivElement>();\n\n public override readonly state: Readonly<WeightEditorState> = {\n weightValue: 0,\n readonly: false,\n };\n\n constructor(props: PropertyEditorProps) {\n super(props);\n\n // TODO: add support for following if we need to specify set of weights to display\n // const record = this.props.propertyRecord;\n // if (record && record.property && record.property.editor && record.property.editor.params) {\n // const weightParams = record.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.ColorData) as WeightEditorParams;\n // // if (weightParams) {\n // weightParams.weightValues.forEach((weight: number) => {\n // this._availableWeights.push(weight);\n // });\n // }\n // }\n }\n\n public async getPropertyValue(): Promise<PropertyValue | undefined> {\n const record = this.props.propertyRecord;\n let propertyValue: PropertyValue | undefined;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n propertyValue = {\n valueFormat: PropertyValueFormat.Primitive,\n value: this.state.weightValue,\n displayValue: \"\",\n };\n }\n\n return propertyValue;\n }\n\n public get htmlElement(): HTMLElement | null {\n return this._divElement.current;\n }\n\n public get hasFocus(): boolean {\n let containsFocus = false;\n if (this._divElement.current)\n containsFocus = this._divElement.current.contains(document.activeElement);\n return containsFocus;\n }\n\n private setFocus(): void {\n if (this._control && !this.state.isDisabled) {\n this._control.setFocus();\n }\n }\n\n private _onLineWeightPick = (weight: number) => {\n const propertyRecord = this.props.propertyRecord as PropertyRecord;\n\n this.setState(\n {\n weightValue: weight,\n },\n async () => {\n if (propertyRecord && this.props.onCommit) {\n const propertyValue = await this.getPropertyValue();\n if (propertyValue !== undefined) {\n this.props.onCommit({ propertyRecord, newValue: propertyValue });\n }\n }\n }\n );\n };\n\n public override componentDidMount() {\n this._isMounted = true;\n void this.setStateFromProps();\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n }\n\n public override componentDidUpdate(prevProps: PropertyEditorProps) {\n if (this.props.propertyRecord !== prevProps.propertyRecord) {\n void this.setStateFromProps();\n }\n }\n\n private async setStateFromProps() {\n const record = this.props.propertyRecord;\n let initialValue = 0;\n\n if (record && record.value.valueFormat === PropertyValueFormat.Primitive) {\n initialValue = record.value.value as number;\n }\n\n const readonly =\n record && undefined !== record.isReadonly ? record.isReadonly : false;\n const isDisabled = record ? record.isDisabled : undefined;\n\n if (this._isMounted)\n this.setState({ weightValue: initialValue, readonly, isDisabled }, () => {\n if (this.props.setFocus) {\n this.setFocus();\n }\n });\n }\n\n public override render() {\n return (\n <div\n className={classnames(\"components-weight-editor\", this.props.className)}\n style={this.props.style}\n ref={this._divElement}\n >\n <WeightPickerButton\n ref={(control) => (this._control = control)}\n activeWeight={this.state.weightValue}\n weights={\n this._availableWeights.length > 0\n ? this._availableWeights\n : undefined\n }\n disabled={this.state.isDisabled ? true : false}\n readonly={this.state.readonly}\n onLineWeightPick={this._onLineWeightPick}\n data-testid=\"components-weight-editor\"\n />\n </div>\n );\n }\n}\n\n/** Weight Property Editor registered for the \"number\" type name and \"weight-picker\" editor name.\n * It uses the [[WeightEditor]] React component.\n * @public\n */\nexport class WeightPropertyEditor extends PropertyEditorBase {\n public get reactNode(): React.ReactNode {\n return <WeightEditor />;\n }\n}\n\nPropertyEditorManager.registerEditor(\n StandardTypeNames.Number,\n WeightPropertyEditor,\n StandardEditorNames.WeightPicker\n);\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityInput.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityInput.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD;;GAEG;AAEH,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,8HAA8H;IAC9H,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,YAAY,EAAE,eAAe,CAAC;IAC9B,4GAA4G;IAC5G,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,gBAAgB,EAChB,GAAG,GACJ,EAAE,aAAa,qBAiGf"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module Inputs
|
|
8
|
-
*/
|
|
9
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
-
if (mod && mod.__esModule) return mod;
|
|
27
|
-
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
-
__setModuleDefault(result, mod);
|
|
30
|
-
return result;
|
|
31
|
-
};
|
|
32
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
|
-
};
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.QuantityInput = void 0;
|
|
37
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
38
|
-
const React = __importStar(require("react"));
|
|
39
|
-
const core_frontend_1 = require("@itwin/core-frontend");
|
|
40
|
-
const core_quantity_1 = require("@itwin/core-quantity");
|
|
41
|
-
const components_react_1 = require("@itwin/components-react");
|
|
42
|
-
const useTranslation_1 = require("../useTranslation");
|
|
43
|
-
/** Input control that allows users to input a quantity and show the formatted string that represents the value.
|
|
44
|
-
* @beta
|
|
45
|
-
*/
|
|
46
|
-
function QuantityInput({ initialValue, quantityType, readonly, className, style, onQuantityChange, ref, }) {
|
|
47
|
-
const { translate } = (0, useTranslation_1.useTranslation)();
|
|
48
|
-
const [formatterSpec, setFormatterSpec] = React.useState(() => core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
49
|
-
const [parserSpec, setParserSpec] = React.useState(() => core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
50
|
-
const formatValue = React.useCallback((value) => {
|
|
51
|
-
if (formatterSpec) {
|
|
52
|
-
return formatterSpec.applyFormatting(value);
|
|
53
|
-
}
|
|
54
|
-
return value.toFixed(2);
|
|
55
|
-
}, [formatterSpec]);
|
|
56
|
-
const parseString = React.useCallback((userInput) => {
|
|
57
|
-
if (parserSpec) {
|
|
58
|
-
const parseResult = core_frontend_1.IModelApp.quantityFormatter.parseToQuantityValue(userInput, parserSpec);
|
|
59
|
-
if (core_quantity_1.Parser.isParsedQuantity(parseResult)) {
|
|
60
|
-
return { value: parseResult.value };
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
const statusId = core_quantity_1.Parser.isParseError(parseResult)
|
|
64
|
-
? parseResult.error.toString()
|
|
65
|
-
: "Unknown";
|
|
66
|
-
return {
|
|
67
|
-
parseError: `${translate("QuantityInput.NoParserDefined")}${statusId}`,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return {
|
|
72
|
-
parseError: translate("QuantityInput.NoParserDefined"),
|
|
73
|
-
};
|
|
74
|
-
}, [parserSpec, translate]);
|
|
75
|
-
const classNames = (0, classnames_1.default)(className, "components-quantity-input");
|
|
76
|
-
React.useEffect(() => {
|
|
77
|
-
return core_frontend_1.IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(() => {
|
|
78
|
-
setFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
79
|
-
setParserSpec(core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
80
|
-
});
|
|
81
|
-
}, [quantityType]);
|
|
82
|
-
React.useEffect(() => {
|
|
83
|
-
return core_frontend_1.IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener((args) => {
|
|
84
|
-
const quantityKey = core_frontend_1.IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);
|
|
85
|
-
if (args.quantityType === quantityKey) {
|
|
86
|
-
setFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType));
|
|
87
|
-
setParserSpec(core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}, [quantityType]);
|
|
91
|
-
return (React.createElement(components_react_1.ParsedInput, { "data-testid": "components-quantity-input", ref: ref, style: style, className: classNames, onChange: onQuantityChange, initialValue: initialValue, readonly: readonly, formatValue: formatValue, parseString: parseString }));
|
|
92
|
-
}
|
|
93
|
-
exports.QuantityInput = QuantityInput;
|
|
94
|
-
//# sourceMappingURL=QuantityInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityInput.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityInput.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Inputs\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { QuantityTypeArg } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { Parser } from \"@itwin/core-quantity\";\nimport type { ParseResults } from \"@itwin/appui-abstract\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { ParsedInput } from \"@itwin/components-react\";\nimport { useTranslation } from \"../useTranslation\";\n\n/** Props for [[QuantityInput]] control\n * @beta\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface QuantityProps extends CommonProps {\n /** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend) */\n initialValue: number;\n /** Type of quantity being input. */\n quantityType: QuantityTypeArg;\n /** Function to call in the quantity value is changed. The value returned will be in 'persistence' units. */\n onQuantityChange: (newQuantityValue: number) => void;\n /** Set to `true` if value is for display only */\n readonly?: boolean;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n}\n\n/** Input control that allows users to input a quantity and show the formatted string that represents the value.\n * @beta\n */\nexport function QuantityInput({\n initialValue,\n quantityType,\n readonly,\n className,\n style,\n onQuantityChange,\n ref,\n}: QuantityProps) {\n const { translate } = useTranslation();\n const [formatterSpec, setFormatterSpec] = React.useState(() =>\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)\n );\n const [parserSpec, setParserSpec] = React.useState(() =>\n IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType)\n );\n\n const formatValue = React.useCallback(\n (value: number) => {\n if (formatterSpec) {\n return formatterSpec.applyFormatting(value);\n }\n return value.toFixed(2);\n },\n [formatterSpec]\n );\n\n const parseString = React.useCallback(\n (userInput: string): ParseResults => {\n if (parserSpec) {\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(\n userInput,\n parserSpec\n );\n if (Parser.isParsedQuantity(parseResult)) {\n return { value: parseResult.value };\n } else {\n const statusId = Parser.isParseError(parseResult)\n ? parseResult.error.toString()\n : \"Unknown\";\n return {\n parseError: `${translate(\n \"QuantityInput.NoParserDefined\"\n )}${statusId}`,\n };\n }\n }\n return {\n parseError: translate(\"QuantityInput.NoParserDefined\"),\n };\n },\n [parserSpec, translate]\n );\n\n const classNames = classnames(className, \"components-quantity-input\");\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n () => {\n setFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n quantityType\n )\n );\n setParserSpec(\n IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType)\n );\n }\n );\n }, [quantityType]);\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n (args) => {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);\n if (args.quantityType === quantityKey) {\n setFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n quantityType\n )\n );\n setParserSpec(\n IModelApp.quantityFormatter.findParserSpecByQuantityType(\n quantityType\n )\n );\n }\n }\n );\n }, [quantityType]);\n\n return (\n <ParsedInput\n data-testid=\"components-quantity-input\"\n ref={ref}\n style={style}\n className={classNames}\n onChange={onQuantityChange}\n initialValue={initialValue}\n readonly={readonly}\n formatValue={formatValue}\n parseString={parseString}\n />\n );\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
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,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAc5D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAQ7C,KAAK,UAAU,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,KAAK,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,wBACf,SAAQ,IAAI,CACV,UAAU,EACV,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAC1D;IACD;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;AA8XD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAChC,KAAK,EAAE,wBAAwB,KAC5B,KAAK,CAAC,SAAyC,CAAC"}
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module Inputs
|
|
8
|
-
*/
|
|
9
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
-
if (mod && mod.__esModule) return mod;
|
|
27
|
-
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
-
__setModuleDefault(result, mod);
|
|
30
|
-
return result;
|
|
31
|
-
};
|
|
32
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
|
-
};
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.QuantityNumberInput = void 0;
|
|
37
|
-
require("./QuantityNumberInput.scss");
|
|
38
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
39
|
-
const React = __importStar(require("react"));
|
|
40
|
-
const ts_key_enum_1 = require("ts-key-enum");
|
|
41
|
-
const core_react_1 = require("@itwin/core-react");
|
|
42
|
-
const core_frontend_1 = require("@itwin/core-frontend");
|
|
43
|
-
const core_quantity_1 = require("@itwin/core-quantity");
|
|
44
|
-
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
45
|
-
const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
|
|
46
|
-
/** adjust formatter spec to show only primary unit without a label. */
|
|
47
|
-
function adjustFormatterSpec(formatterSpec) {
|
|
48
|
-
if (undefined === formatterSpec)
|
|
49
|
-
return formatterSpec;
|
|
50
|
-
const singleUnitConversion = [];
|
|
51
|
-
singleUnitConversion.push(formatterSpec.unitConversions[0]);
|
|
52
|
-
const newFormat = formatterSpec.format.clone({
|
|
53
|
-
showOnlyPrimaryUnit: true,
|
|
54
|
-
traits: formatterSpec.format.formatTraits & ~core_quantity_1.FormatTraits.ShowUnitLabel,
|
|
55
|
-
type: core_quantity_1.FormatType.Decimal,
|
|
56
|
-
precision: core_quantity_1.FormatType.Decimal !== formatterSpec.format.type
|
|
57
|
-
? core_quantity_1.DecimalPrecision.Four
|
|
58
|
-
: formatterSpec.format.precision,
|
|
59
|
-
});
|
|
60
|
-
return new core_quantity_1.FormatterSpec("single-value", newFormat, singleUnitConversion, formatterSpec.persistenceUnit);
|
|
61
|
-
}
|
|
62
|
-
function convertValueFromDisplayToPersistence(value, unitConversions, unit) {
|
|
63
|
-
if (!unitConversions || 0 === unitConversions.length)
|
|
64
|
-
return value;
|
|
65
|
-
const unitConversion = unitConversions.find((spec) => spec.name === unit.name);
|
|
66
|
-
if (!unitConversion)
|
|
67
|
-
return value;
|
|
68
|
-
const convertedValue = value * unitConversion.conversion.factor + unitConversion.conversion.offset;
|
|
69
|
-
return convertedValue;
|
|
70
|
-
}
|
|
71
|
-
function getUnitLabel(parserSpec) {
|
|
72
|
-
if (undefined === parserSpec)
|
|
73
|
-
return "";
|
|
74
|
-
const format = parserSpec.format;
|
|
75
|
-
if (!format.units || !format.units[0])
|
|
76
|
-
return parserSpec.outUnit.label;
|
|
77
|
-
const [unit, label] = format.units[0];
|
|
78
|
-
return label ?? unit.label;
|
|
79
|
-
}
|
|
80
|
-
const ForwardRefQuantityNumberInput = React.forwardRef(function ForwardRefQuantityNumberInput(props, ref) {
|
|
81
|
-
const { containerClassName, persistenceValue, min, max, onChange, onBlur, onKeyDown, step, snap, showTouchButtons, quantityType, ...otherProps } = props;
|
|
82
|
-
const rawValueRef = React.useRef(persistenceValue);
|
|
83
|
-
const [formatterSpec, setFormatterSpec] = React.useState(() => adjustFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)));
|
|
84
|
-
const [parserSpec, setParserSpec] = React.useState(() => core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
85
|
-
const formatValue = React.useCallback((value) => {
|
|
86
|
-
if (undefined === value)
|
|
87
|
-
return "";
|
|
88
|
-
if (formatterSpec) {
|
|
89
|
-
return formatterSpec.applyFormatting(value);
|
|
90
|
-
}
|
|
91
|
-
return value.toFixed(2);
|
|
92
|
-
}, [formatterSpec]);
|
|
93
|
-
const lastFormattedValueRef = React.useRef(formatValue(persistenceValue));
|
|
94
|
-
const [formattedValue, setFormattedValue] = React.useState(() => lastFormattedValueRef.current);
|
|
95
|
-
React.useEffect(() => {
|
|
96
|
-
return core_frontend_1.IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(() => {
|
|
97
|
-
setFormatterSpec(adjustFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)));
|
|
98
|
-
setParserSpec(core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
99
|
-
});
|
|
100
|
-
}, [quantityType]);
|
|
101
|
-
React.useEffect(() => {
|
|
102
|
-
return core_frontend_1.IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener((args) => {
|
|
103
|
-
const quantityKey = core_frontend_1.IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);
|
|
104
|
-
if (args.quantityType === quantityKey) {
|
|
105
|
-
setFormatterSpec(adjustFormatterSpec(core_frontend_1.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)));
|
|
106
|
-
setParserSpec(core_frontend_1.IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType));
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}, [quantityType]);
|
|
110
|
-
const unitLabel = getUnitLabel(parserSpec);
|
|
111
|
-
// See if new initialValue props have changed since component mounted
|
|
112
|
-
React.useEffect(() => {
|
|
113
|
-
rawValueRef.current = persistenceValue;
|
|
114
|
-
const currentFormattedValue = formatValue(rawValueRef.current);
|
|
115
|
-
setFormattedValue(currentFormattedValue);
|
|
116
|
-
}, [formatValue, persistenceValue]);
|
|
117
|
-
// this is the unprocessed input from user, it is not processed until blur or enter key press
|
|
118
|
-
const handleDisplayValueChange = React.useCallback((event) => {
|
|
119
|
-
setFormattedValue(event.currentTarget.value);
|
|
120
|
-
}, []);
|
|
121
|
-
const updateValue = React.useCallback((newValue) => {
|
|
122
|
-
let persistedValue = newValue;
|
|
123
|
-
if (parserSpec) {
|
|
124
|
-
// convert value from display unit to persistence unit
|
|
125
|
-
const [unit] = parserSpec.format.units
|
|
126
|
-
? parserSpec.format.units[0]
|
|
127
|
-
: [parserSpec.outUnit];
|
|
128
|
-
persistedValue = convertValueFromDisplayToPersistence(newValue, parserSpec.unitConversions, unit);
|
|
129
|
-
rawValueRef.current = persistedValue;
|
|
130
|
-
}
|
|
131
|
-
const newFormattedVal = formatValue(persistedValue);
|
|
132
|
-
onChange && onChange(persistedValue);
|
|
133
|
-
setFormattedValue(newFormattedVal);
|
|
134
|
-
}, [formatValue, onChange, parserSpec]);
|
|
135
|
-
/**
|
|
136
|
-
* Used internally to parse the argument x to it's numeric representation.
|
|
137
|
-
* If the argument cannot be converted to finite number returns 0; If a
|
|
138
|
-
* "precision" prop is specified uses it round the number with that
|
|
139
|
-
* precision (no fixed precision here because the return value is float, not
|
|
140
|
-
* string).
|
|
141
|
-
*/
|
|
142
|
-
const parseInternal = React.useCallback((x) => {
|
|
143
|
-
if (!x)
|
|
144
|
-
return 0;
|
|
145
|
-
let n = parseFloat(x);
|
|
146
|
-
if (isNaN(n) || !isFinite(n)) {
|
|
147
|
-
n = 0;
|
|
148
|
-
}
|
|
149
|
-
const localPrecision = 6; // TODO get a reasonable value from format
|
|
150
|
-
const q = Math.pow(10, localPrecision);
|
|
151
|
-
const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;
|
|
152
|
-
const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;
|
|
153
|
-
n = Math.min(Math.max(n, localMin), localMax);
|
|
154
|
-
n = Math.round(n * q) / q;
|
|
155
|
-
return n;
|
|
156
|
-
}, [min, max]);
|
|
157
|
-
const updateValueFromString = React.useCallback((strValue) => {
|
|
158
|
-
if (parserSpec) {
|
|
159
|
-
const parseResult = core_frontend_1.IModelApp.quantityFormatter.parseToQuantityValue(strValue, parserSpec);
|
|
160
|
-
// at this point we should have a string value in persistence units without a label
|
|
161
|
-
if (core_quantity_1.Parser.isParsedQuantity(parseResult)) {
|
|
162
|
-
const persistedValue = parseResult.value; // in persistence units
|
|
163
|
-
// set strValue and let it go through parseInternal which will ensure min/max limits are observed
|
|
164
|
-
strValue = formatValue(persistedValue);
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
if (rawValueRef.current) {
|
|
168
|
-
// restore last known good value
|
|
169
|
-
const lastKnownFormattedVal = formatValue(rawValueRef.current);
|
|
170
|
-
setFormattedValue(lastKnownFormattedVal);
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
const newValue = parseInternal(strValue);
|
|
176
|
-
if (undefined !== newValue)
|
|
177
|
-
updateValue(newValue);
|
|
178
|
-
}, [formatValue, parseInternal, parserSpec, updateValue]);
|
|
179
|
-
const handleBlur = React.useCallback((event) => {
|
|
180
|
-
const newVal = parseInternal(event.target.value);
|
|
181
|
-
onBlur && onBlur(event);
|
|
182
|
-
updateValue(newVal);
|
|
183
|
-
}, [parseInternal, updateValue, onBlur]);
|
|
184
|
-
const getIncrementValue = React.useCallback((increment) => {
|
|
185
|
-
if (typeof step === "function") {
|
|
186
|
-
const stepVal = step(increment ? "up" : "down");
|
|
187
|
-
return stepVal ? stepVal : 1;
|
|
188
|
-
}
|
|
189
|
-
return !step ? 1 : step;
|
|
190
|
-
}, [step]);
|
|
191
|
-
/**
|
|
192
|
-
* The internal method that actually sets the new value on the input
|
|
193
|
-
*/
|
|
194
|
-
const applyStep = React.useCallback((increment) => {
|
|
195
|
-
const incrementValue = getIncrementValue(increment);
|
|
196
|
-
let num = parseInternal(formattedValue) +
|
|
197
|
-
(increment ? incrementValue : -incrementValue);
|
|
198
|
-
if (snap) {
|
|
199
|
-
num = Math.round(num / incrementValue) * incrementValue;
|
|
200
|
-
}
|
|
201
|
-
const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;
|
|
202
|
-
const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;
|
|
203
|
-
num = Math.min(Math.max(num, localMin), localMax);
|
|
204
|
-
updateValue(num);
|
|
205
|
-
}, [
|
|
206
|
-
formattedValue,
|
|
207
|
-
getIncrementValue,
|
|
208
|
-
max,
|
|
209
|
-
min,
|
|
210
|
-
parseInternal,
|
|
211
|
-
snap,
|
|
212
|
-
updateValue,
|
|
213
|
-
]);
|
|
214
|
-
const handleKeyDown = React.useCallback((event) => {
|
|
215
|
-
if (event.key === ts_key_enum_1.Key.Enter.valueOf()) {
|
|
216
|
-
updateValueFromString(event.currentTarget.value);
|
|
217
|
-
event.preventDefault();
|
|
218
|
-
}
|
|
219
|
-
else if (event.key === ts_key_enum_1.Key.Escape.valueOf()) {
|
|
220
|
-
setFormattedValue(formatValue(rawValueRef.current));
|
|
221
|
-
event.preventDefault();
|
|
222
|
-
}
|
|
223
|
-
else if (event.key === ts_key_enum_1.Key.ArrowDown.valueOf()) {
|
|
224
|
-
applyStep(false);
|
|
225
|
-
event.preventDefault();
|
|
226
|
-
}
|
|
227
|
-
else if (event.key === ts_key_enum_1.Key.ArrowUp.valueOf()) {
|
|
228
|
-
applyStep(true);
|
|
229
|
-
event.preventDefault();
|
|
230
|
-
}
|
|
231
|
-
onKeyDown && onKeyDown(event);
|
|
232
|
-
}, [onKeyDown, updateValueFromString, formatValue, applyStep]);
|
|
233
|
-
const handleDownClick = React.useCallback((event) => {
|
|
234
|
-
applyStep(false);
|
|
235
|
-
event.preventDefault();
|
|
236
|
-
}, [applyStep]);
|
|
237
|
-
const handleUpClick = React.useCallback((event) => {
|
|
238
|
-
applyStep(true);
|
|
239
|
-
event.preventDefault();
|
|
240
|
-
}, [applyStep]);
|
|
241
|
-
const handleFocus = React.useCallback((event) => {
|
|
242
|
-
event.currentTarget.select();
|
|
243
|
-
}, []);
|
|
244
|
-
const isDisabled = !!otherProps.disabled;
|
|
245
|
-
const containerClasses = (0, classnames_1.default)("component-quantity-number-input-container", containerClassName, showTouchButtons && "component-number-buttons-for-touch", isDisabled && "component-quantity-number-input-disabled");
|
|
246
|
-
const caretUp = showTouchButtons ? React.createElement(itwinui_icons_react_1.SvgCaretUp, null) : React.createElement(itwinui_icons_react_1.SvgCaretUpSmall, null);
|
|
247
|
-
const caretDown = showTouchButtons ? React.createElement(itwinui_icons_react_1.SvgCaretDown, null) : React.createElement(itwinui_icons_react_1.SvgCaretDownSmall, null);
|
|
248
|
-
return (React.createElement("div", { className: containerClasses },
|
|
249
|
-
React.createElement("div", { className: "component-quantity-number-input-value-and-buttons-container" },
|
|
250
|
-
React.createElement(itwinui_react_1.Input, { ref: ref, value: formattedValue, onChange: handleDisplayValueChange, onKeyDown: handleKeyDown, onBlur: handleBlur, onFocus: handleFocus, size: "small", ...otherProps }),
|
|
251
|
-
React.createElement("div", { className: (0, classnames_1.default)("component-quantity-number-input-buttons-container", showTouchButtons && "component-number-buttons-for-touch") },
|
|
252
|
-
React.createElement("div", { className: "component-quantity-number-input-button component-quantity-number-input-button-up", tabIndex: -1, onClick: handleUpClick },
|
|
253
|
-
React.createElement(core_react_1.Icon, { iconSpec: caretUp })),
|
|
254
|
-
React.createElement("div", { className: "component-quantity-number-input-button component-quantity-number-input-button-down", tabIndex: -1, onClick: handleDownClick },
|
|
255
|
-
React.createElement(core_react_1.Icon, { iconSpec: caretDown })))),
|
|
256
|
-
React.createElement("span", { className: "component-quantity-number-input-suffix" }, unitLabel)));
|
|
257
|
-
});
|
|
258
|
-
/** The QuantityNumberInput component accepts input for quantity values. The quantity value is shown as a single numeric value and the quantity's
|
|
259
|
-
* "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).
|
|
260
|
-
* The control also display buttons to increment and decrement the "displayed" value. The value reported by via the onChange function is in "persistence"
|
|
261
|
-
* units that can be stored in the iModel.
|
|
262
|
-
* @beta
|
|
263
|
-
*/
|
|
264
|
-
exports.QuantityNumberInput = ForwardRefQuantityNumberInput;
|
|
265
|
-
//# sourceMappingURL=QuantityNumberInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityNumberInput.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/inputs/QuantityNumberInput.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Inputs\n */\n\nimport \"./QuantityNumberInput.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { Icon } from \"@itwin/core-react\";\nimport type { QuantityTypeArg } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type {\n ParserSpec,\n UnitConversionSpec,\n UnitProps,\n} from \"@itwin/core-quantity\";\nimport {\n DecimalPrecision,\n FormatterSpec,\n FormatTraits,\n FormatType,\n Parser,\n} from \"@itwin/core-quantity\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport {\n SvgCaretDown,\n SvgCaretDownSmall,\n SvgCaretUp,\n SvgCaretUpSmall,\n} from \"@itwin/itwinui-icons-react\";\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Input>;\n\n/** Step function prototype for [[QuantityNumberInput]] component\n * @beta\n */\nexport type StepFunctionProp =\n | number\n | ((direction: string) => number | undefined);\n\n/** Properties for the [[QuantityNumberInput]] component\n * @beta\n */\nexport interface QuantityNumberInputProps\n extends Omit<\n InputProps,\n \"value\" | \"min\" | \"max\" | \"step\" | \"onFocus\" | \"onChange\"\n > {\n /** Initial magnitude in 'persistence' units. See `getPersistenceUnitByQuantityType` in [QuantityFormatter]($core-frontend).\n * Set to `undefined` to show placeholder text */\n persistenceValue?: number;\n /** CSS class name for the QuantityNumberInput component container div */\n containerClassName?: string;\n /** number or function\tNumber.MIN_SAFE_INTEGER */\n min?: number;\n /** number or function\tdefaults to Number.MAX_SAFE_INTEGER */\n max?: number;\n /** increment step value used while incrementing or decrementing (up/down buttons or arrow keys) defaults to 1. */\n step?: StepFunctionProp;\n /** Set to true to \"snap\" to the closest step value while incrementing or decrementing (up/down buttons or arrow keys). */\n snap?: boolean;\n /** Function to call when the quantity value is changed. The value returned will be in 'persistence' units. */\n onChange?: (value: number) => void;\n /** if true up/down buttons are shown larger and side by side */\n showTouchButtons?: boolean;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n /** Type of quantity being input. */\n quantityType: QuantityTypeArg;\n}\n\n/** adjust formatter spec to show only primary unit without a label. */\nfunction adjustFormatterSpec(formatterSpec: FormatterSpec | undefined) {\n if (undefined === formatterSpec) return formatterSpec;\n const singleUnitConversion: UnitConversionSpec[] = [];\n singleUnitConversion.push(formatterSpec.unitConversions[0]);\n const newFormat = formatterSpec.format.clone({\n showOnlyPrimaryUnit: true,\n traits: formatterSpec.format.formatTraits & ~FormatTraits.ShowUnitLabel,\n type: FormatType.Decimal,\n precision:\n FormatType.Decimal !== formatterSpec.format.type\n ? DecimalPrecision.Four\n : formatterSpec.format.precision,\n });\n return new FormatterSpec(\n \"single-value\",\n newFormat,\n singleUnitConversion,\n formatterSpec.persistenceUnit\n );\n}\n\nfunction convertValueFromDisplayToPersistence(\n value: number,\n unitConversions: UnitConversionSpec[] | undefined,\n unit: UnitProps\n) {\n if (!unitConversions || 0 === unitConversions.length) return value;\n\n const unitConversion = unitConversions.find(\n (spec) => spec.name === unit.name\n );\n if (!unitConversion) return value;\n\n const convertedValue =\n value * unitConversion.conversion.factor + unitConversion.conversion.offset;\n return convertedValue;\n}\n\nfunction getUnitLabel(parserSpec: ParserSpec | undefined) {\n if (undefined === parserSpec) return \"\";\n\n const format = parserSpec.format;\n if (!format.units || !format.units[0]) return parserSpec.outUnit.label;\n const [unit, label] = format.units[0];\n return label ?? unit.label;\n}\n\nconst ForwardRefQuantityNumberInput = React.forwardRef<\n HTMLInputElement,\n QuantityNumberInputProps\n>(function ForwardRefQuantityNumberInput(props, ref) {\n const {\n containerClassName,\n persistenceValue,\n min,\n max,\n onChange,\n onBlur,\n onKeyDown,\n step,\n snap,\n showTouchButtons,\n quantityType,\n ...otherProps\n } = props;\n const rawValueRef = React.useRef(persistenceValue);\n\n const [formatterSpec, setFormatterSpec] = React.useState(() =>\n adjustFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(quantityType)\n )\n );\n const [parserSpec, setParserSpec] = React.useState(() =>\n IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType)\n );\n\n const formatValue = React.useCallback(\n (value: number | undefined) => {\n if (undefined === value) return \"\";\n\n if (formatterSpec) {\n return formatterSpec.applyFormatting(value);\n }\n return value.toFixed(2);\n },\n [formatterSpec]\n );\n\n const lastFormattedValueRef = React.useRef(formatValue(persistenceValue));\n const [formattedValue, setFormattedValue] = React.useState(\n () => lastFormattedValueRef.current\n );\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n () => {\n setFormatterSpec(\n adjustFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n quantityType\n )\n )\n );\n setParserSpec(\n IModelApp.quantityFormatter.findParserSpecByQuantityType(quantityType)\n );\n }\n );\n }, [quantityType]);\n\n React.useEffect(() => {\n return IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n (args) => {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(quantityType);\n if (args.quantityType === quantityKey) {\n setFormatterSpec(\n adjustFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n quantityType\n )\n )\n );\n setParserSpec(\n IModelApp.quantityFormatter.findParserSpecByQuantityType(\n quantityType\n )\n );\n }\n }\n );\n }, [quantityType]);\n\n const unitLabel = getUnitLabel(parserSpec);\n\n // See if new initialValue props have changed since component mounted\n React.useEffect(() => {\n rawValueRef.current = persistenceValue;\n const currentFormattedValue = formatValue(rawValueRef.current);\n setFormattedValue(currentFormattedValue);\n }, [formatValue, persistenceValue]);\n\n // this is the unprocessed input from user, it is not processed until blur or enter key press\n const handleDisplayValueChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setFormattedValue(event.currentTarget.value);\n },\n []\n );\n\n const updateValue = React.useCallback(\n (newValue: number) => {\n let persistedValue = newValue;\n if (parserSpec) {\n // convert value from display unit to persistence unit\n const [unit] = parserSpec.format.units\n ? parserSpec.format.units[0]\n : [parserSpec.outUnit];\n persistedValue = convertValueFromDisplayToPersistence(\n newValue,\n parserSpec.unitConversions,\n unit\n );\n rawValueRef.current = persistedValue;\n }\n const newFormattedVal = formatValue(persistedValue);\n onChange && onChange(persistedValue);\n setFormattedValue(newFormattedVal);\n },\n [formatValue, onChange, parserSpec]\n );\n\n /**\n * Used internally to parse the argument x to it's numeric representation.\n * If the argument cannot be converted to finite number returns 0; If a\n * \"precision\" prop is specified uses it round the number with that\n * precision (no fixed precision here because the return value is float, not\n * string).\n */\n const parseInternal = React.useCallback(\n (x: string | undefined) => {\n if (!x) return 0;\n\n let n = parseFloat(x);\n if (isNaN(n) || !isFinite(n)) {\n n = 0;\n }\n\n const localPrecision = 6; // TODO get a reasonable value from format\n const q = Math.pow(10, localPrecision);\n const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;\n const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;\n n = Math.min(Math.max(n, localMin), localMax);\n n = Math.round(n * q) / q;\n\n return n;\n },\n [min, max]\n );\n\n const updateValueFromString = React.useCallback(\n (strValue: string) => {\n if (parserSpec) {\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(\n strValue,\n parserSpec\n );\n // at this point we should have a string value in persistence units without a label\n if (Parser.isParsedQuantity(parseResult)) {\n const persistedValue = parseResult.value; // in persistence units\n // set strValue and let it go through parseInternal which will ensure min/max limits are observed\n strValue = formatValue(persistedValue)!;\n } else {\n if (rawValueRef.current) {\n // restore last known good value\n const lastKnownFormattedVal = formatValue(rawValueRef.current);\n setFormattedValue(lastKnownFormattedVal);\n return;\n }\n }\n }\n const newValue = parseInternal(strValue);\n if (undefined !== newValue) updateValue(newValue);\n },\n [formatValue, parseInternal, parserSpec, updateValue]\n );\n\n const handleBlur = React.useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n const newVal = parseInternal(event.target.value);\n onBlur && onBlur(event);\n updateValue(newVal);\n },\n [parseInternal, updateValue, onBlur]\n );\n\n const getIncrementValue = React.useCallback(\n (increment: boolean) => {\n if (typeof step === \"function\") {\n const stepVal = step(increment ? \"up\" : \"down\");\n return stepVal ? stepVal : 1;\n }\n\n return !step ? 1 : step;\n },\n [step]\n );\n\n /**\n * The internal method that actually sets the new value on the input\n */\n const applyStep = React.useCallback(\n (increment: boolean) => {\n const incrementValue = getIncrementValue(increment);\n\n let num =\n parseInternal(formattedValue) +\n (increment ? incrementValue : -incrementValue);\n if (snap) {\n num = Math.round(num / incrementValue) * incrementValue;\n }\n\n const localMin = undefined === min ? Number.MIN_SAFE_INTEGER : min;\n const localMax = undefined === max ? Number.MAX_SAFE_INTEGER : max;\n num = Math.min(Math.max(num, localMin), localMax);\n\n updateValue(num);\n },\n [\n formattedValue,\n getIncrementValue,\n max,\n min,\n parseInternal,\n snap,\n updateValue,\n ]\n );\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === Key.Enter.valueOf()) {\n updateValueFromString(event.currentTarget.value);\n event.preventDefault();\n } else if (event.key === Key.Escape.valueOf()) {\n setFormattedValue(formatValue(rawValueRef.current));\n event.preventDefault();\n } else if (event.key === Key.ArrowDown.valueOf()) {\n applyStep(false);\n event.preventDefault();\n } else if (event.key === Key.ArrowUp.valueOf()) {\n applyStep(true);\n event.preventDefault();\n }\n onKeyDown && onKeyDown(event);\n },\n [onKeyDown, updateValueFromString, formatValue, applyStep]\n );\n\n const handleDownClick = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n applyStep(false);\n event.preventDefault();\n },\n [applyStep]\n );\n\n const handleUpClick = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n applyStep(true);\n event.preventDefault();\n },\n [applyStep]\n );\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n event.currentTarget.select();\n },\n []\n );\n\n const isDisabled = !!otherProps.disabled;\n const containerClasses = classnames(\n \"component-quantity-number-input-container\",\n containerClassName,\n showTouchButtons && \"component-number-buttons-for-touch\",\n isDisabled && \"component-quantity-number-input-disabled\"\n );\n\n const caretUp = showTouchButtons ? <SvgCaretUp /> : <SvgCaretUpSmall />;\n const caretDown = showTouchButtons ? <SvgCaretDown /> : <SvgCaretDownSmall />;\n\n return (\n <div className={containerClasses}>\n <div className=\"component-quantity-number-input-value-and-buttons-container\">\n <Input\n ref={ref}\n value={formattedValue}\n onChange={handleDisplayValueChange}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n onFocus={handleFocus}\n size=\"small\"\n {...otherProps}\n />\n <div\n className={classnames(\n \"component-quantity-number-input-buttons-container\",\n showTouchButtons && \"component-number-buttons-for-touch\"\n )}\n >\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n className=\"component-quantity-number-input-button component-quantity-number-input-button-up\"\n tabIndex={-1}\n onClick={handleUpClick}\n >\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Icon iconSpec={caretUp} />\n </div>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n className=\"component-quantity-number-input-button component-quantity-number-input-button-down\"\n tabIndex={-1}\n onClick={handleDownClick}\n >\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Icon iconSpec={caretDown} />\n </div>\n </div>\n </div>\n <span className=\"component-quantity-number-input-suffix\">\n {unitLabel}\n </span>\n </div>\n );\n});\n\n/** The QuantityNumberInput component accepts input for quantity values. The quantity value is shown as a single numeric value and the quantity's\n * \"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).\n * The control also display buttons to increment and decrement the \"displayed\" value. The value reported by via the onChange function is in \"persistence\"\n * units that can be stored in the iModel.\n * @beta\n */\nexport const QuantityNumberInput: (\n props: QuantityNumberInputProps\n) => React.ReactNode = ForwardRefQuantityNumberInput;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Swatch.d.ts","sourceRoot":"","sources":["../../../../src/imodel-components-react/lineweight/Swatch.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,eAAe,CAAC;AAEvB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAEnD,WAAW;IACb,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC;gBAClE,KAAK,EAAE,qBAAqB;IAIxB,iBAAiB;IAEjB,MAAM;CA4DvB"}
|