@mirai/ui 1.0.41 → 1.0.43
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 +11 -0
- package/build/components/Form/Form.constants.js.map +1 -0
- package/build/components/Form/Form.js +15 -7
- package/build/components/Form/Form.js.map +1 -1
- package/build/components/InputDate/InputDate.js +158 -0
- package/build/components/InputDate/InputDate.js.map +1 -0
- package/build/components/InputDate/InputDate.module.css +32 -0
- package/build/components/InputDate/__tests__/__snapshots__/InputDate.test.js.snap +772 -0
- package/build/components/InputDate/index.js +19 -0
- package/build/components/InputDate/index.js.map +1 -0
- package/build/components/InputOption/InputOption.js +1 -0
- package/build/components/InputOption/InputOption.js.map +1 -1
- package/build/components/InputOption/InputOption.module.css +1 -1
- package/build/components/InputOption/__tests__/__snapshots__/InputOption.test.js.snap +9 -0
- package/build/components/InputText/InputText.js +2 -0
- package/build/components/InputText/InputText.js.map +1 -1
- package/build/components/InputText/InputText.module.css +1 -0
- package/build/components/InputText/__tests__/__snapshots__/InputText.test.js.snap +2 -0
- package/build/components/Table/__tests__/__snapshots__/Table.test.js.snap +7 -0
- package/build/components/index.js +13 -0
- package/build/components/index.js.map +1 -1
- package/build/helpers/getInputDateErrors.js +34 -0
- package/build/helpers/getInputDateErrors.js.map +1 -0
- package/build/helpers/getInputErrors.js +13 -1
- package/build/helpers/getInputErrors.js.map +1 -1
- package/build/helpers/index.js +13 -0
- package/build/helpers/index.js.map +1 -1
- package/build/helpers/isValidDate.js +6 -4
- package/build/helpers/isValidDate.js.map +1 -1
- package/build/primitives/Checkbox/Checkbox.module.css +1 -0
- package/build/primitives/Input/Input.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DEFAULT_TIMEOUT_ONERROR = exports.DEFAULT_TIMEOUT_ONCHANGE = void 0;
|
|
7
|
+
var DEFAULT_TIMEOUT_ONCHANGE = 0;
|
|
8
|
+
exports.DEFAULT_TIMEOUT_ONCHANGE = DEFAULT_TIMEOUT_ONCHANGE;
|
|
9
|
+
var DEFAULT_TIMEOUT_ONERROR = 10;
|
|
10
|
+
exports.DEFAULT_TIMEOUT_ONERROR = DEFAULT_TIMEOUT_ONERROR;
|
|
11
|
+
//# sourceMappingURL=Form.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.constants.js","names":["DEFAULT_TIMEOUT_ONCHANGE","DEFAULT_TIMEOUT_ONERROR"],"sources":["../../../src/components/Form/Form.constants.js"],"sourcesContent":["const DEFAULT_TIMEOUT_ONCHANGE = 0;\nconst DEFAULT_TIMEOUT_ONERROR = 10;\n\nexport { DEFAULT_TIMEOUT_ONCHANGE, DEFAULT_TIMEOUT_ONERROR };\n"],"mappings":";;;;;;AAAA,IAAMA,wBAAwB,GAAG,CAAjC;;AACA,IAAMC,uBAAuB,GAAG,EAAhC"}
|
|
@@ -11,6 +11,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
+
var _Form = require("./Form.constants");
|
|
15
|
+
|
|
14
16
|
var _helpers = require("./helpers");
|
|
15
17
|
|
|
16
18
|
var _excluded = ["children", "debounce", "schema", "showErrors", "validateOnMount", "onBlur", "onChange", "onError", "onFocus", "onSubmit"];
|
|
@@ -46,7 +48,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
46
48
|
var Form = function Form(_ref) {
|
|
47
49
|
var children = _ref.children,
|
|
48
50
|
_ref$debounce = _ref.debounce,
|
|
49
|
-
debounce = _ref$debounce === void 0 ?
|
|
51
|
+
debounce = _ref$debounce === void 0 ? _Form.DEFAULT_TIMEOUT_ONCHANGE : _ref$debounce,
|
|
50
52
|
_ref$schema = _ref.schema,
|
|
51
53
|
schema = _ref$schema === void 0 ? {} : _ref$schema,
|
|
52
54
|
showErrors = _ref.showErrors,
|
|
@@ -82,6 +84,7 @@ var Form = function Form(_ref) {
|
|
|
82
84
|
(0, _react.useEffect)(function () {
|
|
83
85
|
var nextValues = (0, _helpers.getChildrenValues)(children);
|
|
84
86
|
var nextChildrenKeys = Object.keys(nextValues).sort();
|
|
87
|
+
if (!Object.keys(nextValues).length) return;
|
|
85
88
|
|
|
86
89
|
if (JSON.stringify(nextChildrenKeys) !== JSON.stringify(Object.keys(initialValue).sort())) {
|
|
87
90
|
setInitialValue(nextValues);
|
|
@@ -100,11 +103,16 @@ var Form = function Form(_ref) {
|
|
|
100
103
|
}
|
|
101
104
|
|
|
102
105
|
setTouched({});
|
|
106
|
+
} else {
|
|
107
|
+
var collision = nextChildrenKeys.some(function (key) {
|
|
108
|
+
return JSON.stringify(values[key]) !== JSON.stringify(nextValues[key]);
|
|
109
|
+
});
|
|
110
|
+
if (collision) setValues(nextValues);
|
|
103
111
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
104
112
|
|
|
105
113
|
}, [children]);
|
|
106
114
|
(0, _react.useEffect)(function () {
|
|
107
|
-
if (!onChange || values === initialValue) return;
|
|
115
|
+
if (!onChange || values === initialValue || !Object.keys(values).length) return;
|
|
108
116
|
var timer = setTimeout(function () {
|
|
109
117
|
return onChange(values, (0, _helpers.groupState)({
|
|
110
118
|
initialValue: initialValue,
|
|
@@ -118,12 +126,12 @@ var Form = function Form(_ref) {
|
|
|
118
126
|
}, [values]);
|
|
119
127
|
|
|
120
128
|
var handleChange = function handleChange(field, fieldValue) {
|
|
121
|
-
|
|
122
|
-
var nextValues = _objectSpread(_objectSpread({}, values), {}, _defineProperty({}, field, fieldValue));
|
|
129
|
+
var nextValues = _objectSpread(_objectSpread({}, values), {}, _defineProperty({}, field, fieldValue));
|
|
123
130
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
131
|
+
setValues(nextValues);
|
|
132
|
+
setTimeout(function () {
|
|
133
|
+
return handleError(nextValues);
|
|
134
|
+
}, _Form.DEFAULT_TIMEOUT_ONERROR);
|
|
127
135
|
};
|
|
128
136
|
|
|
129
137
|
var handleError = function handleError(values) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","names":["Form","children","debounce","schema","showErrors","validateOnMount","onBlur","onChange","onError","onFocus","onSubmit","others","error","setError","initialValue","setInitialValue","touched","setTouched","values","setValues","nextValues","nextChildrenKeys","Object","keys","sort","JSON","stringify","nextError","timer","setTimeout","value","clearTimeout","handleChange","field","fieldValue","handleError","hasError","length","changed","errors","handleFocus","event","handleSubmit","preventDefault","style","React","Children","map","child","index","props","type","cloneElement","key","undefined","onPress","displayName","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 { getChildrenErrors, getChildrenValues, getField, groupState } from './helpers';\n\nconst Form = ({\n children,\n debounce = 0,\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 (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 }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n useEffect(() => {\n if (!onChange || values === initialValue) 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 setValues(() => {\n const nextValues = { ...values, [field]: fieldValue };\n\n handleError(nextValues);\n\n return nextValues;\n });\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 data-testid={others['data-testid']} style={others.style} 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: props.error ? props.error : showErrors && error[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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"}
|
|
1
|
+
{"version":3,"file":"Form.js","names":["Form","children","debounce","DEFAULT_TIMEOUT_ONCHANGE","schema","showErrors","validateOnMount","onBlur","onChange","onError","onFocus","onSubmit","others","error","setError","initialValue","setInitialValue","touched","setTouched","values","setValues","nextValues","nextChildrenKeys","Object","keys","sort","length","JSON","stringify","nextError","collision","some","key","timer","setTimeout","value","clearTimeout","handleChange","field","fieldValue","handleError","DEFAULT_TIMEOUT_ONERROR","hasError","changed","errors","handleFocus","event","handleSubmit","preventDefault","style","React","Children","map","child","index","props","type","cloneElement","undefined","onPress","displayName","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 } 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 data-testid={others['data-testid']} style={others.style} 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: props.error ? props.error : showErrors && error[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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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.InputDate = void 0;
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _helpers = require("../../helpers");
|
|
15
|
+
|
|
16
|
+
var _primitives = require("../../primitives");
|
|
17
|
+
|
|
18
|
+
var _InputText = require("../InputText");
|
|
19
|
+
|
|
20
|
+
var _InputDateModule = _interopRequireDefault(require("./InputDate.module.css"));
|
|
21
|
+
|
|
22
|
+
var _excluded = ["disabled", "error", "format", "label", "labels", "max", "min", "name", "required", "value", "onChange", "onError", "onEnter", "onLeave"];
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
+
|
|
30
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
31
|
+
|
|
32
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
33
|
+
|
|
34
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
35
|
+
|
|
36
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
37
|
+
|
|
38
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
39
|
+
|
|
40
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
41
|
+
|
|
42
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
43
|
+
|
|
44
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
45
|
+
|
|
46
|
+
var InputDate = function InputDate(_ref) {
|
|
47
|
+
var disabled = _ref.disabled,
|
|
48
|
+
error = _ref.error,
|
|
49
|
+
_ref$format = _ref.format,
|
|
50
|
+
format = _ref$format === void 0 ? 'DD/MM/YYYY' : _ref$format,
|
|
51
|
+
label = _ref.label,
|
|
52
|
+
_ref$labels = _ref.labels,
|
|
53
|
+
labels = _ref$labels === void 0 ? [] : _ref$labels,
|
|
54
|
+
max = _ref.max,
|
|
55
|
+
min = _ref.min,
|
|
56
|
+
name = _ref.name,
|
|
57
|
+
required = _ref.required,
|
|
58
|
+
_ref$value = _ref.value,
|
|
59
|
+
value = _ref$value === void 0 ? '' : _ref$value,
|
|
60
|
+
_ref$onChange = _ref.onChange,
|
|
61
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
62
|
+
_ref$onError = _ref.onError,
|
|
63
|
+
onError = _ref$onError === void 0 ? function () {} : _ref$onError,
|
|
64
|
+
_ref$onEnter = _ref.onEnter,
|
|
65
|
+
onEnter = _ref$onEnter === void 0 ? function () {} : _ref$onEnter,
|
|
66
|
+
_ref$onLeave = _ref.onLeave,
|
|
67
|
+
onLeave = _ref$onLeave === void 0 ? function () {} : _ref$onLeave,
|
|
68
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
|
69
|
+
|
|
70
|
+
var _useState = (0, _react.useState)(false),
|
|
71
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
72
|
+
focus = _useState2[0],
|
|
73
|
+
setFocus = _useState2[1];
|
|
74
|
+
|
|
75
|
+
var parts = format.split('/');
|
|
76
|
+
var values = (value === null || value === void 0 ? void 0 : value.split('/')) || [];
|
|
77
|
+
|
|
78
|
+
var handleChange = function handleChange() {
|
|
79
|
+
var partValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
80
|
+
var partKey = arguments.length > 1 ? arguments[1] : undefined;
|
|
81
|
+
var event = arguments.length > 2 ? arguments[2] : undefined;
|
|
82
|
+
var nextValue = parts.map(function (part, index) {
|
|
83
|
+
return part !== partKey ? values[index] || '' : partValue;
|
|
84
|
+
}).join('/');
|
|
85
|
+
var errors = (0, _helpers.getInputDateErrors)({
|
|
86
|
+
format: format,
|
|
87
|
+
max: max,
|
|
88
|
+
min: min,
|
|
89
|
+
value: value,
|
|
90
|
+
required: required
|
|
91
|
+
});
|
|
92
|
+
if (Object.keys(errors).length > 0) onError(errors);
|
|
93
|
+
onChange(nextValue, event);
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
var handleEnter = function handleEnter(event) {
|
|
97
|
+
setFocus(true);
|
|
98
|
+
onEnter(event);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
var handleLeave = function handleLeave(event) {
|
|
102
|
+
setFocus(false);
|
|
103
|
+
onLeave(event);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
var testId = others['data-testid'];
|
|
107
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
108
|
+
className: others.className,
|
|
109
|
+
"data-testid": testId
|
|
110
|
+
}, /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
111
|
+
className: (0, _helpers.styles)(_InputDateModule.default.label, disabled && _InputDateModule.default.disabled, focus && _InputDateModule.default.focus, error && _InputDateModule.default.error)
|
|
112
|
+
}, label), /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
113
|
+
row: true
|
|
114
|
+
}, parts.map(function (part, index) {
|
|
115
|
+
return /*#__PURE__*/_react.default.createElement(_InputText.InputText, {
|
|
116
|
+
disabled: disabled,
|
|
117
|
+
error: error,
|
|
118
|
+
hint: labels[index] || part,
|
|
119
|
+
key: index,
|
|
120
|
+
maxLength: part.length,
|
|
121
|
+
name: "".concat(name, ":").concat(part),
|
|
122
|
+
value: values[index],
|
|
123
|
+
onChange: function onChange(value) {
|
|
124
|
+
for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
125
|
+
rest[_key - 1] = arguments[_key];
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return handleChange.apply(void 0, [value, part].concat(rest));
|
|
129
|
+
},
|
|
130
|
+
onEnter: handleEnter,
|
|
131
|
+
onLeave: handleLeave,
|
|
132
|
+
className: (0, _helpers.styles)(_InputDateModule.default.input, _InputDateModule.default[part.substring(0, 1)]),
|
|
133
|
+
"data-testid": testId ? "".concat(testId, "-").concat(part) : undefined
|
|
134
|
+
});
|
|
135
|
+
})));
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
exports.InputDate = InputDate;
|
|
139
|
+
InputDate.displayName = 'Component:InputDate';
|
|
140
|
+
InputDate.propTypes = {
|
|
141
|
+
disabled: _propTypes.default.bool,
|
|
142
|
+
error: _propTypes.default.bool,
|
|
143
|
+
format: _propTypes.default.string,
|
|
144
|
+
hint: _propTypes.default.string,
|
|
145
|
+
// !TODO
|
|
146
|
+
label: _propTypes.default.string,
|
|
147
|
+
labels: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
148
|
+
max: _propTypes.default.string,
|
|
149
|
+
min: _propTypes.default.string,
|
|
150
|
+
name: _propTypes.default.string.isRequired,
|
|
151
|
+
required: _propTypes.default.bool,
|
|
152
|
+
value: _propTypes.default.string,
|
|
153
|
+
onChange: _propTypes.default.func,
|
|
154
|
+
onError: _propTypes.default.func,
|
|
155
|
+
onEnter: _propTypes.default.func,
|
|
156
|
+
onLeave: _propTypes.default.func
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=InputDate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputDate.js","names":["InputDate","disabled","error","format","label","labels","max","min","name","required","value","onChange","onError","onEnter","onLeave","others","focus","setFocus","parts","split","values","handleChange","partValue","partKey","event","nextValue","map","part","index","join","errors","Object","keys","length","handleEnter","handleLeave","testId","className","style","rest","input","substring","undefined","displayName","propTypes","PropTypes","bool","string","hint","arrayOf","isRequired","func"],"sources":["../../../src/components/InputDate/InputDate.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { getInputDateErrors, styles } from '../../helpers';\nimport { Text, View } from '../../primitives';\nimport { InputText } from '../InputText';\nimport style from './InputDate.module.css';\n\nconst InputDate = ({\n disabled,\n error,\n format = 'DD/MM/YYYY',\n label,\n labels = [],\n max,\n min,\n name,\n required,\n value = '',\n onChange = () => {},\n onError = () => {},\n onEnter = () => {},\n onLeave = () => {},\n ...others\n}) => {\n const [focus, setFocus] = useState(false);\n\n const parts = format.split('/');\n const values = value?.split('/') || [];\n\n const handleChange = (partValue = '', partKey, event) => {\n const nextValue = parts.map((part, index) => (part !== partKey ? values[index] || '' : partValue)).join('/');\n const errors = getInputDateErrors({ format, max, min, value, required });\n if (Object.keys(errors).length > 0) onError(errors);\n\n onChange(nextValue, event);\n };\n\n const handleEnter = (event) => {\n setFocus(true);\n onEnter(event);\n };\n\n const handleLeave = (event) => {\n setFocus(false);\n onLeave(event);\n };\n\n const { ['data-testid']: testId } = others;\n\n return (\n <View className={others.className} data-testid={testId}>\n <Text className={styles(style.label, disabled && style.disabled, focus && style.focus, error && style.error)}>\n {label}\n </Text>\n\n <View row>\n {parts.map((part, index) => (\n <InputText\n disabled={disabled}\n error={error}\n hint={labels[index] || part}\n key={index}\n maxLength={part.length}\n name={`${name}:${part}`}\n value={values[index]}\n onChange={(value, ...rest) => handleChange(value, part, ...rest)}\n onEnter={handleEnter}\n onLeave={handleLeave}\n className={styles(style.input, style[part.substring(0, 1)])}\n data-testid={testId ? `${testId}-${part}` : undefined}\n />\n ))}\n </View>\n </View>\n );\n};\n\nInputDate.displayName = 'Component:InputDate';\n\nInputDate.propTypes = {\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n format: PropTypes.string,\n hint: PropTypes.string, // !TODO\n label: PropTypes.string,\n labels: PropTypes.arrayOf(PropTypes.string),\n max: PropTypes.string,\n min: PropTypes.string,\n name: PropTypes.string.isRequired,\n required: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n};\n\nexport { InputDate };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
}
|
|
3
|
+
|
|
4
|
+
.input {
|
|
5
|
+
max-width: calc(calc(var(--mirai-ui-input-font-size) * 2.25) + calc(var(--mirai-ui-input-text-padding-x) * 2));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.input:not(:last-child) {
|
|
9
|
+
margin-right: var(--mirai-ui-space-S);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.input.Y {
|
|
13
|
+
max-width: calc(calc(var(--mirai-ui-input-font-size) * 3.25) + calc(var(--mirai-ui-input-text-padding-x) * 2));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.label {
|
|
17
|
+
font-size: var(--mirai-ui-font-size-small);
|
|
18
|
+
margin-bottom: calc(var(--mirai-ui-font-size-small) * -1);
|
|
19
|
+
padding: 0 calc(var(--mirai-ui-input-text-padding-x) / 2);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.label.disabled {
|
|
23
|
+
color: var(--mirai-ui-input-text-disabled);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.label.focus {
|
|
27
|
+
color: var(--mirai-ui-input-text-focus);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.label.error {
|
|
31
|
+
color: var(--mirai-ui-error);
|
|
32
|
+
}
|