@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
82 lines (81 loc) • 2.75 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _withComponentMarkers = _interopRequireDefault(require("../../shared/helpers/withComponentMarkers.js"));
var _react = _interopRequireDefault(require("react"));
var _componentHelper = require("../../shared/component-helper.js");
var _InputMaskedContext = _interopRequireDefault(require("./InputMaskedContext.js"));
var _InputMaskedElement2 = _interopRequireDefault(require("./InputMaskedElement.js"));
var _Input = require("../input/Input.js");
var _Context = _interopRequireDefault(require("../../shared/Context.js"));
var _jsxRuntime = require("react/jsx-runtime");
var _InputMaskedElement;
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function InputMasked({
ref,
...restProps
}) {
const context = _react.default.useContext(_Context.default);
const contextInputMasked = _react.default.useMemo(() => {
if (!(restProps !== null && restProps !== void 0 && restProps.mask) || !(context !== null && context !== void 0 && context.InputMasked)) {
return context === null || context === void 0 ? void 0 : context.InputMasked;
}
const clone = {
...context.InputMasked
};
for (const key in clone) {
if (/^as[_A-Z]|numberMask|currencyMask/.test(key)) {
delete clone[key];
}
}
return clone;
}, [context === null || context === void 0 ? void 0 : context.InputMasked, restProps === null || restProps === void 0 ? void 0 : restProps.mask]);
const contextAndProps = _react.default.useMemo(() => {
const propsWithRef = {
...restProps,
ref
};
return (0, _componentHelper.extendPropsWithContext)(propsWithRef, defaultProps, contextInputMasked);
}, [contextInputMasked, restProps, ref]);
return (0, _jsxRuntime.jsx)(_InputMaskedContext.default, {
value: {
props: contextAndProps,
context
},
children: _InputMaskedElement || (_InputMaskedElement = (0, _jsxRuntime.jsx)(_InputMaskedElement2.default, {}))
});
}
const {
onKeyDown: _,
...inputBaseDefaults
} = _Input.inputDefaultProps;
const defaultProps = {
...inputBaseDefaults,
mask: null,
numberMask: null,
currencyMask: null,
maskOptions: null,
numberFormat: null,
asCurrency: null,
asNumber: null,
asPercent: null,
locale: null,
showMask: false,
allowOverflow: false,
overwriteMode: null,
onChange: null,
onSubmit: null,
onFocus: null,
onBlur: null,
onSubmitFocus: null,
onSubmitBlur: null
};
(0, _withComponentMarkers.default)(InputMasked, {
_formElement: true,
_supportsSpacingProps: true
});
var _default = exports.default = InputMasked;
//# sourceMappingURL=InputMasked.js.map