UNPKG

react-bfm

Version:

A basic field / form manager for React using hooks

969 lines (894 loc) 53.3 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react")); else if(typeof define === 'function' && define.amd) define(["react"], factory); else if(typeof exports === 'object') exports["ReactBFM"] = factory(require("react")); else root["ReactBFM"] = factory(root["React"]); })(self, (__WEBPACK_EXTERNAL_MODULE_react__) => { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./build/constants/field-defaults.js": /*!*******************************************!*\ !*** ./build/constants/field-defaults.js ***! \*******************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; exports.__esModule = true; exports.FIELD_DEFAULT_VALUE_ON_FOCUS = exports.FIELD_DEFAULT_VALUE = exports.FIELD_DEFAULT_VALID = exports.FIELD_DEFAULT_TOUCHED = exports.FIELD_DEFAULT_FOCUS = exports.FIELD_DEFAULT_ERROR = exports.FIELD_DEFAULT_DIRTY = exports.FIELD_DEFAULT_DEFAULT_VALUE_ERROR = exports.FIELD_DEFAULT_DEFAULT_VALUE = void 0; // default values for keys var FIELD_DEFAULT_DEFAULT_VALUE = undefined; exports.FIELD_DEFAULT_DEFAULT_VALUE = FIELD_DEFAULT_DEFAULT_VALUE; var FIELD_DEFAULT_DEFAULT_VALUE_ERROR = undefined; exports.FIELD_DEFAULT_DEFAULT_VALUE_ERROR = FIELD_DEFAULT_DEFAULT_VALUE_ERROR; var FIELD_DEFAULT_DIRTY = false; exports.FIELD_DEFAULT_DIRTY = FIELD_DEFAULT_DIRTY; var FIELD_DEFAULT_ERROR = null; exports.FIELD_DEFAULT_ERROR = FIELD_DEFAULT_ERROR; var FIELD_DEFAULT_FOCUS = false; exports.FIELD_DEFAULT_FOCUS = FIELD_DEFAULT_FOCUS; var FIELD_DEFAULT_TOUCHED = false; exports.FIELD_DEFAULT_TOUCHED = FIELD_DEFAULT_TOUCHED; var FIELD_DEFAULT_VALID = true; exports.FIELD_DEFAULT_VALID = FIELD_DEFAULT_VALID; var FIELD_DEFAULT_VALUE = undefined; exports.FIELD_DEFAULT_VALUE = FIELD_DEFAULT_VALUE; var FIELD_DEFAULT_VALUE_ON_FOCUS = null; exports.FIELD_DEFAULT_VALUE_ON_FOCUS = FIELD_DEFAULT_VALUE_ON_FOCUS; /***/ }), /***/ "./build/constants/field-keys.js": /*!***************************************!*\ !*** ./build/constants/field-keys.js ***! \***************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; exports.__esModule = true; exports.FIELD_KEY_VALUE_ON_FOCUS = exports.FIELD_KEY_VALUE = exports.FIELD_KEY_VALID = exports.FIELD_KEY_TOUCHED = exports.FIELD_KEY_INITIAL_VALUE_ERROR = exports.FIELD_KEY_INITIAL_VALUE = exports.FIELD_KEY_FOCUS = exports.FIELD_KEY_ERROR = exports.FIELD_KEY_DIRTY = void 0; // keys var FIELD_KEY_INITIAL_VALUE = 'initialValue'; exports.FIELD_KEY_INITIAL_VALUE = FIELD_KEY_INITIAL_VALUE; var FIELD_KEY_INITIAL_VALUE_ERROR = 'initialValueError'; exports.FIELD_KEY_INITIAL_VALUE_ERROR = FIELD_KEY_INITIAL_VALUE_ERROR; var FIELD_KEY_DIRTY = 'dirty'; exports.FIELD_KEY_DIRTY = FIELD_KEY_DIRTY; var FIELD_KEY_ERROR = 'error'; exports.FIELD_KEY_ERROR = FIELD_KEY_ERROR; var FIELD_KEY_FOCUS = 'focus'; exports.FIELD_KEY_FOCUS = FIELD_KEY_FOCUS; var FIELD_KEY_TOUCHED = 'touched'; exports.FIELD_KEY_TOUCHED = FIELD_KEY_TOUCHED; var FIELD_KEY_VALID = 'valid'; exports.FIELD_KEY_VALID = FIELD_KEY_VALID; var FIELD_KEY_VALUE = 'value'; exports.FIELD_KEY_VALUE = FIELD_KEY_VALUE; var FIELD_KEY_VALUE_ON_FOCUS = 'valueOnFocus'; exports.FIELD_KEY_VALUE_ON_FOCUS = FIELD_KEY_VALUE_ON_FOCUS; /***/ }), /***/ "./build/constants/state-defaults.js": /*!*******************************************!*\ !*** ./build/constants/state-defaults.js ***! \*******************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.NAMESPACE_STATE_DEFAULT = exports.FIELD_STATE_DEFAULT = void 0; var _fieldKeys = __webpack_require__(/*! ./field-keys */ "./build/constants/field-keys.js"); var _fieldDefaults = __webpack_require__(/*! ./field-defaults */ "./build/constants/field-defaults.js"); var _FIELD_STATE_DEFAULT; var FIELD_STATE_DEFAULT = (_FIELD_STATE_DEFAULT = {}, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_ERROR] = _fieldDefaults.FIELD_DEFAULT_ERROR, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_VALID] = _fieldDefaults.FIELD_DEFAULT_VALID, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_VALUE] = _fieldDefaults.FIELD_DEFAULT_VALUE, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_DIRTY] = _fieldDefaults.FIELD_DEFAULT_DIRTY, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_FOCUS] = _fieldDefaults.FIELD_DEFAULT_FOCUS, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_TOUCHED] = _fieldDefaults.FIELD_DEFAULT_TOUCHED, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS] = _fieldDefaults.FIELD_DEFAULT_VALUE_ON_FOCUS, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_INITIAL_VALUE] = _fieldDefaults.FIELD_DEFAULT_DEFAULT_VALUE, _FIELD_STATE_DEFAULT[_fieldKeys.FIELD_KEY_INITIAL_VALUE_ERROR] = _fieldDefaults.FIELD_DEFAULT_DEFAULT_VALUE_ERROR, _FIELD_STATE_DEFAULT); exports.FIELD_STATE_DEFAULT = FIELD_STATE_DEFAULT; Object.freeze(FIELD_STATE_DEFAULT); var NAMESPACE_STATE_DEFAULT = {}; exports.NAMESPACE_STATE_DEFAULT = NAMESPACE_STATE_DEFAULT; Object.freeze(NAMESPACE_STATE_DEFAULT); /***/ }), /***/ "./build/context.js": /*!**************************!*\ !*** ./build/context.js ***! \**************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = (__webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"]); exports.__esModule = true; exports.BFMHooksContext = void 0; var _extends4 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js")); var _react = __webpack_require__(/*! react */ "react"); var _helpers = __webpack_require__(/*! ./helpers */ "./build/helpers.js"); var _state = __webpack_require__(/*! ./state */ "./build/state.js"); var _fieldKeys = __webpack_require__(/*! ./constants/field-keys */ "./build/constants/field-keys.js"); var focusField = function focusField(namespace, fieldName) { (0, _state.updateFieldStateWithCallback)(namespace, fieldName, function (currentState) { var _ref; return _ref = {}, _ref[_fieldKeys.FIELD_KEY_FOCUS] = true, _ref[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS] = currentState[_fieldKeys.FIELD_KEY_VALUE], _ref; }); }; var changeField = function changeField(namespace, fieldName, value, error, dirtyCheck) { if (dirtyCheck === void 0) { dirtyCheck = _helpers.defaultDirtyCheck; } (0, _state.updateFieldStateWithCallback)(namespace, fieldName, function (currentState) { var _extends2; return (0, _extends4["default"])((_extends2 = {}, _extends2[_fieldKeys.FIELD_KEY_DIRTY] = dirtyCheck(value, currentState[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS]), _extends2), (0, _helpers.mapFieldValueAndError)(value, error)); }); }; var blurField = function blurField(namespace, fieldName) { (0, _state.updateFieldStateWithCallback)(namespace, fieldName, function () { var _ref2; return _ref2 = {}, _ref2[_fieldKeys.FIELD_KEY_FOCUS] = false, _ref2[_fieldKeys.FIELD_KEY_TOUCHED] = true, _ref2[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS] = null, _ref2; }); }; var initField = function initField(namespace, fieldName, value, error) { if (true) { if (!(0, _helpers.validateNamespace)(namespace)) { throw new Error('Expected string with a minimal length of 1 for `namespace`'); } if (!(0, _helpers.validateFieldName)(fieldName)) { throw new Error('Expected string with a minimal length of 1 for `fieldName`'); } } (0, _state.initFieldState)(namespace, fieldName, value, error); }; /** * sets default value only when the field is not touched or has focus * this way you can still change the input value after first rendering */ var initialValueField = function initialValueField(namespace, fieldName, initialValue, error) { return (0, _state.updateFieldStateWithCallback)(namespace, fieldName, function (currentState) { var _extends3; // only update value and error when field is not touched or has focus var updateState = !currentState[_fieldKeys.FIELD_KEY_TOUCHED] && !currentState[_fieldKeys.FIELD_KEY_FOCUS] && currentState[_fieldKeys.FIELD_KEY_VALUE] !== initialValue ? (0, _helpers.mapFieldValueAndError)(initialValue, error) : {}; // update error if value is still default if (currentState[_fieldKeys.FIELD_KEY_VALUE] === initialValue && currentState[_fieldKeys.FIELD_KEY_ERROR] !== error) { updateState.error = error; updateState.valid = !error; } return (0, _extends4["default"])({}, updateState, (_extends3 = {}, _extends3[_fieldKeys.FIELD_KEY_INITIAL_VALUE] = initialValue, _extends3[_fieldKeys.FIELD_KEY_INITIAL_VALUE_ERROR] = error, _extends3)); }); }; var BFMHooksContext = (0, _react.createContext)({ blurField: blurField, changeField: changeField, initialValueField: initialValueField, focusField: focusField, getFieldState: _state.getFieldState, getNamespaceState: _state.getNamespaceState, initField: initField, removeField: _state.removeField, createGetSnapshotFieldState: _state.createGetSnapshotFieldState, createGetSnapshotNamespaceState: _state.createGetSnapshotNamespaceState, createSubscribeToField: _state.createSubscribeToField, createSubscribeToNamespace: _state.createSubscribeToNamespace }); exports.BFMHooksContext = BFMHooksContext; /***/ }), /***/ "./build/field/actions.js": /*!********************************!*\ !*** ./build/field/actions.js ***! \********************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = (__webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"]); exports.__esModule = true; exports.resetField = exports.clearField = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js")); var _helpers = __webpack_require__(/*! ../helpers */ "./build/helpers.js"); var _state = __webpack_require__(/*! ../state */ "./build/state.js"); var _stateDefaults = __webpack_require__(/*! ../constants/state-defaults */ "./build/constants/state-defaults.js"); var _fieldDefaults = __webpack_require__(/*! ../constants/field-defaults */ "./build/constants/field-defaults.js"); var _fieldKeys = __webpack_require__(/*! ../constants/field-keys */ "./build/constants/field-keys.js"); /** * Reset field, but ignoring default value */ var clearField = function clearField(namespace, fieldName) { (0, _state.updateFieldStateWithCallback)(namespace, fieldName, function () { return (0, _extends2["default"])({}, _stateDefaults.FIELD_STATE_DEFAULT, (0, _helpers.mapFieldValueAndError)(_fieldDefaults.FIELD_DEFAULT_VALUE, _fieldDefaults.FIELD_DEFAULT_ERROR)); }); }; /** * Reset field to default state and setting last provided default value */ exports.clearField = clearField; var resetField = function resetField(namespace, fieldName) { (0, _state.updateFieldStateWithCallback)(namespace, fieldName, function (currentState) { return (0, _extends2["default"])({}, _stateDefaults.FIELD_STATE_DEFAULT, (0, _helpers.mapFieldValueAndError)(currentState[_fieldKeys.FIELD_KEY_INITIAL_VALUE] || _fieldDefaults.FIELD_DEFAULT_VALUE, currentState[_fieldKeys.FIELD_KEY_INITIAL_VALUE_ERROR])); }); }; exports.resetField = resetField; /***/ }), /***/ "./build/field/getters.js": /*!********************************!*\ !*** ./build/field/getters.js ***! \********************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.isFieldValid = exports.isFieldTouched = exports.isFieldDirty = exports.hasFieldFocus = exports.getFieldValueOnFocus = exports.getFieldValue = exports.getFieldInitialValue = exports.getFieldError = void 0; var _state = __webpack_require__(/*! ../state */ "./build/state.js"); var _fieldKeys = __webpack_require__(/*! ../constants/field-keys */ "./build/constants/field-keys.js"); var getFieldError = function getFieldError(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_ERROR]; }; exports.getFieldError = getFieldError; var getFieldValue = function getFieldValue(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE]; }; exports.getFieldValue = getFieldValue; var getFieldInitialValue = function getFieldInitialValue(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_INITIAL_VALUE]; }; exports.getFieldInitialValue = getFieldInitialValue; var getFieldValueOnFocus = function getFieldValueOnFocus(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS]; }; exports.getFieldValueOnFocus = getFieldValueOnFocus; var hasFieldFocus = function hasFieldFocus(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_FOCUS]) || false; }; exports.hasFieldFocus = hasFieldFocus; var isFieldDirty = function isFieldDirty(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_DIRTY]) || false; }; exports.isFieldDirty = isFieldDirty; var isFieldTouched = function isFieldTouched(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_TOUCHED]) || false; }; exports.isFieldTouched = isFieldTouched; var isFieldValid = function isFieldValid(namespace, fieldName) { var fieldState = (0, _state.getFieldState)(namespace, fieldName); return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALID]) || false; }; exports.isFieldValid = isFieldValid; /***/ }), /***/ "./build/field/hooks.js": /*!******************************!*\ !*** ./build/field/hooks.js ***! \******************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.useFieldValueOnFocus = exports.useFieldValue = exports.useFieldState = exports.useFieldIsValid = exports.useFieldIsTouched = exports.useFieldIsDirty = exports.useFieldHasFocus = exports.useFieldError = void 0; var _react = __webpack_require__(/*! react */ "react"); var _context = __webpack_require__(/*! ../context */ "./build/context.js"); var _helpers = __webpack_require__(/*! ../helpers */ "./build/helpers.js"); var _fieldKeys = __webpack_require__(/*! ../constants/field-keys */ "./build/constants/field-keys.js"); var getServerSnapshot = function getServerSnapshot() { return undefined; }; var useFieldState = function useFieldState(namespace, fieldName) { if (true) { if (!(0, _helpers.validateNamespace)(namespace)) { throw new Error('Expected string with a minimal length of 1 for `namespace`'); } if (!(0, _helpers.validateFieldName)(fieldName)) { throw new Error('Expected string with a minimal length of 1 for `fieldName`'); } } var _useContext = (0, _react.useContext)(_context.BFMHooksContext), createSubscribeToField = _useContext.createSubscribeToField, createGetSnapshotFieldState = _useContext.createGetSnapshotFieldState; var subscribe = (0, _react.useMemo)(function () { return createSubscribeToField(namespace, fieldName); }, [createSubscribeToField, fieldName, namespace]); var getSnapshot = (0, _react.useMemo)(function () { return createGetSnapshotFieldState(namespace, fieldName); }, [createGetSnapshotFieldState, fieldName, namespace]); return (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot); }; exports.useFieldState = useFieldState; var useFieldError = function useFieldError(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_ERROR]; }; exports.useFieldError = useFieldError; var useFieldHasFocus = function useFieldHasFocus(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_FOCUS]; }; exports.useFieldHasFocus = useFieldHasFocus; var useFieldIsDirty = function useFieldIsDirty(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_DIRTY]; }; exports.useFieldIsDirty = useFieldIsDirty; var useFieldIsTouched = function useFieldIsTouched(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_TOUCHED]; }; exports.useFieldIsTouched = useFieldIsTouched; var useFieldIsValid = function useFieldIsValid(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALID]; }; exports.useFieldIsValid = useFieldIsValid; var useFieldValue = function useFieldValue(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE]; }; exports.useFieldValue = useFieldValue; var useFieldValueOnFocus = function useFieldValueOnFocus(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS]; }; exports.useFieldValueOnFocus = useFieldValueOnFocus; /***/ }), /***/ "./build/helpers.js": /*!**************************!*\ !*** ./build/helpers.js ***! \**************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.validateNamespace = exports.validateFieldName = exports.mapFieldValueAndError = exports.defaultValueToInput = exports.defaultEventToValue = exports.defaultDirtyCheck = exports.checkedEventToValue = void 0; var _fieldKeys = __webpack_require__(/*! ./constants/field-keys */ "./build/constants/field-keys.js"); var _fieldDefaults = __webpack_require__(/*! ./constants/field-defaults */ "./build/constants/field-defaults.js"); var checkedEventToValue = function checkedEventToValue(event) { var _event$target; return event == null || (_event$target = event.target) == null ? void 0 : _event$target.checked; }; exports.checkedEventToValue = checkedEventToValue; var defaultEventToValue = function defaultEventToValue(event) { var _event$target2; return event == null || (_event$target2 = event.target) == null ? void 0 : _event$target2.value; }; exports.defaultEventToValue = defaultEventToValue; var defaultDirtyCheck = function defaultDirtyCheck(newValue, valueOnFocus) { return newValue !== valueOnFocus; }; exports.defaultDirtyCheck = defaultDirtyCheck; var defaultValueToInput = function defaultValueToInput(value) { return value !== undefined ? value : ''; }; exports.defaultValueToInput = defaultValueToInput; var mapFieldValueAndError = function mapFieldValueAndError(value, error) { var _ref; return _ref = {}, _ref[_fieldKeys.FIELD_KEY_ERROR] = error || _fieldDefaults.FIELD_DEFAULT_ERROR, _ref[_fieldKeys.FIELD_KEY_VALID] = !error, _ref[_fieldKeys.FIELD_KEY_VALUE] = value, _ref; }; exports.mapFieldValueAndError = mapFieldValueAndError; var validateFieldName = function validateFieldName(fieldName) { return (fieldName == null ? void 0 : fieldName.length) > 0; }; exports.validateFieldName = validateFieldName; var validateNamespace = function validateNamespace(namespace) { return (namespace == null ? void 0 : namespace.length) > 0; }; exports.validateNamespace = validateNamespace; /***/ }), /***/ "./build/index.js": /*!************************!*\ !*** ./build/index.js ***! \************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.validateNamespace = exports.validateFieldName = exports.useNamespaceValuesOnFocus = exports.useNamespaceValues = exports.useNamespaceState = exports.useNamespaceKeyValues = exports.useNamespaceKeyIsSome = exports.useNamespaceKeyIsEvery = exports.useNamespaceIsValid = exports.useNamespaceIsTouched = exports.useNamespaceIsDirty = exports.useNamespaceHasFocus = exports.useNamespaceErrors = exports.useFieldValueOnFocus = exports.useFieldValue = exports.useFieldState = exports.useFieldIsValid = exports.useFieldIsTouched = exports.useFieldIsDirty = exports.useFieldHasFocus = exports.useFieldError = exports.useConnectField = exports.updateFieldStateWithCallback = exports.resetNamespace = exports.resetField = exports.removeField = exports.mapFieldValueAndError = exports.isNamespaceValid = exports.isNamespaceTouched = exports.isNamespaceDirty = exports.isFieldValid = exports.isFieldTouched = exports.isFieldDirty = exports.initFieldState = exports.hasNamespaceFocus = exports.hasFieldFocus = exports.getNamespaceValuesOnFocus = exports.getNamespaceValues = exports.getNamespaceState = exports.getNamespaceKeyValues = exports.getNamespaceKeyIsSome = exports.getNamespaceKeyIsEvery = exports.getNamespaceInitialValues = exports.getNamespaceErrors = exports.getFieldValueOnFocus = exports.getFieldValue = exports.getFieldState = exports.getFieldInitialValue = exports.getFieldError = exports.defaultValueToInput = exports.defaultEventToValue = exports.defaultDirtyCheck = exports.createSubscribeToNamespace = exports.createSubscribeToField = exports.createGetSnapshotNamespaceState = exports.createGetSnapshotFieldState = exports.clearNamespace = exports.clearField = exports.checkedEventToValue = exports.NAMESPACE_STATE_DEFAULT = exports.FIELD_STATE_DEFAULT = exports.FIELD_KEY_VALUE_ON_FOCUS = exports.FIELD_KEY_VALUE = exports.FIELD_KEY_VALID = exports.FIELD_KEY_TOUCHED = exports.FIELD_KEY_INITIAL_VALUE_ERROR = exports.FIELD_KEY_INITIAL_VALUE = exports.FIELD_KEY_FOCUS = exports.FIELD_KEY_ERROR = exports.FIELD_KEY_DIRTY = exports.FIELD_DEFAULT_VALUE_ON_FOCUS = exports.FIELD_DEFAULT_VALUE = exports.FIELD_DEFAULT_VALID = exports.FIELD_DEFAULT_TOUCHED = exports.FIELD_DEFAULT_FOCUS = exports.FIELD_DEFAULT_ERROR = exports.FIELD_DEFAULT_DIRTY = exports.FIELD_DEFAULT_DEFAULT_VALUE_ERROR = exports.FIELD_DEFAULT_DEFAULT_VALUE = exports.BFMHooksContext = void 0; var _context = __webpack_require__(/*! ./context */ "./build/context.js"); exports.BFMHooksContext = _context.BFMHooksContext; var _fieldKeys = __webpack_require__(/*! ./constants/field-keys */ "./build/constants/field-keys.js"); exports.FIELD_KEY_INITIAL_VALUE = _fieldKeys.FIELD_KEY_INITIAL_VALUE; exports.FIELD_KEY_INITIAL_VALUE_ERROR = _fieldKeys.FIELD_KEY_INITIAL_VALUE_ERROR; exports.FIELD_KEY_DIRTY = _fieldKeys.FIELD_KEY_DIRTY; exports.FIELD_KEY_ERROR = _fieldKeys.FIELD_KEY_ERROR; exports.FIELD_KEY_FOCUS = _fieldKeys.FIELD_KEY_FOCUS; exports.FIELD_KEY_TOUCHED = _fieldKeys.FIELD_KEY_TOUCHED; exports.FIELD_KEY_VALID = _fieldKeys.FIELD_KEY_VALID; exports.FIELD_KEY_VALUE = _fieldKeys.FIELD_KEY_VALUE; exports.FIELD_KEY_VALUE_ON_FOCUS = _fieldKeys.FIELD_KEY_VALUE_ON_FOCUS; var _fieldDefaults = __webpack_require__(/*! ./constants/field-defaults */ "./build/constants/field-defaults.js"); exports.FIELD_DEFAULT_DEFAULT_VALUE = _fieldDefaults.FIELD_DEFAULT_DEFAULT_VALUE; exports.FIELD_DEFAULT_DEFAULT_VALUE_ERROR = _fieldDefaults.FIELD_DEFAULT_DEFAULT_VALUE_ERROR; exports.FIELD_DEFAULT_DIRTY = _fieldDefaults.FIELD_DEFAULT_DIRTY; exports.FIELD_DEFAULT_ERROR = _fieldDefaults.FIELD_DEFAULT_ERROR; exports.FIELD_DEFAULT_FOCUS = _fieldDefaults.FIELD_DEFAULT_FOCUS; exports.FIELD_DEFAULT_TOUCHED = _fieldDefaults.FIELD_DEFAULT_TOUCHED; exports.FIELD_DEFAULT_VALID = _fieldDefaults.FIELD_DEFAULT_VALID; exports.FIELD_DEFAULT_VALUE = _fieldDefaults.FIELD_DEFAULT_VALUE; exports.FIELD_DEFAULT_VALUE_ON_FOCUS = _fieldDefaults.FIELD_DEFAULT_VALUE_ON_FOCUS; var _stateDefaults = __webpack_require__(/*! ./constants/state-defaults */ "./build/constants/state-defaults.js"); exports.FIELD_STATE_DEFAULT = _stateDefaults.FIELD_STATE_DEFAULT; exports.NAMESPACE_STATE_DEFAULT = _stateDefaults.NAMESPACE_STATE_DEFAULT; var _actions = __webpack_require__(/*! ./field/actions */ "./build/field/actions.js"); exports.clearField = _actions.clearField; exports.resetField = _actions.resetField; var _getters = __webpack_require__(/*! ./field/getters */ "./build/field/getters.js"); exports.getFieldInitialValue = _getters.getFieldInitialValue; exports.getFieldError = _getters.getFieldError; exports.getFieldValue = _getters.getFieldValue; exports.getFieldValueOnFocus = _getters.getFieldValueOnFocus; exports.hasFieldFocus = _getters.hasFieldFocus; exports.isFieldDirty = _getters.isFieldDirty; exports.isFieldTouched = _getters.isFieldTouched; exports.isFieldValid = _getters.isFieldValid; var _hooks = __webpack_require__(/*! ./field/hooks */ "./build/field/hooks.js"); exports.useFieldError = _hooks.useFieldError; exports.useFieldHasFocus = _hooks.useFieldHasFocus; exports.useFieldIsDirty = _hooks.useFieldIsDirty; exports.useFieldIsTouched = _hooks.useFieldIsTouched; exports.useFieldIsValid = _hooks.useFieldIsValid; exports.useFieldState = _hooks.useFieldState; exports.useFieldValue = _hooks.useFieldValue; exports.useFieldValueOnFocus = _hooks.useFieldValueOnFocus; var _helpers = __webpack_require__(/*! ./helpers */ "./build/helpers.js"); exports.checkedEventToValue = _helpers.checkedEventToValue; exports.defaultDirtyCheck = _helpers.defaultDirtyCheck; exports.defaultEventToValue = _helpers.defaultEventToValue; exports.defaultValueToInput = _helpers.defaultValueToInput; exports.mapFieldValueAndError = _helpers.mapFieldValueAndError; exports.validateFieldName = _helpers.validateFieldName; exports.validateNamespace = _helpers.validateNamespace; var _actions2 = __webpack_require__(/*! ./namespace/actions */ "./build/namespace/actions.js"); exports.clearNamespace = _actions2.clearNamespace; exports.resetNamespace = _actions2.resetNamespace; var _hooks2 = __webpack_require__(/*! ./namespace/hooks */ "./build/namespace/hooks.js"); exports.useNamespaceErrors = _hooks2.useNamespaceErrors; exports.useNamespaceHasFocus = _hooks2.useNamespaceHasFocus; exports.useNamespaceIsDirty = _hooks2.useNamespaceIsDirty; exports.useNamespaceIsTouched = _hooks2.useNamespaceIsTouched; exports.useNamespaceIsValid = _hooks2.useNamespaceIsValid; exports.useNamespaceKeyIsEvery = _hooks2.useNamespaceKeyIsEvery; exports.useNamespaceKeyIsSome = _hooks2.useNamespaceKeyIsSome; exports.useNamespaceKeyValues = _hooks2.useNamespaceKeyValues; exports.useNamespaceState = _hooks2.useNamespaceState; exports.useNamespaceValues = _hooks2.useNamespaceValues; exports.useNamespaceValuesOnFocus = _hooks2.useNamespaceValuesOnFocus; var _getters2 = __webpack_require__(/*! ./namespace/getters */ "./build/namespace/getters.js"); exports.getNamespaceInitialValues = _getters2.getNamespaceInitialValues; exports.getNamespaceErrors = _getters2.getNamespaceErrors; exports.getNamespaceKeyIsEvery = _getters2.getNamespaceKeyIsEvery; exports.getNamespaceKeyIsSome = _getters2.getNamespaceKeyIsSome; exports.getNamespaceKeyValues = _getters2.getNamespaceKeyValues; exports.getNamespaceValues = _getters2.getNamespaceValues; exports.getNamespaceValuesOnFocus = _getters2.getNamespaceValuesOnFocus; exports.hasNamespaceFocus = _getters2.hasNamespaceFocus; exports.isNamespaceDirty = _getters2.isNamespaceDirty; exports.isNamespaceTouched = _getters2.isNamespaceTouched; exports.isNamespaceValid = _getters2.isNamespaceValid; var _state = __webpack_require__(/*! ./state */ "./build/state.js"); exports.getFieldState = _state.getFieldState; exports.getNamespaceState = _state.getNamespaceState; exports.initFieldState = _state.initFieldState; exports.removeField = _state.removeField; exports.createGetSnapshotFieldState = _state.createGetSnapshotFieldState; exports.createGetSnapshotNamespaceState = _state.createGetSnapshotNamespaceState; exports.createSubscribeToField = _state.createSubscribeToField; exports.createSubscribeToNamespace = _state.createSubscribeToNamespace; exports.updateFieldStateWithCallback = _state.updateFieldStateWithCallback; var _useConnectField = __webpack_require__(/*! ./use-connect-field */ "./build/use-connect-field.js"); exports.useConnectField = _useConnectField.useConnectField; /***/ }), /***/ "./build/namespace/actions.js": /*!************************************!*\ !*** ./build/namespace/actions.js ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.resetNamespace = exports.clearNamespace = void 0; var _ = __webpack_require__(/*! .. */ "./build/index.js"); var _state = __webpack_require__(/*! ../state */ "./build/state.js"); /** * Reset namespace, but ignoring the default values of the fields */ var clearNamespace = function clearNamespace(namespace) { var fieldNames = Object.keys((0, _state.getNamespaceState)(namespace) || {}); fieldNames.forEach(function (fieldName) { (0, _.clearField)(namespace, fieldName); }); }; /** * Reset namespace to default state and setting last provided default value per field */ exports.clearNamespace = clearNamespace; var resetNamespace = function resetNamespace(namespace) { var fieldNames = Object.keys((0, _state.getNamespaceState)(namespace) || {}); fieldNames.forEach(function (fieldName) { (0, _.resetField)(namespace, fieldName); }); }; exports.resetNamespace = resetNamespace; /***/ }), /***/ "./build/namespace/getters.js": /*!************************************!*\ !*** ./build/namespace/getters.js ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.isNamespaceValid = exports.isNamespaceTouched = exports.isNamespaceDirty = exports.hasNamespaceFocus = exports.getNamespaceValuesOnFocus = exports.getNamespaceValues = exports.getNamespaceKeyValues = exports.getNamespaceKeyIsSome = exports.getNamespaceKeyIsEvery = exports.getNamespaceInitialValues = exports.getNamespaceErrors = void 0; var _state = __webpack_require__(/*! ../state */ "./build/state.js"); var _fieldKeys = __webpack_require__(/*! ../constants/field-keys */ "./build/constants/field-keys.js"); var getNamespaceKeyValues = function getNamespaceKeyValues(namespace, key) { var namespaceState = (0, _state.getNamespaceState)(namespace); return namespaceState && Object.entries(namespaceState).reduce(function (values, _ref) { var fieldName = _ref[0], fieldState = _ref[1]; values[fieldName] = fieldState[key]; return values; }, {}); }; exports.getNamespaceKeyValues = getNamespaceKeyValues; var getNamespaceKeyIsEvery = function getNamespaceKeyIsEvery(namespace, key) { var namespaceState = (0, _state.getNamespaceState)(namespace); return namespaceState && Object.values(namespaceState).every(function (fieldState) { return fieldState[key] || false; }); }; exports.getNamespaceKeyIsEvery = getNamespaceKeyIsEvery; var getNamespaceKeyIsSome = function getNamespaceKeyIsSome(namespace, key) { var namespaceState = (0, _state.getNamespaceState)(namespace); return namespaceState && Object.values(namespaceState).some(function (fieldState) { return fieldState[key] || false; }); }; exports.getNamespaceKeyIsSome = getNamespaceKeyIsSome; var getNamespaceInitialValues = function getNamespaceInitialValues(namespace) { return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_INITIAL_VALUE); }; exports.getNamespaceInitialValues = getNamespaceInitialValues; var getNamespaceErrors = function getNamespaceErrors(namespace) { return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_ERROR); }; exports.getNamespaceErrors = getNamespaceErrors; var getNamespaceValues = function getNamespaceValues(namespace) { return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE); }; exports.getNamespaceValues = getNamespaceValues; var getNamespaceValuesOnFocus = function getNamespaceValuesOnFocus(namespace) { return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE_ON_FOCUS); }; exports.getNamespaceValuesOnFocus = getNamespaceValuesOnFocus; var hasNamespaceFocus = function hasNamespaceFocus(namespace) { return getNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_FOCUS); }; exports.hasNamespaceFocus = hasNamespaceFocus; var isNamespaceDirty = function isNamespaceDirty(namespace) { return getNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_DIRTY); }; exports.isNamespaceDirty = isNamespaceDirty; var isNamespaceTouched = function isNamespaceTouched(namespace) { return getNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_TOUCHED); }; exports.isNamespaceTouched = isNamespaceTouched; var isNamespaceValid = function isNamespaceValid(namespace) { return getNamespaceKeyIsEvery(namespace, _fieldKeys.FIELD_KEY_VALID); }; exports.isNamespaceValid = isNamespaceValid; /***/ }), /***/ "./build/namespace/hooks.js": /*!**********************************!*\ !*** ./build/namespace/hooks.js ***! \**********************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; exports.__esModule = true; exports.useNamespaceValuesOnFocus = exports.useNamespaceValues = exports.useNamespaceState = exports.useNamespaceKeyValues = exports.useNamespaceKeyIsSome = exports.useNamespaceKeyIsEvery = exports.useNamespaceIsValid = exports.useNamespaceIsTouched = exports.useNamespaceIsDirty = exports.useNamespaceHasFocus = exports.useNamespaceErrors = void 0; var _react = __webpack_require__(/*! react */ "react"); var _context = __webpack_require__(/*! ../context */ "./build/context.js"); var _helpers = __webpack_require__(/*! ../helpers */ "./build/helpers.js"); var _fieldKeys = __webpack_require__(/*! ../constants/field-keys */ "./build/constants/field-keys.js"); var _stateDefaults = __webpack_require__(/*! ../constants/state-defaults */ "./build/constants/state-defaults.js"); var getServerSnapshot = function getServerSnapshot() { return undefined; }; var useNamespaceState = function useNamespaceState(namespace) { if (true) { if (!(0, _helpers.validateNamespace)(namespace)) { throw new Error('Expected string with a minimal length of 1 for `namespace`'); } } var _useContext = (0, _react.useContext)(_context.BFMHooksContext), createSubscribeToNamespace = _useContext.createSubscribeToNamespace, createGetSnapshotNamespaceState = _useContext.createGetSnapshotNamespaceState; var subscribe = (0, _react.useMemo)(function () { return createSubscribeToNamespace(namespace); }, [createSubscribeToNamespace, namespace]); var getSnapshot = (0, _react.useMemo)(function () { return createGetSnapshotNamespaceState(namespace); }, [createGetSnapshotNamespaceState, namespace]); return (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot); }; exports.useNamespaceState = useNamespaceState; var useNamespaceKeyValues = function useNamespaceKeyValues(namespace, key) { var namespaceState = useNamespaceState(namespace); return namespaceState && Object.entries(namespaceState).reduce(function (values, _ref) { var fieldName = _ref[0], fieldState = _ref[1]; values[fieldName] = fieldState[key]; return values; }, {}); }; exports.useNamespaceKeyValues = useNamespaceKeyValues; var useNamespaceKeyIsEvery = function useNamespaceKeyIsEvery(namespace, key) { var namespaceState = useNamespaceState(namespace); return namespaceState && Object.values(namespaceState || _stateDefaults.NAMESPACE_STATE_DEFAULT).every(function (fieldState) { return fieldState[key] || false; }); }; exports.useNamespaceKeyIsEvery = useNamespaceKeyIsEvery; var useNamespaceKeyIsSome = function useNamespaceKeyIsSome(namespace, key) { var namespaceState = useNamespaceState(namespace); return namespaceState && Object.values(namespaceState || _stateDefaults.NAMESPACE_STATE_DEFAULT).some(function (fieldState) { return fieldState[key] || false; }); }; /** * Falsy error values are always returned as null */ exports.useNamespaceKeyIsSome = useNamespaceKeyIsSome; var useNamespaceErrors = function useNamespaceErrors(namespace) { return useNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_ERROR); }; exports.useNamespaceErrors = useNamespaceErrors; var useNamespaceHasFocus = function useNamespaceHasFocus(namespace) { return useNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_FOCUS); }; exports.useNamespaceHasFocus = useNamespaceHasFocus; var useNamespaceIsDirty = function useNamespaceIsDirty(namespace) { return useNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_DIRTY); }; exports.useNamespaceIsDirty = useNamespaceIsDirty; var useNamespaceIsTouched = function useNamespaceIsTouched(namespace) { return useNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_TOUCHED); }; exports.useNamespaceIsTouched = useNamespaceIsTouched; var useNamespaceIsValid = function useNamespaceIsValid(namespace) { return useNamespaceKeyIsEvery(namespace, _fieldKeys.FIELD_KEY_VALID); }; exports.useNamespaceIsValid = useNamespaceIsValid; var useNamespaceValues = function useNamespaceValues(namespace) { return useNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE); }; exports.useNamespaceValues = useNamespaceValues; var useNamespaceValuesOnFocus = function useNamespaceValuesOnFocus(namespace) { return useNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE_ON_FOCUS); }; exports.useNamespaceValuesOnFocus = useNamespaceValuesOnFocus; /***/ }), /***/ "./build/state.js": /*!************************!*\ !*** ./build/state.js ***! \************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = (__webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"]); exports.__esModule = true; exports.updateFieldStateWithCallback = exports.removeField = exports.initFieldState = exports.getNamespaceState = exports.getFieldState = exports.createSubscribeToNamespace = exports.createSubscribeToField = exports.createGetSnapshotNamespaceState = exports.createGetSnapshotFieldState = void 0; var _extends4 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js")); var _stateDefaults = __webpack_require__(/*! ./constants/state-defaults */ "./build/constants/state-defaults.js"); var _helpers = __webpack_require__(/*! ./helpers */ "./build/helpers.js"); var stateCreator = function stateCreator() { var state = {}; var subscribers = {}; var idCounter = 0; var getFieldState = function getFieldState(namespace, fieldName) { var _state$namespace; return (_state$namespace = state[namespace]) == null ? void 0 : _state$namespace[fieldName]; }; var getNamespaceState = function getNamespaceState(namespace) { return state[namespace]; }; var createGetSnapshotFieldState = function createGetSnapshotFieldState(namespace, fieldName) { return function () { return getFieldState(namespace, fieldName); }; }; var createGetSnapshotNamespaceState = function createGetSnapshotNamespaceState(namespace) { return function () { return getNamespaceState(namespace); }; }; var subscribe = function subscribe(listener, namespace, fieldName) { if (!subscribers[namespace]) { subscribers[namespace] = new Map(); } var id = ++idCounter; subscribers[namespace].set(id, { listener: listener, fieldName: fieldName }); return function () { subscribers[namespace] && subscribers[namespace].has(id) && subscribers[namespace]["delete"](id); }; }; var createSubscribeToField = function createSubscribeToField(namespace, fieldName) { return function (listener) { return subscribe(listener, namespace, fieldName); }; }; var createSubscribeToNamespace = function createSubscribeToNamespace(namespace) { return function (listener) { return subscribe(listener, namespace); }; }; var triggerSubscribers = function triggerSubscribers(namespace, _fieldName) { var namespaceSubscribers = subscribers[namespace]; if (namespaceSubscribers) { namespaceSubscribers.forEach(function (_ref) { var listener = _ref.listener, fieldName = _ref.fieldName; if (!fieldName) { listener(); } if (fieldName === _fieldName) { listener(); } }); } }; var initFieldState = function initFieldState(namespace, fieldName, value, error) { var _extends2; state[namespace] = (0, _extends4["default"])({}, state[namespace], (_extends2 = {}, _extends2[fieldName] = (0, _extends4["default"])({}, _stateDefaults.FIELD_STATE_DEFAULT, (0, _helpers.mapFieldValueAndError)(value, error)), _extends2)); triggerSubscribers(namespace, fieldName); }; var updateFieldStateWithCallback = function updateFieldStateWithCallback(namespace, fieldName, callback) { var currentFieldState = getFieldState(namespace, fieldName); if (currentFieldState) { var update = callback(currentFieldState); if (update) { var _extends3; state[namespace] = (0, _extends4["default"])({}, state[namespace], (_extends3 = {}, _extends3[fieldName] = (0, _extends4["default"])({}, currentFieldState, update), _extends3)); triggerSubscribers(namespace, fieldName); } } }; var removeField = function removeField(namespace, fieldName) { var _state$namespace2; if ((_state$namespace2 = state[namespace]) != null && _state$namespace2[fieldName]) { delete state[namespace][fieldName]; // immutable state state[namespace] = (0, _extends4["default"])({}, state[namespace]); if (Object.keys(state[namespace]).length === 0) { delete state[namespace]; } triggerSubscribers(namespace, fieldName); } }; return { getFieldState: getFieldState, getNamespaceState: getNamespaceState, initFieldState: initFieldState, removeField: removeField, createGetSnapshotFieldState: createGetSnapshotFieldState, createGetSnapshotNamespaceState: createGetSnapshotNamespaceState, createSubscribeToField: createSubscribeToField, createSubscribeToNamespace: createSubscribeToNamespace, updateFieldStateWithCallback: updateFieldStateWithCallback }; }; var _stateCreator = stateCreator(), getFieldState = _stateCreator.getFieldState, getNamespaceState = _stateCreator.getNamespaceState, initFieldState = _stateCreator.initFieldState, removeField = _stateCreator.removeField, createGetSnapshotFieldState = _stateCreator.createGetSnapshotFieldState, createGetSnapshotNamespaceState = _stateCreator.createGetSnapshotNamespaceState, createSubscribeToField = _stateCreator.createSubscribeToField, createSubscribeToNamespace = _stateCreator.createSubscribeToNamespace, updateFieldStateWithCallback = _stateCreator.updateFieldStateWithCallback; exports.updateFieldStateWithCallback = updateFieldStateWithCallback; exports.createSubscribeToNamespace = createSubscribeToNamespace; exports.createSubscribeToField = createSubscribeToField; exports.createGetSnapshotNamespaceState = createGetSnapshotNamespaceState; exports.createGetSnapshotFieldState = createGetSnapshotFieldState; exports.removeField = removeField; exports.initFieldState = initFieldState; exports.getNamespaceState = getNamespaceState; exports.getFieldState = getFieldState; /***/ }), /***/ "./build/use-connect-field.js": /*!************************************!*\ !*** ./build/use-connect-field.js ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var _interopRequireDefault = (__webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js")["default"]); exports.__esModule = true; exports.useConnectField = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js")); var _react = __webpack_require__(/*! react */ "react"); var _context = __webpack_require__(/*! ./context */ "./build/context.js"); var _helpers = __webpack_require__(/*! ./helpers */ "./build/helpers.js"); var _hooks = __webpack_require__(/*! ./field/hooks */ "./build/field/hooks.js"); var _excluded = ["validator", "dirtyCheck", "transformValueToInput", "transformEventToValue", "onChange", "onFocus", "onBlur"], _excluded2 = ["namespace", "fieldName", "initialValue"]; var useConnectField = function useConnectField(props) { var _useContext = (0, _react.useContext)(_context.BFMHooksContext), blurField = _useContext.blurField, changeField = _useContext.changeField, initialValueField = _useContext.initialValueField, focusField = _useContext.focusField, initField = _useContext.initField, removeField = _useContext.removeField; var validator = props.validator, dirtyCheck = props.dirtyCheck, _props$transformValue = props.transformValueToInput, transformValueToInput = _props$transformValue === void 0 ? _helpers.defaultValueToInput : _props$transformValue, transformEventToValue = props.transformEventToValue, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, staticProps = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded); // For storing static props see bellow. var propsRef = (0, _react.useRef)({}); // Hook specific props. var namespace = staticProps.namespace, fieldName = staticProps.fieldName, initialValue = staticProps.initialValue, otherProps = (0, _objectWithoutPropertiesLoose2["default"])(staticProps, _excluded2); // Throw an error if namespace and/or fieldName changes after first rendering, because it's not supported // Dynamically changing these values can result in strange side effects. It's better to render a new component. var namesRef = (0, _react.useRef)({ namespace: namespace, fieldName: fieldName }); (0, _react.useEffect)(function () { if (namesRef.current.namespace !== namespace || namesRef.current.fieldName !== fieldName) { throw new Error('Changing the namespace and/or fieldName of an already rendered component is not supported.'); } }, [namespace, fieldName]); // Store static props for use in the validator callback. // This way you can (re-)use for example: required, minlength, maxlength, etc. in the validator propsRef.current = staticProps; var getError = (0, _react.useCallback)(function (_value) { return validator && validator(_value, propsRef.current); }, [validator]); var value = (0, _hooks.useFieldValue)(namespace, fieldName); (0, _react.useEffect)(function () { // init field on mount initField(namespace, fieldName, initialValue, getError(initialValue)); // remove field on unmount return function () { removeField(namespace, fieldName); }; }, []); // eslint-disable-line react-hooks/exhaustive-deps // update initialValue on change, see `initialValueField` function for more info (0, _react.useEffect)(function () { initialValueField(namespace, fieldName, initialValue, getError(initialValue)); }, [initialValueField, fieldName, getError, initialValue, namespace]); var handleFocus = (0, _react.useCallback)(function (event) { focusField(namespace, fieldName); onFocus && onFocus(event); }, [fieldName, namespace, onFocus, focusField]); var handleChange = (0, _react.useCallback)(function (arg1, arg2, arg3, arg4, arg5) { var value = transformEventToValue ? transformEventToValue(arg1, arg2, arg3, arg4, arg5) : (0, _helpers.defaultEventToValue)(arg1); var error = getError(value); changeField(namespace, fieldName, value, error, dirtyCheck); onChange && onChange(arg1, arg2, arg3, arg4, arg5); }, [transformEventToValue, getError, changeField, namespace, fieldName, dirtyCheck, onChange]); var handleBlur = (0, _react.useCallback)(function (event) { blurField(namespace, fieldName); onBlur && onBlur(event); }, [fieldName, namespace, onBlur, blurField]); return (0, _extends2["default"])({}, otherProps, { value: transformValueToInput(value), onFocus: handleFocus, onChange: handleChange, onBlur: handleBlur }); }; exports.useConnectField = useConnectField; /***/ }), /***/ "react": /*!**************************************************************************************!*\ !*** external {"root":"React","commonjs":"react","commonjs2":"react","amd":"react"} ***! \**************************************************************************************/ /***/ ((module) => { "use strict"; module.exports = __WEBPACK_EXTERNAL_MODULE_react__; /***/ }), /***/ "./node_modules/@babel/runtime/helpers/extends.js": /*!********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/extends.js ***! \********************************************************/ /***/ ((module) => { function _extends() { module.exports = _extends = Obje