@itwin/quantity-formatting-react
Version:
React components and utilities for quantity formatting
22 lines • 1.75 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
import * as React from "react";
import { FormatType, parseFormatType } from "@itwin/core-quantity";
import { FractionPrecisionSelector } from "./misc/FractionPrecision.js";
import { useTranslation } from "../../../useTranslation.js";
import { Label } from "@itwin/itwinui-react";
import { DecimalPrecisionSelector } from "./misc/DecimalPrecision.js";
/** Component to show/edit Quantity Format Precision.
* @internal
*/
export function FormatPrecision(props) {
const { formatProps, onChange } = props;
const { translate } = useTranslation();
const precisionSelectorId = React.useId();
const formatType = parseFormatType(formatProps.type, "format");
return (_jsxs("div", { className: "quantityFormat--formatInlineRow", children: [_jsx(Label, { displayStyle: "inline", id: precisionSelectorId, children: translate("QuantityFormat:labels.precision") }), formatType === FormatType.Fractional ? (_jsx(FractionPrecisionSelector, { precision: formatProps.precision ?? 0, onChange: (value) => onChange({ ...formatProps, precision: value }), "aria-labelledby": precisionSelectorId })) : (_jsx(DecimalPrecisionSelector, { precision: formatProps.precision ?? 0, onChange: (value) => onChange({ ...formatProps, precision: value }), "aria-labelledby": precisionSelectorId }))] }));
}
//# sourceMappingURL=FormatPrecision.js.map