@mirai/ui 1.0.94 → 1.0.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/Form/Form.constants.js +3 -1
- package/build/components/Form/Form.constants.js.map +1 -1
- package/build/components/Form/Form.js +19 -13
- package/build/components/Form/Form.js.map +1 -1
- package/build/primitives/Input/Input.js +10 -5
- package/build/primitives/Input/Input.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.FIELDS_WITHOUT_ERRORS = exports.DEFAULT_TIMEOUT_ONERROR = exports.DEFAULT_TIMEOUT_ONCHANGE = void 0;
|
|
6
|
+
exports.FIELDS_WITHOUT_ERRORS = exports.FIELDS_BOOLEAN = exports.DEFAULT_TIMEOUT_ONERROR = exports.DEFAULT_TIMEOUT_ONCHANGE = void 0;
|
|
7
7
|
var DEFAULT_TIMEOUT_ONCHANGE = 0;
|
|
8
8
|
exports.DEFAULT_TIMEOUT_ONCHANGE = DEFAULT_TIMEOUT_ONCHANGE;
|
|
9
9
|
var DEFAULT_TIMEOUT_ONERROR = 10;
|
|
10
10
|
exports.DEFAULT_TIMEOUT_ONERROR = DEFAULT_TIMEOUT_ONERROR;
|
|
11
|
+
var FIELDS_BOOLEAN = ['Component:InputOption', 'Primitive:Checkbox', 'Primitive:Radio', 'Primitive.Switch'];
|
|
12
|
+
exports.FIELDS_BOOLEAN = FIELDS_BOOLEAN;
|
|
11
13
|
var FIELDS_WITHOUT_ERRORS = ['Component:InputOption', 'Component:InputNumber'];
|
|
12
14
|
exports.FIELDS_WITHOUT_ERRORS = FIELDS_WITHOUT_ERRORS;
|
|
13
15
|
//# sourceMappingURL=Form.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.constants.js","names":["DEFAULT_TIMEOUT_ONCHANGE","DEFAULT_TIMEOUT_ONERROR","FIELDS_WITHOUT_ERRORS"],"sources":["../../../src/components/Form/Form.constants.js"],"sourcesContent":["const DEFAULT_TIMEOUT_ONCHANGE = 0;\nconst DEFAULT_TIMEOUT_ONERROR = 10;\nconst FIELDS_WITHOUT_ERRORS = ['Component:InputOption', 'Component:InputNumber'];\n\nexport { DEFAULT_TIMEOUT_ONCHANGE, DEFAULT_TIMEOUT_ONERROR, FIELDS_WITHOUT_ERRORS };\n"],"mappings":";;;;;;AAAA,IAAMA,wBAAwB,GAAG,CAAC;AAAC;AACnC,IAAMC,uBAAuB,GAAG,EAAE;AAAC;AACnC,IAAMC,qBAAqB,GAAG,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;AAAC"}
|
|
1
|
+
{"version":3,"file":"Form.constants.js","names":["DEFAULT_TIMEOUT_ONCHANGE","DEFAULT_TIMEOUT_ONERROR","FIELDS_BOOLEAN","FIELDS_WITHOUT_ERRORS"],"sources":["../../../src/components/Form/Form.constants.js"],"sourcesContent":["const DEFAULT_TIMEOUT_ONCHANGE = 0;\nconst DEFAULT_TIMEOUT_ONERROR = 10;\nconst FIELDS_BOOLEAN = ['Component:InputOption', 'Primitive:Checkbox', 'Primitive:Radio', 'Primitive.Switch'];\nconst FIELDS_WITHOUT_ERRORS = ['Component:InputOption', 'Component:InputNumber'];\n\nexport { DEFAULT_TIMEOUT_ONCHANGE, DEFAULT_TIMEOUT_ONERROR, FIELDS_BOOLEAN, FIELDS_WITHOUT_ERRORS };\n"],"mappings":";;;;;;AAAA,IAAMA,wBAAwB,GAAG,CAAC;AAAC;AACnC,IAAMC,uBAAuB,GAAG,EAAE;AAAC;AACnC,IAAMC,cAAc,GAAG,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;AAAC;AAC9G,IAAMC,qBAAqB,GAAG,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;AAAC"}
|
|
@@ -87,6 +87,11 @@ var Form = function Form(_ref) {
|
|
|
87
87
|
}, [children]);
|
|
88
88
|
(0, _react.useEffect)(function () {
|
|
89
89
|
if (!onChange || values === initialValue || !Object.keys(values).length) return;
|
|
90
|
+
if (!debounce) return onChange(values, (0, _helpers.groupState)({
|
|
91
|
+
initialValue: initialValue,
|
|
92
|
+
value: values,
|
|
93
|
+
touched: touched
|
|
94
|
+
}));
|
|
90
95
|
var timer = setTimeout(function () {
|
|
91
96
|
return onChange(values, (0, _helpers.groupState)({
|
|
92
97
|
initialValue: initialValue,
|
|
@@ -143,26 +148,27 @@ var Form = function Form(_ref) {
|
|
|
143
148
|
return /*#__PURE__*/_react.default.createElement("form", _extends({}, others, {
|
|
144
149
|
onSubmit: handleSubmit
|
|
145
150
|
}), _react.default.Children.map(children, function (child, index) {
|
|
151
|
+
var _objectSpread4;
|
|
146
152
|
if (!child || child === null) return;
|
|
147
153
|
var _ref2 = child || {},
|
|
148
154
|
_ref2$props = _ref2.props,
|
|
149
|
-
props = _ref2$props === void 0 ? {} : _ref2$props
|
|
155
|
+
props = _ref2$props === void 0 ? {} : _ref2$props,
|
|
156
|
+
_ref2$type = _ref2.type;
|
|
157
|
+
_ref2$type = _ref2$type === void 0 ? {} : _ref2$type;
|
|
158
|
+
var displayName = _ref2$type.displayName;
|
|
150
159
|
var type = props.type;
|
|
151
160
|
var field = (0, _helpers.getField)(props);
|
|
152
161
|
return /*#__PURE__*/_react.default.cloneElement(child, _objectSpread({
|
|
153
162
|
key: index
|
|
154
|
-
}, field ? _objectSpread(_objectSpread(_objectSpread({}, props), schema[field]), {}, {
|
|
155
|
-
error: !_Form.FIELDS_WITHOUT_ERRORS.includes(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return handleFocus(field, event);
|
|
164
|
-
}
|
|
165
|
-
}) : type === 'submit' ? _objectSpread(_objectSpread({}, props), {}, {
|
|
163
|
+
}, field ? _objectSpread(_objectSpread(_objectSpread({}, props), schema[field]), {}, (_objectSpread4 = {
|
|
164
|
+
error: !_Form.FIELDS_WITHOUT_ERRORS.includes(displayName) ? props.error || showErrors && error[field] : undefined
|
|
165
|
+
}, _defineProperty(_objectSpread4, _Form.FIELDS_BOOLEAN.includes(displayName) ? 'checked' : 'value', values[field]), _defineProperty(_objectSpread4, "onBlur", onBlur ? function (event) {
|
|
166
|
+
return onBlur(field, event);
|
|
167
|
+
} : undefined), _defineProperty(_objectSpread4, "onChange", function onChange(value) {
|
|
168
|
+
return handleChange(field, value);
|
|
169
|
+
}), _defineProperty(_objectSpread4, "onFocus", function onFocus(event) {
|
|
170
|
+
return handleFocus(field, event);
|
|
171
|
+
}), _objectSpread4)) : type === 'submit' ? _objectSpread(_objectSpread({}, props), {}, {
|
|
166
172
|
onPress: handleSubmit
|
|
167
173
|
}) : undefined));
|
|
168
174
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":["Form","children","debounce","DEFAULT_TIMEOUT_ONCHANGE","schema","showErrors","validateOnMount","onBlur","onChange","onError","onFocus","onSubmit","others","useState","error","setError","initialValue","setInitialValue","touched","setTouched","values","setValues","useEffect","nextValues","getChildrenValues","nextChildrenKeys","Object","keys","sort","length","JSON","stringify","nextError","getChildrenErrors","collision","some","key","timer","setTimeout","groupState","value","clearTimeout","handleChange","field","fieldValue","handleError","DEFAULT_TIMEOUT_ONERROR","hasError","changed","errors","handleFocus","event","handleSubmit","preventDefault","useMemo","React","Children","map","child","index","props","type","getField","cloneElement","FIELDS_WITHOUT_ERRORS","includes","displayName","undefined","onPress","propTypes","PropTypes","node","number","shape","bool","func"],"sources":["../../../src/components/Form/Form.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport { DEFAULT_TIMEOUT_ONCHANGE, DEFAULT_TIMEOUT_ONERROR, FIELDS_WITHOUT_ERRORS } from './Form.constants';\nimport { getChildrenErrors, getChildrenValues, getField, groupState } from './helpers';\n\nconst Form = ({\n children,\n debounce = DEFAULT_TIMEOUT_ONCHANGE,\n schema = {},\n showErrors,\n validateOnMount = false,\n onBlur,\n onChange,\n onError,\n onFocus,\n onSubmit,\n ...others\n}) => {\n const [error, setError] = useState({});\n const [initialValue, setInitialValue] = useState({});\n const [touched, setTouched] = useState({});\n const [values, setValues] = useState({});\n\n useEffect(() => {\n const nextValues = getChildrenValues(children);\n const nextChildrenKeys = Object.keys(nextValues).sort();\n\n if (!Object.keys(nextValues).length) return;\n\n if (JSON.stringify(nextChildrenKeys) !== JSON.stringify(Object.keys(initialValue).sort())) {\n setInitialValue(nextValues);\n setValues(nextValues);\n\n if (validateOnMount) {\n const nextError = getChildrenErrors({ children, schema, values: nextValues });\n setError(nextError);\n onError && onError(nextError);\n } else {\n setError({});\n }\n setTouched({});\n } else {\n const collision = nextChildrenKeys.some((key) => JSON.stringify(values[key]) !== JSON.stringify(nextValues[key]));\n if (collision) setValues(nextValues);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n useEffect(() => {\n if (!onChange || values === initialValue || !Object.keys(values).length) return;\n\n const timer = setTimeout(() => onChange(values, groupState({ initialValue, value: values, touched })), debounce);\n return () => clearTimeout(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [values]);\n\n const handleChange = (field, fieldValue) => {\n const nextValues = { ...values, [field]: fieldValue };\n\n setValues(nextValues);\n setTimeout(() => handleError(nextValues), DEFAULT_TIMEOUT_ONERROR);\n };\n\n const handleError = (values) => {\n const nextError = getChildrenErrors({ children, schema, values });\n const hasError = Object.keys(nextError).length > 0;\n const changed = JSON.stringify(error) !== JSON.stringify(nextError);\n\n if (changed) {\n setError(nextError);\n onError && onError(nextError, hasError);\n }\n\n return { changed, errors: nextError, hasError };\n };\n\n const handleFocus = (field, event) => {\n setTouched({ ...touched, [field]: true });\n if (onFocus) onFocus(field, event);\n };\n\n const handleSubmit = (event) => {\n const { errors, hasError } = handleError(values);\n\n if (hasError && onError) onError(errors, hasError);\n else if (onSubmit) onSubmit(values, groupState({ initialValue, value: values, touched }), event);\n event.preventDefault();\n };\n\n return useMemo(\n () => (\n <form {...others} onSubmit={handleSubmit}>\n {React.Children.map(children, (child, index) => {\n if (!child || child === null) return;\n\n const { props = {} } = child || {};\n const { type } = props;\n const field = getField(props);\n\n return React.cloneElement(child, {\n key: index,\n ...(field\n ? {\n ...props,\n ...schema[field],\n error: !FIELDS_WITHOUT_ERRORS.includes(child.type.displayName)\n ? props.error || (showErrors && error[field])\n : undefined,\n onBlur: onBlur ? (event) => onBlur(field, event) : undefined,\n onChange: (value) => handleChange(field, value),\n onFocus: (event) => handleFocus(field, event),\n }\n : type === 'submit'\n ? { ...props, onPress: handleSubmit }\n : undefined),\n });\n })}\n </form>\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [children, error, others, schema],\n );\n};\n\nForm.displayName = 'Component:Form';\n\nForm.propTypes = {\n children: PropTypes.node,\n debounce: PropTypes.number,\n schema: PropTypes.shape({}),\n showErrors: PropTypes.bool,\n validateOnMount: PropTypes.bool,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n onFocus: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Form };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.js","names":["Form","children","debounce","DEFAULT_TIMEOUT_ONCHANGE","schema","showErrors","validateOnMount","onBlur","onChange","onError","onFocus","onSubmit","others","useState","error","setError","initialValue","setInitialValue","touched","setTouched","values","setValues","useEffect","nextValues","getChildrenValues","nextChildrenKeys","Object","keys","sort","length","JSON","stringify","nextError","getChildrenErrors","collision","some","key","groupState","value","timer","setTimeout","clearTimeout","handleChange","field","fieldValue","handleError","DEFAULT_TIMEOUT_ONERROR","hasError","changed","errors","handleFocus","event","handleSubmit","preventDefault","useMemo","React","Children","map","child","index","props","type","displayName","getField","cloneElement","FIELDS_WITHOUT_ERRORS","includes","undefined","FIELDS_BOOLEAN","onPress","propTypes","PropTypes","node","number","shape","bool","func"],"sources":["../../../src/components/Form/Form.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport {\n DEFAULT_TIMEOUT_ONCHANGE,\n DEFAULT_TIMEOUT_ONERROR,\n FIELDS_BOOLEAN,\n FIELDS_WITHOUT_ERRORS,\n} from './Form.constants';\nimport { getChildrenErrors, getChildrenValues, getField, groupState } from './helpers';\n\nconst Form = ({\n children,\n debounce = DEFAULT_TIMEOUT_ONCHANGE,\n schema = {},\n showErrors,\n validateOnMount = false,\n onBlur,\n onChange,\n onError,\n onFocus,\n onSubmit,\n ...others\n}) => {\n const [error, setError] = useState({});\n const [initialValue, setInitialValue] = useState({});\n const [touched, setTouched] = useState({});\n const [values, setValues] = useState({});\n\n useEffect(() => {\n const nextValues = getChildrenValues(children);\n const nextChildrenKeys = Object.keys(nextValues).sort();\n\n if (!Object.keys(nextValues).length) return;\n\n if (JSON.stringify(nextChildrenKeys) !== JSON.stringify(Object.keys(initialValue).sort())) {\n setInitialValue(nextValues);\n setValues(nextValues);\n\n if (validateOnMount) {\n const nextError = getChildrenErrors({ children, schema, values: nextValues });\n setError(nextError);\n onError && onError(nextError);\n } else {\n setError({});\n }\n setTouched({});\n } else {\n const collision = nextChildrenKeys.some((key) => JSON.stringify(values[key]) !== JSON.stringify(nextValues[key]));\n if (collision) setValues(nextValues);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n useEffect(() => {\n if (!onChange || values === initialValue || !Object.keys(values).length) return;\n\n if (!debounce) return onChange(values, groupState({ initialValue, value: values, touched }));\n\n const timer = setTimeout(() => onChange(values, groupState({ initialValue, value: values, touched })), debounce);\n return () => clearTimeout(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [values]);\n\n const handleChange = (field, fieldValue) => {\n const nextValues = { ...values, [field]: fieldValue };\n\n setValues(nextValues);\n setTimeout(() => handleError(nextValues), DEFAULT_TIMEOUT_ONERROR);\n };\n\n const handleError = (values) => {\n const nextError = getChildrenErrors({ children, schema, values });\n const hasError = Object.keys(nextError).length > 0;\n const changed = JSON.stringify(error) !== JSON.stringify(nextError);\n\n if (changed) {\n setError(nextError);\n onError && onError(nextError, hasError);\n }\n\n return { changed, errors: nextError, hasError };\n };\n\n const handleFocus = (field, event) => {\n setTouched({ ...touched, [field]: true });\n if (onFocus) onFocus(field, event);\n };\n\n const handleSubmit = (event) => {\n const { errors, hasError } = handleError(values);\n\n if (hasError && onError) onError(errors, hasError);\n else if (onSubmit) onSubmit(values, groupState({ initialValue, value: values, touched }), event);\n event.preventDefault();\n };\n\n return useMemo(\n () => (\n <form {...others} onSubmit={handleSubmit}>\n {React.Children.map(children, (child, index) => {\n if (!child || child === null) return;\n\n const { props = {}, type: { displayName } = {} } = child || {};\n const { type } = props;\n const field = getField(props);\n\n return React.cloneElement(child, {\n key: index,\n ...(field\n ? {\n ...props,\n ...schema[field],\n error: !FIELDS_WITHOUT_ERRORS.includes(displayName)\n ? props.error || (showErrors && error[field])\n : undefined,\n [FIELDS_BOOLEAN.includes(displayName) ? 'checked' : 'value']: values[field],\n onBlur: onBlur ? (event) => onBlur(field, event) : undefined,\n onChange: (value) => handleChange(field, value),\n onFocus: (event) => handleFocus(field, event),\n }\n : type === 'submit'\n ? { ...props, onPress: handleSubmit }\n : undefined),\n });\n })}\n </form>\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [children, error, others, schema],\n );\n};\n\nForm.displayName = 'Component:Form';\n\nForm.propTypes = {\n children: PropTypes.node,\n debounce: PropTypes.number,\n schema: PropTypes.shape({}),\n showErrors: PropTypes.bool,\n validateOnMount: PropTypes.bool,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n onFocus: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Form };\n"],"mappings":"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"}
|
|
@@ -6,11 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.Input = void 0;
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _helpers = require("../../helpers");
|
|
11
11
|
var _helpers2 = require("./helpers");
|
|
12
12
|
var _InputModule = _interopRequireDefault(require("./Input.module.css"));
|
|
13
13
|
var _excluded = ["disabled", "multiLine", "type", "onChange", "onEnter", "onError", "onLeave"];
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -29,10 +31,13 @@ var Input = function Input(_ref) {
|
|
|
29
31
|
onError = _ref.onError,
|
|
30
32
|
onLeave = _ref.onLeave,
|
|
31
33
|
others = _objectWithoutProperties(_ref, _excluded);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
(0, _react.useEffect)(function () {
|
|
35
|
+
var errors = (0, _helpers.getInputErrors)(_objectSpread(_objectSpread({}, others), {}, {
|
|
36
|
+
type: type
|
|
37
|
+
}));
|
|
38
|
+
if (errors && onError) onError(errors);
|
|
39
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
40
|
+
}, []);
|
|
36
41
|
var handleChange = function handleChange() {
|
|
37
42
|
var next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
38
43
|
var event = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["Input","disabled","multiLine","type","onChange","onEnter","onError","onLeave","others","errors","getInputErrors","handleChange","next","event","isNaN","value","parseValue","React","createElement","test","undefined","className","styles","style","input","target","onFocus","onBlur","displayName","propTypes","PropTypes","bool","name","string","isRequired","func"],"sources":["../../../src/primitives/Input/Input.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { getInputErrors, styles } from '../../helpers';\nimport { parseValue } from './helpers';\nimport style from './Input.module.css';\n\nconst Input = ({ disabled, multiLine, type = 'text', onChange, onEnter, onError, onLeave, ...others }) => {\n const errors = getInputErrors({ ...others, type });\n
|
|
1
|
+
{"version":3,"file":"Input.js","names":["Input","disabled","multiLine","type","onChange","onEnter","onError","onLeave","others","useEffect","errors","getInputErrors","handleChange","next","event","isNaN","value","parseValue","React","createElement","test","undefined","className","styles","style","input","target","onFocus","onBlur","displayName","propTypes","PropTypes","bool","name","string","isRequired","func"],"sources":["../../../src/primitives/Input/Input.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect } from 'react';\n\nimport { getInputErrors, styles } from '../../helpers';\nimport { parseValue } from './helpers';\nimport style from './Input.module.css';\n\nconst Input = ({ disabled, multiLine, type = 'text', onChange, onEnter, onError, onLeave, ...others }) => {\n useEffect(() => {\n const errors = getInputErrors({ ...others, type });\n if (errors && onError) onError(errors);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleChange = (next = '', event) => {\n if (type === 'number' && isNaN(next)) return;\n const value = parseValue(next, type, others);\n\n onError && onError(getInputErrors({ ...others, type, value }));\n onChange && onChange(value || '', event);\n };\n\n return React.createElement(multiLine ? 'textarea' : 'input', {\n ...others,\n disabled,\n test: undefined,\n type,\n value: others.value || '',\n className: styles(style.input, others.className),\n ...(!disabled\n ? {\n onChange: (event) => handleChange(event.target.value, event),\n onFocus: onEnter,\n onBlur: onLeave,\n }\n : {}),\n });\n};\n\nInput.displayName = 'Primitive:Input';\n\nInput.propTypes = {\n disabled: PropTypes.bool,\n multiLine: PropTypes.bool,\n name: PropTypes.string.isRequired,\n type: PropTypes.string,\n onChange: PropTypes.func,\n onEnter: PropTypes.func,\n onError: PropTypes.func,\n onLeave: PropTypes.func,\n};\n\nexport { Input };\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEvC,IAAMA,KAAK,GAAG,SAARA,KAAK,OAA+F;EAAA,IAAzFC,QAAQ,QAARA,QAAQ;IAAEC,SAAS,QAATA,SAAS;IAAA,iBAAEC,IAAI;IAAJA,IAAI,0BAAG,MAAM;IAAEC,QAAQ,QAARA,QAAQ;IAAEC,OAAO,QAAPA,OAAO;IAAEC,OAAO,QAAPA,OAAO;IAAEC,OAAO,QAAPA,OAAO;IAAKC,MAAM;EACjG,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,MAAM,GAAG,IAAAC,uBAAc,kCAAMH,MAAM;MAAEL,IAAI,EAAJA;IAAI,GAAG;IAClD,IAAIO,MAAM,IAAIJ,OAAO,EAAEA,OAAO,CAACI,MAAM,CAAC;IACtC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAME,YAAY,GAAG,SAAfA,YAAY,GAAyB;IAAA,IAArBC,IAAI,uEAAG,EAAE;IAAA,IAAEC,KAAK;IACpC,IAAIX,IAAI,KAAK,QAAQ,IAAIY,KAAK,CAACF,IAAI,CAAC,EAAE;IACtC,IAAMG,KAAK,GAAG,IAAAC,oBAAU,EAACJ,IAAI,EAAEV,IAAI,EAAEK,MAAM,CAAC;IAE5CF,OAAO,IAAIA,OAAO,CAAC,IAAAK,uBAAc,kCAAMH,MAAM;MAAEL,IAAI,EAAJA,IAAI;MAAEa,KAAK,EAALA;IAAK,GAAG,CAAC;IAC9DZ,QAAQ,IAAIA,QAAQ,CAACY,KAAK,IAAI,EAAE,EAAEF,KAAK,CAAC;EAC1C,CAAC;EAED,oBAAOI,cAAK,CAACC,aAAa,CAACjB,SAAS,GAAG,UAAU,GAAG,OAAO,kCACtDM,MAAM;IACTP,QAAQ,EAARA,QAAQ;IACRmB,IAAI,EAAEC,SAAS;IACflB,IAAI,EAAJA,IAAI;IACJa,KAAK,EAAER,MAAM,CAACQ,KAAK,IAAI,EAAE;IACzBM,SAAS,EAAE,IAAAC,eAAM,EAACC,oBAAK,CAACC,KAAK,EAAEjB,MAAM,CAACc,SAAS;EAAC,GAC5C,CAACrB,QAAQ,GACT;IACEG,QAAQ,EAAE,kBAACU,KAAK;MAAA,OAAKF,YAAY,CAACE,KAAK,CAACY,MAAM,CAACV,KAAK,EAAEF,KAAK,CAAC;IAAA;IAC5Da,OAAO,EAAEtB,OAAO;IAChBuB,MAAM,EAAErB;EACV,CAAC,GACD,CAAC,CAAC,EACN;AACJ,CAAC;AAAC;AAEFP,KAAK,CAAC6B,WAAW,GAAG,iBAAiB;AAErC7B,KAAK,CAAC8B,SAAS,GAAG;EAChB7B,QAAQ,EAAE8B,kBAAS,CAACC,IAAI;EACxB9B,SAAS,EAAE6B,kBAAS,CAACC,IAAI;EACzBC,IAAI,EAAEF,kBAAS,CAACG,MAAM,CAACC,UAAU;EACjChC,IAAI,EAAE4B,kBAAS,CAACG,MAAM;EACtB9B,QAAQ,EAAE2B,kBAAS,CAACK,IAAI;EACxB/B,OAAO,EAAE0B,kBAAS,CAACK,IAAI;EACvB9B,OAAO,EAAEyB,kBAAS,CAACK,IAAI;EACvB7B,OAAO,EAAEwB,kBAAS,CAACK;AACrB,CAAC"}
|