UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

82 lines (81 loc) 2.75 kB
"use strict"; "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