UNPKG

@itwin/quantity-formatting-react

Version:

React components and utilities for quantity formatting

45 lines 2.47 kB
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 { Format, FormatTraits, getTraitString } from "@itwin/core-quantity"; import { Checkbox, Label } from "@itwin/itwinui-react"; import { useTranslation } from "../../../useTranslation.js"; import "../FormatPanel.scss"; /** Component to show/edit Keep Decimal Point setting. * @internal */ export function KeepDecimalPoint(props) { const { formatProps, onChange } = props; const { translate } = useTranslation(); const keepDecimalPointId = React.useId(); const setFormatTrait = React.useCallback((trait, setActive) => { const traitStr = getTraitString(trait); let formatTraits = [traitStr]; if (setActive) { // setting trait if (formatProps.formatTraits) { const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : formatProps.formatTraits.split(/,|;|\|/); if (!traits.find((traitEntry) => traitStr === traitEntry)) { formatTraits = [...traits, traitStr]; } } } else { // clearing trait if (!formatProps.formatTraits) return; const traits = Array.isArray(formatProps.formatTraits) ? formatProps.formatTraits : formatProps.formatTraits.split(/,|;|\|/); formatTraits = traits.filter((traitEntry) => traitEntry !== traitStr); } onChange({ ...formatProps, formatTraits }); }, [formatProps, onChange]); return (_jsxs("div", { className: "quantityFormat--formatInlineRow", children: [_jsx(Label, { displayStyle: "inline", htmlFor: keepDecimalPointId, children: translate("QuantityFormat:labels.keepDecimalPointLabel") }), _jsx(Checkbox, { id: keepDecimalPointId, checked: Format.isFormatTraitSetInProps(formatProps, FormatTraits.KeepDecimalPoint), onChange: (e) => setFormatTrait(FormatTraits.KeepDecimalPoint, e.target.checked) })] })); } //# sourceMappingURL=KeepDecimalPoint.js.map