@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.
Files changed (32) hide show
  1. package/build/components/Form/Form.constants.js +11 -0
  2. package/build/components/Form/Form.constants.js.map +1 -0
  3. package/build/components/Form/Form.js +15 -7
  4. package/build/components/Form/Form.js.map +1 -1
  5. package/build/components/InputDate/InputDate.js +158 -0
  6. package/build/components/InputDate/InputDate.js.map +1 -0
  7. package/build/components/InputDate/InputDate.module.css +32 -0
  8. package/build/components/InputDate/__tests__/__snapshots__/InputDate.test.js.snap +772 -0
  9. package/build/components/InputDate/index.js +19 -0
  10. package/build/components/InputDate/index.js.map +1 -0
  11. package/build/components/InputOption/InputOption.js +1 -0
  12. package/build/components/InputOption/InputOption.js.map +1 -1
  13. package/build/components/InputOption/InputOption.module.css +1 -1
  14. package/build/components/InputOption/__tests__/__snapshots__/InputOption.test.js.snap +9 -0
  15. package/build/components/InputText/InputText.js +2 -0
  16. package/build/components/InputText/InputText.js.map +1 -1
  17. package/build/components/InputText/InputText.module.css +1 -0
  18. package/build/components/InputText/__tests__/__snapshots__/InputText.test.js.snap +2 -0
  19. package/build/components/Table/__tests__/__snapshots__/Table.test.js.snap +7 -0
  20. package/build/components/index.js +13 -0
  21. package/build/components/index.js.map +1 -1
  22. package/build/helpers/getInputDateErrors.js +34 -0
  23. package/build/helpers/getInputDateErrors.js.map +1 -0
  24. package/build/helpers/getInputErrors.js +13 -1
  25. package/build/helpers/getInputErrors.js.map +1 -1
  26. package/build/helpers/index.js +13 -0
  27. package/build/helpers/index.js.map +1 -1
  28. package/build/helpers/isValidDate.js +6 -4
  29. package/build/helpers/isValidDate.js.map +1 -1
  30. package/build/primitives/Checkbox/Checkbox.module.css +1 -0
  31. package/build/primitives/Input/Input.js.map +1 -1
  32. 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 ? 0 : _ref$debounce,
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
- setValues(function () {
122
- var nextValues = _objectSpread(_objectSpread({}, values), {}, _defineProperty({}, field, fieldValue));
129
+ var nextValues = _objectSpread(_objectSpread({}, values), {}, _defineProperty({}, field, fieldValue));
123
130
 
124
- handleError(nextValues);
125
- return nextValues;
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
+ }