@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
83 lines (82 loc) • 2.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useNumberMaskParams = void 0;
var _react = _interopRequireDefault(require("react"));
var _componentHelper = require("../../../shared/component-helper.js");
var _NumberUtils = require("../../number-format/NumberUtils.js");
var _InputMaskedContext = _interopRequireDefault(require("../InputMaskedContext.js"));
var _InputMaskedUtils = require("../InputMaskedUtils.js");
var _useTranslation = require("./useTranslation.js");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const useNumberMaskParams = () => {
var _currencyMask;
const {
props
} = _react.default.useContext(_InputMaskedContext.default);
const locale = (0, _useTranslation.useTranslation)();
if (!(0, _InputMaskedUtils.isRequestingNumberMask)(props)) {
return {
...(0, _InputMaskedUtils.fromJSON)(props.maskOptions)
};
}
let {
numberMask,
currencyMask,
maskOptions
} = props;
const {
asNumber,
asPercent,
asCurrency,
value
} = props;
maskOptions = (0, _InputMaskedUtils.fromJSON)(maskOptions);
numberMask = numberMask === true ? {} : (0, _InputMaskedUtils.fromJSON)(numberMask);
currencyMask = currencyMask === true ? {} : (0, _InputMaskedUtils.fromJSON)(currencyMask, {
currency: currencyMask
});
if (!((_currencyMask = currencyMask) !== null && _currencyMask !== void 0 && _currencyMask.currency)) {
delete currencyMask.currency;
}
if ((0, _InputMaskedUtils.isRequestingLocaleSupport)(props)) {
const thousandsSeparatorSymbol = (0, _InputMaskedUtils.handleThousandsSeparator)(locale);
const decimalSymbol = (0, _InputMaskedUtils.handleDecimalSeparator)(locale);
if (asNumber || asPercent) {
numberMask = (0, _componentHelper.extendPropsWithContext)(numberMask, null, {
decimalSymbol,
thousandsSeparatorSymbol
});
} else if (asCurrency) {
var _currencyMask2;
currencyMask = (0, _componentHelper.extendPropsWithContext)(currencyMask, null, {
decimalSymbol,
thousandsSeparatorSymbol,
currency: (0, _NumberUtils.getCurrencySymbol)(locale, typeof asCurrency === 'string' ? asCurrency : null, (_currencyMask2 = currencyMask) === null || _currencyMask2 === void 0 ? void 0 : _currencyMask2.currencyDisplay, value)
});
}
}
let maskParams = null;
if (numberMask) {
maskParams = (0, _InputMaskedUtils.handleNumberMask)({
maskOptions,
numberMask
});
if (asPercent) {
maskParams = (0, _InputMaskedUtils.handlePercentMask)({
props,
locale,
maskParams
});
}
} else if (currencyMask) {
maskParams = (0, _InputMaskedUtils.handleCurrencyMask)({
maskOptions,
currencyMask
});
}
return maskParams;
};
exports.useNumberMaskParams = useNumberMaskParams;
//# sourceMappingURL=useNumberMaskParams.js.map