@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
57 lines (56 loc) • 1.81 kB
JavaScript
"use client";
var _InputMaskedElement;
import React from 'react';
import { extendPropsWithContext } from "../../shared/component-helper.js";
import InputMaskedContext from "./InputMaskedContext.js";
import InputMaskedElement from "./InputMaskedElement.js";
import Input from "../input/Input.js";
import Context from "../../shared/Context.js";
function InputMasked(props) {
const context = React.useContext(Context);
if (props !== null && props !== void 0 && props.mask) {
const alias = context === null || context === void 0 ? void 0 : context.InputMasked;
for (const key in alias) {
if (/^as[_A-Z]|number_mask|currency_mask/.test(key)) {
delete alias[key];
}
}
}
const contextAndProps = React.useMemo(() => {
return extendPropsWithContext(props, defaultProps, context === null || context === void 0 ? void 0 : context.InputMasked);
}, [context === null || context === void 0 ? void 0 : context.InputMasked, props]);
return React.createElement(InputMaskedContext.Provider, {
value: {
props: contextAndProps,
context
}
}, _InputMaskedElement || (_InputMaskedElement = React.createElement(InputMaskedElement, null)));
}
const defaultProps = {
...Input.defaultProps,
mask: null,
number_mask: null,
currency_mask: null,
mask_options: null,
number_format: null,
as_currency: null,
as_number: null,
as_percent: null,
locale: null,
show_mask: false,
show_guide: true,
pipe: null,
keep_char_positions: false,
placeholder_char: null,
inner_ref: null,
on_change: null,
on_submit: null,
on_focus: null,
on_blur: null,
on_submit_focus: null,
on_submit_blur: null
};
export default InputMasked;
InputMasked._formElement = true;
InputMasked._supportsSpacingProps = true;
//# sourceMappingURL=InputMasked.js.map