react-bfm
Version:
A basic field / form manager for React using hooks
957 lines (877 loc) • 52.2 kB
JavaScript
(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 = exports.FIELD_DEFAULT_DEFAULT_VALUE = undefined;
/**
* @deprecated Will be removed in v3.0.0. This is an internal implementation detail.
*/
var FIELD_DEFAULT_DEFAULT_VALUE_ERROR = exports.FIELD_DEFAULT_DEFAULT_VALUE_ERROR = undefined;
var FIELD_DEFAULT_DIRTY = exports.FIELD_DEFAULT_DIRTY = false;
var FIELD_DEFAULT_ERROR = exports.FIELD_DEFAULT_ERROR = null;
var FIELD_DEFAULT_FOCUS = exports.FIELD_DEFAULT_FOCUS = false;
var FIELD_DEFAULT_TOUCHED = exports.FIELD_DEFAULT_TOUCHED = false;
var FIELD_DEFAULT_VALID = exports.FIELD_DEFAULT_VALID = true;
var FIELD_DEFAULT_VALUE = exports.FIELD_DEFAULT_VALUE = undefined;
var FIELD_DEFAULT_VALUE_ON_FOCUS = exports.FIELD_DEFAULT_VALUE_ON_FOCUS = null;
/***/ },
/***/ "./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 = exports.FIELD_KEY_INITIAL_VALUE = 'initialValue';
/**
* @deprecated Will be removed in v3.0.0. This is an internal implementation detail.
*/
var FIELD_KEY_INITIAL_VALUE_ERROR = exports.FIELD_KEY_INITIAL_VALUE_ERROR = 'initialValueError';
var FIELD_KEY_DIRTY = exports.FIELD_KEY_DIRTY = 'dirty';
var FIELD_KEY_ERROR = exports.FIELD_KEY_ERROR = 'error';
var FIELD_KEY_FOCUS = exports.FIELD_KEY_FOCUS = 'focus';
var FIELD_KEY_TOUCHED = exports.FIELD_KEY_TOUCHED = 'touched';
var FIELD_KEY_VALID = exports.FIELD_KEY_VALID = 'valid';
var FIELD_KEY_VALUE = exports.FIELD_KEY_VALUE = 'value';
var FIELD_KEY_VALUE_ON_FOCUS = exports.FIELD_KEY_VALUE_ON_FOCUS = 'valueOnFocus';
/***/ },
/***/ "./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 = exports.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);
Object.freeze(FIELD_STATE_DEFAULT);
var NAMESPACE_STATE_DEFAULT = exports.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 initial value only when the field is not touched and not focused
* 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 and not focused
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));
});
};
/**
* @deprecated Will be removed in v3.0.0. This is an internal implementation detail and should not be used directly.
*/
var BFMHooksContext = exports.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
});
/***/ },
/***/ "./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 initial value
*/
var clearField = exports.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 initial value
*/
var resetField = exports.resetField = function resetField(namespace, fieldName) {
(0, _state.updateFieldStateWithCallback)(namespace, fieldName, function (currentState) {
var _currentState$FIELD_K;
return (0, _extends2["default"])({}, _stateDefaults.FIELD_STATE_DEFAULT, (0, _helpers.mapFieldValueAndError)((_currentState$FIELD_K = currentState[_fieldKeys.FIELD_KEY_INITIAL_VALUE]) != null ? _currentState$FIELD_K : _fieldDefaults.FIELD_DEFAULT_VALUE, currentState[_fieldKeys.FIELD_KEY_INITIAL_VALUE_ERROR]));
});
};
/***/ },
/***/ "./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 = exports.getFieldError = function getFieldError(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_ERROR];
};
var getFieldValue = exports.getFieldValue = function getFieldValue(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE];
};
var getFieldInitialValue = exports.getFieldInitialValue = function getFieldInitialValue(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_INITIAL_VALUE];
};
var getFieldValueOnFocus = exports.getFieldValueOnFocus = function getFieldValueOnFocus(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS];
};
var hasFieldFocus = exports.hasFieldFocus = function hasFieldFocus(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_FOCUS]) || false;
};
var isFieldDirty = exports.isFieldDirty = function isFieldDirty(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_DIRTY]) || false;
};
var isFieldTouched = exports.isFieldTouched = function isFieldTouched(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_TOUCHED]) || false;
};
var isFieldValid = exports.isFieldValid = function isFieldValid(namespace, fieldName) {
var fieldState = (0, _state.getFieldState)(namespace, fieldName);
return (fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALID]) || false;
};
/***/ },
/***/ "./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 = exports.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);
};
var useFieldError = exports.useFieldError = function useFieldError(namespace, fieldName) {
var fieldState = useFieldState(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_ERROR];
};
var useFieldHasFocus = exports.useFieldHasFocus = function useFieldHasFocus(namespace, fieldName) {
var fieldState = useFieldState(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_FOCUS];
};
var useFieldIsDirty = exports.useFieldIsDirty = function useFieldIsDirty(namespace, fieldName) {
var fieldState = useFieldState(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_DIRTY];
};
var useFieldIsTouched = exports.useFieldIsTouched = function useFieldIsTouched(namespace, fieldName) {
var fieldState = useFieldState(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_TOUCHED];
};
var useFieldIsValid = exports.useFieldIsValid = function useFieldIsValid(namespace, fieldName) {
var fieldState = useFieldState(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALID];
};
var useFieldValue = exports.useFieldValue = function useFieldValue(namespace, fieldName) {
var fieldState = useFieldState(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE];
};
var useFieldValueOnFocus = exports.useFieldValueOnFocus = function useFieldValueOnFocus(namespace, fieldName) {
var fieldState = useFieldState(namespace, fieldName);
return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS];
};
/***/ },
/***/ "./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 = exports.checkedEventToValue = function checkedEventToValue(event) {
var _event$target;
return event == null || (_event$target = event.target) == null ? void 0 : _event$target.checked;
};
var defaultEventToValue = exports.defaultEventToValue = function defaultEventToValue(event) {
var _event$target2;
return event == null || (_event$target2 = event.target) == null ? void 0 : _event$target2.value;
};
var defaultDirtyCheck = exports.defaultDirtyCheck = function defaultDirtyCheck(newValue, valueOnFocus) {
return newValue !== valueOnFocus;
};
var defaultValueToInput = exports.defaultValueToInput = function defaultValueToInput(value) {
return value !== undefined ? value : '';
};
/**
* @deprecated Will be removed in v3.0.0. This is an internal implementation detail.
*/
var mapFieldValueAndError = exports.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;
};
var validateFieldName = exports.validateFieldName = function validateFieldName(fieldName) {
return (fieldName == null ? void 0 : fieldName.length) > 0;
};
var validateNamespace = exports.validateNamespace = function validateNamespace(namespace) {
return (namespace == null ? void 0 : namespace.length) > 0;
};
/***/ },
/***/ "./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 _actions = __webpack_require__(/*! ../field/actions */ "./build/field/actions.js");
var _state = __webpack_require__(/*! ../state */ "./build/state.js");
/**
* Reset namespace, but ignoring the initial values of the fields
*/
var clearNamespace = exports.clearNamespace = function clearNamespace(namespace) {
var fieldNames = Object.keys((0, _state.getNamespaceState)(namespace) || {});
fieldNames.forEach(function (fieldName) {
(0, _actions.clearField)(namespace, fieldName);
});
};
/**
* Reset namespace to default state and setting last provided initial value per field
*/
var resetNamespace = exports.resetNamespace = function resetNamespace(namespace) {
var fieldNames = Object.keys((0, _state.getNamespaceState)(namespace) || {});
fieldNames.forEach(function (fieldName) {
(0, _actions.resetField)(namespace, fieldName);
});
};
/***/ },
/***/ "./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 = exports.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;
}, {});
};
var getNamespaceKeyIsEvery = exports.getNamespaceKeyIsEvery = function getNamespaceKeyIsEvery(namespace, key) {
var namespaceState = (0, _state.getNamespaceState)(namespace);
return namespaceState && Object.values(namespaceState).every(function (fieldState) {
return fieldState[key] || false;
});
};
var getNamespaceKeyIsSome = exports.getNamespaceKeyIsSome = function getNamespaceKeyIsSome(namespace, key) {
var namespaceState = (0, _state.getNamespaceState)(namespace);
return namespaceState && Object.values(namespaceState).some(function (fieldState) {
return fieldState[key] || false;
});
};
var getNamespaceInitialValues = exports.getNamespaceInitialValues = function getNamespaceInitialValues(namespace) {
return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_INITIAL_VALUE);
};
var getNamespaceErrors = exports.getNamespaceErrors = function getNamespaceErrors(namespace) {
return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_ERROR);
};
var getNamespaceValues = exports.getNamespaceValues = function getNamespaceValues(namespace) {
return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE);
};
var getNamespaceValuesOnFocus = exports.getNamespaceValuesOnFocus = function getNamespaceValuesOnFocus(namespace) {
return getNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE_ON_FOCUS);
};
var hasNamespaceFocus = exports.hasNamespaceFocus = function hasNamespaceFocus(namespace) {
return getNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_FOCUS);
};
var isNamespaceDirty = exports.isNamespaceDirty = function isNamespaceDirty(namespace) {
return getNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_DIRTY);
};
var isNamespaceTouched = exports.isNamespaceTouched = function isNamespaceTouched(namespace) {
return getNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_TOUCHED);
};
var isNamespaceValid = exports.isNamespaceValid = function isNamespaceValid(namespace) {
return getNamespaceKeyIsEvery(namespace, _fieldKeys.FIELD_KEY_VALID);
};
/***/ },
/***/ "./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 = exports.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);
};
var useNamespaceKeyValues = exports.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;
}, {});
};
var useNamespaceKeyIsEvery = exports.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;
});
};
var useNamespaceKeyIsSome = exports.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;
});
};
/**
* Error values reflect the stored field error; falsy errors are normalized when mapped into field state.
*/
var useNamespaceErrors = exports.useNamespaceErrors = function useNamespaceErrors(namespace) {
return useNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_ERROR);
};
var useNamespaceHasFocus = exports.useNamespaceHasFocus = function useNamespaceHasFocus(namespace) {
return useNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_FOCUS);
};
var useNamespaceIsDirty = exports.useNamespaceIsDirty = function useNamespaceIsDirty(namespace) {
return useNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_DIRTY);
};
var useNamespaceIsTouched = exports.useNamespaceIsTouched = function useNamespaceIsTouched(namespace) {
return useNamespaceKeyIsSome(namespace, _fieldKeys.FIELD_KEY_TOUCHED);
};
var useNamespaceIsValid = exports.useNamespaceIsValid = function useNamespaceIsValid(namespace) {
return useNamespaceKeyIsEvery(namespace, _fieldKeys.FIELD_KEY_VALID);
};
var useNamespaceValues = exports.useNamespaceValues = function useNamespaceValues(namespace) {
return useNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE);
};
var useNamespaceValuesOnFocus = exports.useNamespaceValuesOnFocus = function useNamespaceValuesOnFocus(namespace) {
return useNamespaceKeyValues(namespace, _fieldKeys.FIELD_KEY_VALUE_ON_FOCUS);
};
/***/ },
/***/ "./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 () {
if (subscribers[namespace] && subscribers[namespace].has(id)) {
subscribers[namespace]["delete"](id);
if (subscribers[namespace].size === 0) {
delete subscribers[namespace];
}
}
};
};
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 && typeof update === 'object') {
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 = exports.getFieldState = _stateCreator.getFieldState,
getNamespaceState = exports.getNamespaceState = _stateCreator.getNamespaceState,
initFieldState = exports.initFieldState = _stateCreator.initFieldState,
removeField = exports.removeField = _stateCreator.removeField,
createGetSnapshotFieldState = exports.createGetSnapshotFieldState = _stateCreator.createGetSnapshotFieldState,
createGetSnapshotNamespaceState = exports.createGetSnapshotNamespaceState = _stateCreator.createGetSnapshotNamespaceState,
createSubscribeToField = exports.createSubscribeToField = _stateCreator.createSubscribeToField,
createSubscribeToNamespace = exports.createSubscribeToNamespace = _stateCreator.createSubscribeToNamespace,
updateFieldStateWithCallback = exports.updateFieldStateWithCallback = _stateCreator.updateFieldStateWithCallback;
/***/ },
/***/ "./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 = exports.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)(staticProps);
// 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
// eslint-disable-next-line react-hooks/refs -- Intentional: avoid recreating getError on every render
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(namesRef.current.namespace, namesRef.current.fieldName, initialValue, getError(initialValue));
}, [initialValueField, getError, initialValue]);
var handleFocus = (0, _react.useCallback)(function (event) {
focusField(namesRef.current.namespace, namesRef.current.fieldName);
if (onFocus) {
onFocus(event);
}
}, [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(namesRef.current.namespace, namesRef.current.fieldName, value, error, dirtyCheck);
if (onChange) {
onChange(arg1, arg2, arg3, arg4, arg5);
}
}, [transformEventToValue, getError, changeField, dirtyCheck, onChange]);
var handleBlur = (0, _react.useCallback)(function (event) {
blurField(namesRef.current.namespace, namesRef.current.fieldName);
if (onBlur) {
onBlur(event);
}
}, [onBlur, blurField]);
return (0, _extends2["default"])({}, otherProps, {
value: transformValueToInput(value),
onFocus: handleFocus,
onChange: handleChange,
onBlur: handleBlur
});
};
/***/ },
/***/ "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() {
return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
}
return n;
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
}
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ },
/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js"
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
\**********************************************************************/
(module) {
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
"default": e
};
}
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ },
/***/ "./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js"
/*!*****************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
\*****************************************************************************/
(module) {
function _objectWithoutPropertiesLoose(r, e) {
if (null == r) return {};
var t = {};
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
if (-1 !== e.indexOf(n)) continue;
t[n] = r[n];
}
return t;
}
module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Check if module exists (development only)
/******/ if (__webpack_modules__[moduleId] === undefined) {
/******/ var e = new Error("Cannot find module '" + moduleId + "'");
/******/ e.code = 'MODULE_NOT_FOUND';
/******/ throw e;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
var exports = __webpack_exports__;
/*!************************!*\
!*** ./build/index.js ***!
\************************/
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.useNamespace