@alfalab/core-components-date-input 4.4.16 → 4.4.17-snapshot-1393ffa
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/Component.js +12 -13
- package/Component.js.map +1 -0
- package/cssm/Component.js +12 -11
- package/cssm/Component.js.map +1 -0
- package/cssm/index.js +12 -11
- package/cssm/index.js.map +1 -0
- package/cssm/index.module.css +5 -24
- package/{Component.d.ts → cssm/src/Component.d.ts} +4 -7
- package/cssm/src/index.d.ts +2 -0
- package/cssm/src/utils/format.d.ts +8 -0
- package/cssm/src/utils/index.d.ts +2 -0
- package/cssm/{utils → src/utils}/native-supports.d.ts +1 -2
- package/cssm/utils/format.js +1 -0
- package/cssm/utils/format.js.map +1 -0
- package/cssm/utils/index.js +12 -11
- package/cssm/utils/index.js.map +1 -0
- package/cssm/utils/native-supports.js +1 -0
- package/cssm/utils/native-supports.js.map +1 -0
- package/esm/Component.js +3 -4
- package/esm/Component.js.map +1 -0
- package/esm/index.css +7 -27
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- package/esm/index.module.css.js +6 -0
- package/esm/index.module.css.js.map +1 -0
- package/{cssm → esm/src}/Component.d.ts +4 -7
- package/esm/src/index.d.ts +2 -0
- package/esm/src/utils/format.d.ts +8 -0
- package/esm/src/utils/index.d.ts +2 -0
- package/esm/{utils → src/utils}/native-supports.d.ts +1 -2
- package/esm/utils/format.js +1 -0
- package/esm/utils/format.js.map +1 -0
- package/esm/utils/index.js +1 -0
- package/esm/utils/index.js.map +1 -0
- package/esm/utils/native-supports.js +1 -0
- package/esm/utils/native-supports.js.map +1 -0
- package/index.css +7 -27
- package/index.js +12 -11
- package/index.js.map +1 -0
- package/index.module.css.js +8 -0
- package/index.module.css.js.map +1 -0
- package/modern/Component.js +3 -4
- package/modern/Component.js.map +1 -0
- package/modern/index.css +7 -27
- package/modern/index.js +1 -0
- package/modern/index.js.map +1 -0
- package/modern/index.module.css.js +6 -0
- package/modern/index.module.css.js.map +1 -0
- package/{esm → modern/src}/Component.d.ts +4 -7
- package/modern/src/index.d.ts +2 -0
- package/modern/src/utils/format.d.ts +8 -0
- package/modern/src/utils/index.d.ts +2 -0
- package/modern/{utils → src/utils}/native-supports.d.ts +1 -2
- package/modern/utils/format.js +1 -0
- package/modern/utils/format.js.map +1 -0
- package/modern/utils/index.js +1 -0
- package/modern/utils/index.js.map +1 -0
- package/modern/utils/native-supports.js +1 -0
- package/modern/utils/native-supports.js.map +1 -0
- package/moderncssm/Component.js +2 -1
- package/moderncssm/Component.js.map +1 -0
- package/moderncssm/index.js +1 -0
- package/moderncssm/index.js.map +1 -0
- package/moderncssm/index.module.css +3 -3
- package/{modern → moderncssm/src}/Component.d.ts +4 -7
- package/moderncssm/src/index.d.ts +2 -0
- package/moderncssm/src/utils/format.d.ts +8 -0
- package/moderncssm/src/utils/index.d.ts +2 -0
- package/moderncssm/{utils → src/utils}/native-supports.d.ts +1 -2
- package/moderncssm/utils/format.js +1 -0
- package/moderncssm/utils/format.js.map +1 -0
- package/moderncssm/utils/index.js +1 -0
- package/moderncssm/utils/index.js.map +1 -0
- package/moderncssm/utils/native-supports.js +1 -0
- package/moderncssm/utils/native-supports.js.map +1 -0
- package/package.json +4 -4
- package/src/Component.d.ts +46 -0
- package/src/index.d.ts +2 -0
- package/src/utils/format.d.ts +8 -0
- package/src/utils/index.d.ts +2 -0
- package/src/utils/native-supports.d.ts +4 -0
- package/utils/format.js +1 -0
- package/utils/format.js.map +1 -0
- package/utils/index.js +12 -11
- package/utils/index.js.map +1 -0
- package/utils/native-supports.js +1 -0
- package/utils/native-supports.js.map +1 -0
- package/cssm/index.d.ts +0 -2
- package/cssm/utils/format.d.ts +0 -9
- package/cssm/utils/index.d.ts +0 -2
- package/esm/index.d.ts +0 -2
- package/esm/utils/format.d.ts +0 -9
- package/esm/utils/index.d.ts +0 -2
- package/index.d.ts +0 -2
- package/modern/index.d.ts +0 -2
- package/modern/utils/format.d.ts +0 -9
- package/modern/utils/index.d.ts +0 -2
- package/moderncssm/Component.d.ts +0 -49
- package/moderncssm/index.d.ts +0 -2
- package/moderncssm/utils/format.d.ts +0 -9
- package/moderncssm/utils/index.d.ts +0 -2
- package/utils/format.d.ts +0 -9
- package/utils/index.d.ts +0 -2
- package/utils/native-supports.d.ts +0 -5
package/Component.js
CHANGED
|
@@ -6,17 +6,15 @@ var tslib = require('tslib');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var mergeRefs = require('react-merge-refs');
|
|
8
8
|
var coreComponentsInput = require('@alfalab/core-components-input');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var format = require('./utils/format.js');
|
|
10
|
+
var nativeSupports = require('./utils/native-supports.js');
|
|
11
|
+
var index_module = require('./index.module.css.js');
|
|
11
12
|
|
|
12
13
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
14
|
|
|
14
15
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
16
|
var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
|
|
16
17
|
|
|
17
|
-
var styles = {"nativeInput":"date-input__nativeInput_w0ab5"};
|
|
18
|
-
require('./index.css')
|
|
19
|
-
|
|
20
18
|
/**
|
|
21
19
|
* @deprecated
|
|
22
20
|
* use UniversalDateInput instead
|
|
@@ -46,8 +44,8 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
46
44
|
return;
|
|
47
45
|
}
|
|
48
46
|
// Форматируем введенное значение (добавляем точки)
|
|
49
|
-
var formattedValue =
|
|
50
|
-
var date =
|
|
47
|
+
var formattedValue = format.format(newValue);
|
|
48
|
+
var date = format.parseDateString(formattedValue);
|
|
51
49
|
// Управляем кареткой, если она находится не в конце инпута
|
|
52
50
|
if (caretPos !== newValue.length) {
|
|
53
51
|
if (formattedValue === value) {
|
|
@@ -64,8 +62,8 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
64
62
|
setValue(formattedValue);
|
|
65
63
|
if (onChange)
|
|
66
64
|
onChange(event, { date: date, value: formattedValue });
|
|
67
|
-
if (
|
|
68
|
-
var valid = formattedValue.length > 0 &&
|
|
65
|
+
if (format.isCompleteDateInput(formattedValue)) {
|
|
66
|
+
var valid = formattedValue.length > 0 && format.isValid(formattedValue);
|
|
69
67
|
if (!valid)
|
|
70
68
|
return;
|
|
71
69
|
if (onComplete)
|
|
@@ -73,8 +71,8 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
73
71
|
}
|
|
74
72
|
};
|
|
75
73
|
var handleNativeInputChange = function (event) {
|
|
76
|
-
var newDate =
|
|
77
|
-
var newValue = event.target.value === '' ? '' :
|
|
74
|
+
var newDate = format.parseDateString(event.target.value, format.NATIVE_DATE_FORMAT);
|
|
75
|
+
var newValue = event.target.value === '' ? '' : format.formatDate(newDate);
|
|
78
76
|
setValue(newValue);
|
|
79
77
|
if (onComplete)
|
|
80
78
|
onComplete(event, { date: newDate, value: newValue });
|
|
@@ -86,7 +84,7 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
86
84
|
onBlur(event);
|
|
87
85
|
};
|
|
88
86
|
React.useEffect(function () {
|
|
89
|
-
if (mobileMode === 'native' &&
|
|
87
|
+
if (mobileMode === 'native' && nativeSupports.isInputDateSupported()) {
|
|
90
88
|
setShouldRenderNative(true);
|
|
91
89
|
}
|
|
92
90
|
}, [mobileMode]);
|
|
@@ -98,10 +96,11 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
98
96
|
}, [propValue]);
|
|
99
97
|
return (React__default.default.createElement(coreComponentsInput.Input, tslib.__assign({}, restProps, { ref: mergeRefs__default.default([ref, inputRef]), value: value, inputMode: 'decimal', pattern: '[0-9\\.]*', onChange: handleChange, onBlur: handleBlur, placeholder: '\u0414\u0414.\u041C\u041C.\u0413\u0413\u0413\u0413', error: error, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
|
|
100
98
|
rightAddons,
|
|
101
|
-
shouldRenderNative && (React__default.default.createElement("input", { type: 'date', ref: ref, defaultValue: defaultValue, onChange: handleNativeInputChange, className:
|
|
99
|
+
shouldRenderNative && (React__default.default.createElement("input", { type: 'date', ref: ref, defaultValue: defaultValue, onChange: handleNativeInputChange, className: index_module.nativeInput }))) })));
|
|
102
100
|
});
|
|
103
101
|
function getDotsCount(value) {
|
|
104
102
|
return (value.match(/\./g) || []).length;
|
|
105
103
|
}
|
|
106
104
|
|
|
107
105
|
exports.DateInput = DateInput;
|
|
106
|
+
//# sourceMappingURL=Component.js.map
|
package/Component.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent, FocusEvent, forwardRef, useEffect, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\n\nimport { Input, InputProps } from '@alfalab/core-components-input';\n\nimport {\n format,\n formatDate,\n isCompleteDateInput,\n isInputDateSupported,\n isValid,\n NATIVE_DATE_FORMAT,\n parseDateString,\n} from './utils';\n\nimport styles from './index.module.css';\n\nexport type DateInputProps = Omit<InputProps, 'onChange'> & {\n /**\n * Управление нативным режимом на мобильных устройствах\n */\n mobileMode?: 'input' | 'native';\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Обработчик окончания ввода\n */\n onComplete?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { date: Date; value: string },\n ) => void;\n};\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>(\n (\n {\n mobileMode = 'input',\n defaultValue = '',\n rightAddons,\n error,\n value: propValue,\n onBlur,\n onChange,\n onComplete,\n ...restProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [shouldRenderNative, setShouldRenderNative] = useState(false);\n\n const [value, setValue] = useState(propValue || defaultValue);\n\n const moveCaretTo = (pos: number) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(pos, pos);\n });\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const { value: newValue } = event.target;\n const caretPos = event.target.selectionStart || 0;\n\n // Позволяем вводить только цифры и точки\n if (/[^\\d.]/.test(newValue)) {\n moveCaretTo(caretPos - 1);\n\n return;\n }\n\n // Не даем вводить больше, чем 2 точки\n if (getDotsCount(newValue) > 2) {\n moveCaretTo(caretPos - 1);\n\n return;\n }\n\n // Форматируем введенное значение (добавляем точки)\n const formattedValue = format(newValue);\n const date = parseDateString(formattedValue);\n\n // Управляем кареткой, если она находится не в конце инпута\n if (caretPos !== newValue.length) {\n if (formattedValue === value) {\n moveCaretTo(caretPos);\n } else if (newValue.length - formattedValue.length === 1) {\n moveCaretTo(caretPos);\n } else if (\n formattedValue.length - newValue.length === 1 &&\n getDotsCount(formattedValue) > getDotsCount(newValue)\n ) {\n moveCaretTo(caretPos);\n }\n }\n\n setValue(formattedValue);\n\n if (onChange) onChange(event, { date, value: formattedValue });\n\n if (isCompleteDateInput(formattedValue)) {\n const valid = formattedValue.length > 0 && isValid(formattedValue);\n\n if (!valid) return;\n\n if (onComplete) onComplete(event, { date, value: formattedValue });\n }\n };\n\n const handleNativeInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newDate = parseDateString(event.target.value, NATIVE_DATE_FORMAT);\n const newValue = event.target.value === '' ? '' : formatDate(newDate);\n\n setValue(newValue);\n\n if (onComplete) onComplete(event, { date: newDate, value: newValue });\n if (onChange) onChange(event, { date: newDate, value: newValue });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (onBlur) onBlur(event);\n };\n\n useEffect(() => {\n if (mobileMode === 'native' && isInputDateSupported()) {\n setShouldRenderNative(true);\n }\n }, [mobileMode]);\n\n useEffect(() => {\n if (typeof propValue !== 'undefined') {\n setValue(propValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propValue]);\n\n return (\n <Input\n {...restProps}\n ref={mergeRefs([ref, inputRef])}\n value={value}\n inputMode='decimal'\n pattern='[0-9\\.]*'\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder='ДД.ММ.ГГГГ'\n error={error}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n\n {shouldRenderNative && (\n <input\n type='date'\n ref={ref}\n defaultValue={defaultValue}\n onChange={handleNativeInputChange}\n className={styles.nativeInput}\n />\n )}\n </React.Fragment>\n }\n />\n );\n },\n);\n\nfunction getDotsCount(value: string) {\n return (value.match(/\\./g) || []).length;\n}\n"],"names":["forwardRef","__rest","useRef","useState","format","parseDateString","isCompleteDateInput","isValid","NATIVE_DATE_FORMAT","formatDate","useEffect","isInputDateSupported","React","Input","__assign","mergeRefs","styles"],"mappings":"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"}
|
package/cssm/Component.js
CHANGED
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var mergeRefs = require('react-merge-refs');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
8
|
+
var cssm = require('@alfalab/core-components-input/cssm');
|
|
9
|
+
var format = require('./utils/format.js');
|
|
10
|
+
var nativeSupports = require('./utils/native-supports.js');
|
|
11
11
|
var styles = require('./index.module.css');
|
|
12
12
|
|
|
13
13
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
@@ -45,8 +45,8 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
// Форматируем введенное значение (добавляем точки)
|
|
48
|
-
var formattedValue =
|
|
49
|
-
var date =
|
|
48
|
+
var formattedValue = format.format(newValue);
|
|
49
|
+
var date = format.parseDateString(formattedValue);
|
|
50
50
|
// Управляем кареткой, если она находится не в конце инпута
|
|
51
51
|
if (caretPos !== newValue.length) {
|
|
52
52
|
if (formattedValue === value) {
|
|
@@ -63,8 +63,8 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
63
63
|
setValue(formattedValue);
|
|
64
64
|
if (onChange)
|
|
65
65
|
onChange(event, { date: date, value: formattedValue });
|
|
66
|
-
if (
|
|
67
|
-
var valid = formattedValue.length > 0 &&
|
|
66
|
+
if (format.isCompleteDateInput(formattedValue)) {
|
|
67
|
+
var valid = formattedValue.length > 0 && format.isValid(formattedValue);
|
|
68
68
|
if (!valid)
|
|
69
69
|
return;
|
|
70
70
|
if (onComplete)
|
|
@@ -72,8 +72,8 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
var handleNativeInputChange = function (event) {
|
|
75
|
-
var newDate =
|
|
76
|
-
var newValue = event.target.value === '' ? '' :
|
|
75
|
+
var newDate = format.parseDateString(event.target.value, format.NATIVE_DATE_FORMAT);
|
|
76
|
+
var newValue = event.target.value === '' ? '' : format.formatDate(newDate);
|
|
77
77
|
setValue(newValue);
|
|
78
78
|
if (onComplete)
|
|
79
79
|
onComplete(event, { date: newDate, value: newValue });
|
|
@@ -85,7 +85,7 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
85
85
|
onBlur(event);
|
|
86
86
|
};
|
|
87
87
|
React.useEffect(function () {
|
|
88
|
-
if (mobileMode === 'native' &&
|
|
88
|
+
if (mobileMode === 'native' && nativeSupports.isInputDateSupported()) {
|
|
89
89
|
setShouldRenderNative(true);
|
|
90
90
|
}
|
|
91
91
|
}, [mobileMode]);
|
|
@@ -95,7 +95,7 @@ var DateInput = React.forwardRef(function (_a, ref) {
|
|
|
95
95
|
}
|
|
96
96
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
97
|
}, [propValue]);
|
|
98
|
-
return (React__default.default.createElement(
|
|
98
|
+
return (React__default.default.createElement(cssm.Input, tslib.__assign({}, restProps, { ref: mergeRefs__default.default([ref, inputRef]), value: value, inputMode: 'decimal', pattern: '[0-9\\.]*', onChange: handleChange, onBlur: handleBlur, placeholder: '\u0414\u0414.\u041C\u041C.\u0413\u0413\u0413\u0413', error: error, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
|
|
99
99
|
rightAddons,
|
|
100
100
|
shouldRenderNative && (React__default.default.createElement("input", { type: 'date', ref: ref, defaultValue: defaultValue, onChange: handleNativeInputChange, className: styles__default.default.nativeInput }))) })));
|
|
101
101
|
});
|
|
@@ -104,3 +104,4 @@ function getDotsCount(value) {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
exports.DateInput = DateInput;
|
|
107
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent, FocusEvent, forwardRef, useEffect, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\n\nimport { Input, InputProps } from '@alfalab/core-components-input';\n\nimport {\n format,\n formatDate,\n isCompleteDateInput,\n isInputDateSupported,\n isValid,\n NATIVE_DATE_FORMAT,\n parseDateString,\n} from './utils';\n\nimport styles from './index.module.css';\n\nexport type DateInputProps = Omit<InputProps, 'onChange'> & {\n /**\n * Управление нативным режимом на мобильных устройствах\n */\n mobileMode?: 'input' | 'native';\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Обработчик окончания ввода\n */\n onComplete?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { date: Date; value: string },\n ) => void;\n};\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>(\n (\n {\n mobileMode = 'input',\n defaultValue = '',\n rightAddons,\n error,\n value: propValue,\n onBlur,\n onChange,\n onComplete,\n ...restProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [shouldRenderNative, setShouldRenderNative] = useState(false);\n\n const [value, setValue] = useState(propValue || defaultValue);\n\n const moveCaretTo = (pos: number) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(pos, pos);\n });\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const { value: newValue } = event.target;\n const caretPos = event.target.selectionStart || 0;\n\n // Позволяем вводить только цифры и точки\n if (/[^\\d.]/.test(newValue)) {\n moveCaretTo(caretPos - 1);\n\n return;\n }\n\n // Не даем вводить больше, чем 2 точки\n if (getDotsCount(newValue) > 2) {\n moveCaretTo(caretPos - 1);\n\n return;\n }\n\n // Форматируем введенное значение (добавляем точки)\n const formattedValue = format(newValue);\n const date = parseDateString(formattedValue);\n\n // Управляем кареткой, если она находится не в конце инпута\n if (caretPos !== newValue.length) {\n if (formattedValue === value) {\n moveCaretTo(caretPos);\n } else if (newValue.length - formattedValue.length === 1) {\n moveCaretTo(caretPos);\n } else if (\n formattedValue.length - newValue.length === 1 &&\n getDotsCount(formattedValue) > getDotsCount(newValue)\n ) {\n moveCaretTo(caretPos);\n }\n }\n\n setValue(formattedValue);\n\n if (onChange) onChange(event, { date, value: formattedValue });\n\n if (isCompleteDateInput(formattedValue)) {\n const valid = formattedValue.length > 0 && isValid(formattedValue);\n\n if (!valid) return;\n\n if (onComplete) onComplete(event, { date, value: formattedValue });\n }\n };\n\n const handleNativeInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newDate = parseDateString(event.target.value, NATIVE_DATE_FORMAT);\n const newValue = event.target.value === '' ? '' : formatDate(newDate);\n\n setValue(newValue);\n\n if (onComplete) onComplete(event, { date: newDate, value: newValue });\n if (onChange) onChange(event, { date: newDate, value: newValue });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (onBlur) onBlur(event);\n };\n\n useEffect(() => {\n if (mobileMode === 'native' && isInputDateSupported()) {\n setShouldRenderNative(true);\n }\n }, [mobileMode]);\n\n useEffect(() => {\n if (typeof propValue !== 'undefined') {\n setValue(propValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propValue]);\n\n return (\n <Input\n {...restProps}\n ref={mergeRefs([ref, inputRef])}\n value={value}\n inputMode='decimal'\n pattern='[0-9\\.]*'\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder='ДД.ММ.ГГГГ'\n error={error}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n\n {shouldRenderNative && (\n <input\n type='date'\n ref={ref}\n defaultValue={defaultValue}\n onChange={handleNativeInputChange}\n className={styles.nativeInput}\n />\n )}\n </React.Fragment>\n }\n />\n );\n },\n);\n\nfunction getDotsCount(value: string) {\n return (value.match(/\\./g) || []).length;\n}\n"],"names":["forwardRef","__rest","useRef","useState","format","parseDateString","isCompleteDateInput","isValid","NATIVE_DATE_FORMAT","formatDate","useEffect","isInputDateSupported","React","Input","__assign","mergeRefs","styles"],"mappings":"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"}
|
package/cssm/index.js
CHANGED
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var Component = require('./Component.js');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
6
|
+
var format = require('./utils/format.js');
|
|
7
|
+
var nativeSupports = require('./utils/native-supports.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
exports.DateInput = Component.DateInput;
|
|
12
|
-
exports.DATE_FORMAT =
|
|
13
|
-
exports.DATE_MASK =
|
|
14
|
-
exports.NATIVE_DATE_FORMAT =
|
|
15
|
-
exports.format =
|
|
16
|
-
exports.formatDate =
|
|
17
|
-
exports.isCompleteDateInput =
|
|
18
|
-
exports.isValid =
|
|
19
|
-
exports.parseDateString =
|
|
20
|
-
exports.isInputDateSupported =
|
|
12
|
+
exports.DATE_FORMAT = format.DATE_FORMAT;
|
|
13
|
+
exports.DATE_MASK = format.DATE_MASK;
|
|
14
|
+
exports.NATIVE_DATE_FORMAT = format.NATIVE_DATE_FORMAT;
|
|
15
|
+
exports.format = format.format;
|
|
16
|
+
exports.formatDate = format.formatDate;
|
|
17
|
+
exports.isCompleteDateInput = format.isCompleteDateInput;
|
|
18
|
+
exports.isValid = format.isValid;
|
|
19
|
+
exports.parseDateString = format.parseDateString;
|
|
20
|
+
exports.isInputDateSupported = nativeSupports.isInputDateSupported;
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
package/cssm/index.module.css
CHANGED
|
@@ -1,34 +1,15 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
} /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
3
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
4
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
5
|
-
} :root {
|
|
6
|
-
|
|
7
|
-
/* Hard */
|
|
8
|
-
|
|
9
|
-
/* Up */
|
|
10
|
-
|
|
11
|
-
/* Hard up */
|
|
12
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
13
|
-
|
|
14
|
-
/* новые значения, используйте их */
|
|
15
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
16
|
-
|
|
17
|
-
/* новые значения, используйте их */
|
|
18
|
-
|
|
19
|
-
/* no-unit может приводить к проблемам в calc (#1559) */
|
|
20
|
-
/* stylelint-disable-next-line length-zero-no-unit */
|
|
1
|
+
:root {
|
|
21
2
|
--gap-0: 0px;
|
|
22
|
-
}
|
|
23
|
-
} :root {
|
|
24
|
-
} /* сбрасывает синюю подсветку при нажатии */ .nativeInput {
|
|
3
|
+
} .nativeInput {
|
|
25
4
|
opacity: 0;
|
|
26
5
|
position: absolute;
|
|
27
6
|
top: var(--gap-0);
|
|
28
7
|
left: var(--gap-0);
|
|
29
8
|
width: 100%;
|
|
30
9
|
height: 100%;
|
|
31
|
-
appearance: none;
|
|
10
|
+
-webkit-appearance: none;
|
|
11
|
+
-moz-appearance: none;
|
|
12
|
+
appearance: none;
|
|
32
13
|
z-index: 1
|
|
33
14
|
} .nativeInput::-webkit-calendar-picker-indicator {
|
|
34
15
|
display: none;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { InputProps } from "@alfalab/core-components-input";
|
|
5
|
-
type DateInputProps = Omit<InputProps, 'onChange'> & {
|
|
1
|
+
import React, { ChangeEvent } from 'react';
|
|
2
|
+
import { InputProps } from '@alfalab/core-components-input';
|
|
3
|
+
export declare type DateInputProps = Omit<InputProps, 'onChange'> & {
|
|
6
4
|
/**
|
|
7
5
|
* Управление нативным режимом на мобильных устройствах
|
|
8
6
|
*/
|
|
@@ -26,7 +24,7 @@ type DateInputProps = Omit<InputProps, 'onChange'> & {
|
|
|
26
24
|
* @deprecated
|
|
27
25
|
* use UniversalDateInput instead
|
|
28
26
|
*/
|
|
29
|
-
declare const DateInput: React.ForwardRefExoticComponent<Omit<InputProps, "onChange"> & {
|
|
27
|
+
export declare const DateInput: React.ForwardRefExoticComponent<Omit<InputProps, "onChange"> & {
|
|
30
28
|
/**
|
|
31
29
|
* Управление нативным режимом на мобильных устройствах
|
|
32
30
|
*/
|
|
@@ -46,4 +44,3 @@ declare const DateInput: React.ForwardRefExoticComponent<Omit<InputProps, "onCha
|
|
|
46
44
|
value: string;
|
|
47
45
|
}) => void) | undefined;
|
|
48
46
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
49
|
-
export { DateInputProps, DateInput };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const DATE_FORMAT = "dd.MM.yyyy";
|
|
2
|
+
export declare const NATIVE_DATE_FORMAT = "yyyy-MM-dd";
|
|
3
|
+
export declare const DATE_MASK: (string | RegExp)[];
|
|
4
|
+
export declare const isCompleteDateInput: (input: string) => boolean;
|
|
5
|
+
export declare const formatDate: (date: Date | number, dateFormat?: string) => string;
|
|
6
|
+
export declare const parseDateString: (value: string, dateFormat?: string) => Date;
|
|
7
|
+
export declare const isValid: (inputValue?: string) => boolean;
|
|
8
|
+
export declare const format: (value: string) => string;
|
package/cssm/utils/format.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sources":["../../../src/utils/format.ts"],"sourcesContent":["import dateFnsFormat from 'date-fns/format';\nimport dateFnsIsValid from 'date-fns/isValid';\nimport parse from 'date-fns/parse';\n\nexport const DATE_FORMAT = 'dd.MM.yyyy';\nexport const NATIVE_DATE_FORMAT = 'yyyy-MM-dd';\nexport const DATE_MASK = [/\\d/, /\\d/, '.', /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, /\\d/];\n\nexport const isCompleteDateInput = (input: string) => input.length === DATE_MASK.length;\n\nexport const formatDate = (date: Date | number, dateFormat = DATE_FORMAT) =>\n dateFnsFormat(date, dateFormat);\n\nexport const parseDateString = (value: string, dateFormat = DATE_FORMAT) =>\n parse(value, dateFormat, new Date());\n\nexport const isValid = (inputValue?: string) =>\n !inputValue || (isCompleteDateInput(inputValue) && dateFnsIsValid(parseDateString(inputValue)));\n\nexport const format = (value: string): string =>\n value\n .replace(/^(\\d\\d)(\\d)$/, '$1.$2') // 121 => 12.1\n .replace(/^(\\d\\d)\\.(\\d\\d)(\\d)$/, '$1.$2.$3') // 12.122 => 12.12.2\n .replace(/^(\\d\\d)\\d\\.(.*)/, '$1.$2') // 123.12.2005 => 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d)\\d\\.(.*)/, '$1.$2') // 12.123.2005 => 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d).*/, '$1') // 12.12.20056 => 12.12.2005\n .replace(/\\.$/, '') // 12. => 12\n .replace(/^(\\d\\d\\.\\d\\d)(\\d\\d\\d\\d)/, '$1.$2') // 12.122005 => 12.12.2005\n .replace(/^(\\d\\d)(\\d\\d\\.\\d\\d\\d\\d)/, '$1.$2') // 1212.2005 => 12.12.2005\n .replace(/^(\\d\\.\\d\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 1.12.2005123123 => 01.12.2005\n .replace(/^(\\d\\d\\.\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 01.2.20055125125 => 01.2.2005\n .replace(/^(\\d\\.\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 1.2.20055125125 => 1.2.2005\n .replace(/^(\\d)\\.(\\d\\d)([0-9]*)\\.(\\d\\d\\d\\d)/, '$1.$2.$4') // 1.123123.2005 => 1.12.2005\n .replace(/^(\\d\\d)\\.()\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3') // 01..2005123123 => 01..2005\n .replace(/^(\\d)\\.()\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3') // 1..2005123123 => 1..2005\n .replace(/^()\\.()\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3') // ..2005123123 => ..2005\n .replace(/^()\\.(\\d)\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3'); // .2.2005123123 => .2.2005\n"],"names":["dateFnsFormat","parse","dateFnsIsValid"],"mappings":";;;;;;;;;;;;;;AAIO,IAAM,WAAW,GAAG;AACpB,IAAM,kBAAkB,GAAG;AACrB,IAAA,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAErE,IAAA,mBAAmB,GAAG,UAAC,KAAa,EAAK,EAAA,OAAA,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAA;AAE1E,IAAA,UAAU,GAAG,UAAC,IAAmB,EAAE,UAAwB,EAAA;AAAxB,IAAA,IAAA,UAAA,KAAA,MAAA,EAAA,EAAA,UAAwB,GAAA,WAAA,CAAA;AACpE,IAAA,OAAAA,8BAAa,CAAC,IAAI,EAAE,UAAU,CAAC;AAA/B;AAES,IAAA,eAAe,GAAG,UAAC,KAAa,EAAE,UAAwB,EAAA;AAAxB,IAAA,IAAA,UAAA,KAAA,MAAA,EAAA,EAAA,UAAwB,GAAA,WAAA,CAAA;IACnE,OAAAC,sBAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;AAApC;AAEG,IAAM,OAAO,GAAG,UAAC,UAAmB,EAAA;AACvC,IAAA,OAAA,CAAC,UAAU,KAAK,mBAAmB,CAAC,UAAU,CAAC,IAAIC,+BAAc,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AAA/F;AAEG,IAAM,MAAM,GAAG,UAAC,KAAa,EAAA;AAChC,IAAA,OAAA;AACK,SAAA,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;AAChC,SAAA,OAAO,CAAC,sBAAsB,EAAE,UAAU,CAAC;AAC3C,SAAA,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;AACnC,SAAA,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;AACzC,SAAA,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC;AAC1C,SAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,SAAA,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC;AAC3C,SAAA,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC;AAC3C,SAAA,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC;AAC9C,SAAA,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC;AAC9C,SAAA,OAAO,CAAC,6BAA6B,EAAE,IAAI,CAAC;AAC5C,SAAA,OAAO,CAAC,mCAAmC,EAAE,UAAU,CAAC;AACxD,SAAA,OAAO,CAAC,iCAAiC,EAAE,UAAU,CAAC;AACtD,SAAA,OAAO,CAAC,+BAA+B,EAAE,UAAU,CAAC;AACpD,SAAA,OAAO,CAAC,6BAA6B,EAAE,UAAU,CAAC;AAClD,SAAA,OAAO,CAAC,+BAA+B,EAAE,UAAU,CAAC;AAhBzD,EAgB0D;;;;;;;;;;;"}
|
package/cssm/utils/index.js
CHANGED
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var format = require('./format.js');
|
|
6
|
+
var nativeSupports = require('./native-supports.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
exports.DATE_FORMAT =
|
|
11
|
-
exports.DATE_MASK =
|
|
12
|
-
exports.NATIVE_DATE_FORMAT =
|
|
13
|
-
exports.format =
|
|
14
|
-
exports.formatDate =
|
|
15
|
-
exports.isCompleteDateInput =
|
|
16
|
-
exports.isValid =
|
|
17
|
-
exports.parseDateString =
|
|
18
|
-
exports.isInputDateSupported =
|
|
10
|
+
exports.DATE_FORMAT = format.DATE_FORMAT;
|
|
11
|
+
exports.DATE_MASK = format.DATE_MASK;
|
|
12
|
+
exports.NATIVE_DATE_FORMAT = format.NATIVE_DATE_FORMAT;
|
|
13
|
+
exports.format = format.format;
|
|
14
|
+
exports.formatDate = format.formatDate;
|
|
15
|
+
exports.isCompleteDateInput = format.isCompleteDateInput;
|
|
16
|
+
exports.isValid = format.isValid;
|
|
17
|
+
exports.parseDateString = format.parseDateString;
|
|
18
|
+
exports.isInputDateSupported = nativeSupports.isInputDateSupported;
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-supports.js","sources":["../../../src/utils/native-supports.ts"],"sourcesContent":["/**\n * Возвращает `true`, если поддерживается `input[type=\"date\"]`\n */\nexport function isInputDateSupported() {\n const input = document.createElement('input');\n const value = 'a';\n\n input.setAttribute('type', 'date');\n input.setAttribute('value', value);\n\n return input.value !== value;\n}\n"],"names":[],"mappings":";;;;AAAA;;AAEG;SACa,oBAAoB,GAAA;IAChC,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;IAC7C,IAAM,KAAK,GAAG,GAAG;AAEjB,IAAA,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AAClC,IAAA,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AAElC,IAAA,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK;AAChC;;;;"}
|
package/esm/Component.js
CHANGED
|
@@ -2,11 +2,9 @@ import { __rest, __assign } from 'tslib';
|
|
|
2
2
|
import React, { forwardRef, useRef, useState, useEffect } from 'react';
|
|
3
3
|
import mergeRefs from 'react-merge-refs';
|
|
4
4
|
import { Input } from '@alfalab/core-components-input/esm';
|
|
5
|
-
import { format, parseDateString, isCompleteDateInput, isValid,
|
|
5
|
+
import { format, parseDateString, isCompleteDateInput, isValid, formatDate, NATIVE_DATE_FORMAT } from './utils/format.js';
|
|
6
6
|
import { isInputDateSupported } from './utils/native-supports.js';
|
|
7
|
-
|
|
8
|
-
var styles = {"nativeInput":"date-input__nativeInput_w0ab5"};
|
|
9
|
-
require('./index.css')
|
|
7
|
+
import styles from './index.module.css.js';
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
10
|
* @deprecated
|
|
@@ -96,3 +94,4 @@ function getDotsCount(value) {
|
|
|
96
94
|
}
|
|
97
95
|
|
|
98
96
|
export { DateInput };
|
|
97
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent, FocusEvent, forwardRef, useEffect, useRef, useState } from 'react';\nimport mergeRefs from 'react-merge-refs';\n\nimport { Input, InputProps } from '@alfalab/core-components-input';\n\nimport {\n format,\n formatDate,\n isCompleteDateInput,\n isInputDateSupported,\n isValid,\n NATIVE_DATE_FORMAT,\n parseDateString,\n} from './utils';\n\nimport styles from './index.module.css';\n\nexport type DateInputProps = Omit<InputProps, 'onChange'> & {\n /**\n * Управление нативным режимом на мобильных устройствах\n */\n mobileMode?: 'input' | 'native';\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Обработчик окончания ввода\n */\n onComplete?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { date: Date; value: string },\n ) => void;\n};\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>(\n (\n {\n mobileMode = 'input',\n defaultValue = '',\n rightAddons,\n error,\n value: propValue,\n onBlur,\n onChange,\n onComplete,\n ...restProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [shouldRenderNative, setShouldRenderNative] = useState(false);\n\n const [value, setValue] = useState(propValue || defaultValue);\n\n const moveCaretTo = (pos: number) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(pos, pos);\n });\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const { value: newValue } = event.target;\n const caretPos = event.target.selectionStart || 0;\n\n // Позволяем вводить только цифры и точки\n if (/[^\\d.]/.test(newValue)) {\n moveCaretTo(caretPos - 1);\n\n return;\n }\n\n // Не даем вводить больше, чем 2 точки\n if (getDotsCount(newValue) > 2) {\n moveCaretTo(caretPos - 1);\n\n return;\n }\n\n // Форматируем введенное значение (добавляем точки)\n const formattedValue = format(newValue);\n const date = parseDateString(formattedValue);\n\n // Управляем кареткой, если она находится не в конце инпута\n if (caretPos !== newValue.length) {\n if (formattedValue === value) {\n moveCaretTo(caretPos);\n } else if (newValue.length - formattedValue.length === 1) {\n moveCaretTo(caretPos);\n } else if (\n formattedValue.length - newValue.length === 1 &&\n getDotsCount(formattedValue) > getDotsCount(newValue)\n ) {\n moveCaretTo(caretPos);\n }\n }\n\n setValue(formattedValue);\n\n if (onChange) onChange(event, { date, value: formattedValue });\n\n if (isCompleteDateInput(formattedValue)) {\n const valid = formattedValue.length > 0 && isValid(formattedValue);\n\n if (!valid) return;\n\n if (onComplete) onComplete(event, { date, value: formattedValue });\n }\n };\n\n const handleNativeInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newDate = parseDateString(event.target.value, NATIVE_DATE_FORMAT);\n const newValue = event.target.value === '' ? '' : formatDate(newDate);\n\n setValue(newValue);\n\n if (onComplete) onComplete(event, { date: newDate, value: newValue });\n if (onChange) onChange(event, { date: newDate, value: newValue });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (onBlur) onBlur(event);\n };\n\n useEffect(() => {\n if (mobileMode === 'native' && isInputDateSupported()) {\n setShouldRenderNative(true);\n }\n }, [mobileMode]);\n\n useEffect(() => {\n if (typeof propValue !== 'undefined') {\n setValue(propValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propValue]);\n\n return (\n <Input\n {...restProps}\n ref={mergeRefs([ref, inputRef])}\n value={value}\n inputMode='decimal'\n pattern='[0-9\\.]*'\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder='ДД.ММ.ГГГГ'\n error={error}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n\n {shouldRenderNative && (\n <input\n type='date'\n ref={ref}\n defaultValue={defaultValue}\n onChange={handleNativeInputChange}\n className={styles.nativeInput}\n />\n )}\n </React.Fragment>\n }\n />\n );\n },\n);\n\nfunction getDotsCount(value: string) {\n return (value.match(/\\./g) || []).length;\n}\n"],"names":[],"mappings":"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"}
|
package/esm/index.css
CHANGED
|
@@ -1,38 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
:root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
3
|
-
} /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
4
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
5
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
6
|
-
} :root {
|
|
7
|
-
|
|
8
|
-
/* Hard */
|
|
9
|
-
|
|
10
|
-
/* Up */
|
|
11
|
-
|
|
12
|
-
/* Hard up */
|
|
13
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
14
|
-
|
|
15
|
-
/* новые значения, используйте их */
|
|
16
|
-
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
17
|
-
|
|
18
|
-
/* новые значения, используйте их */
|
|
19
|
-
|
|
20
|
-
/* no-unit может приводить к проблемам в calc (#1559) */
|
|
21
|
-
/* stylelint-disable-next-line length-zero-no-unit */
|
|
1
|
+
:root {
|
|
22
2
|
--gap-0: 0px;
|
|
23
|
-
}
|
|
24
|
-
} :root {
|
|
25
|
-
} /* сбрасывает синюю подсветку при нажатии */ .date-input__nativeInput_w0ab5 {
|
|
3
|
+
} .date-input__nativeInput_17btv {
|
|
26
4
|
opacity: 0;
|
|
27
5
|
position: absolute;
|
|
28
6
|
top: var(--gap-0);
|
|
29
7
|
left: var(--gap-0);
|
|
30
8
|
width: 100%;
|
|
31
9
|
height: 100%;
|
|
32
|
-
appearance: none;
|
|
10
|
+
-webkit-appearance: none;
|
|
11
|
+
-moz-appearance: none;
|
|
12
|
+
appearance: none;
|
|
33
13
|
z-index: 1
|
|
34
|
-
} .date-
|
|
14
|
+
} .date-input__nativeInput_17btv::-webkit-calendar-picker-indicator {
|
|
35
15
|
display: none;
|
|
36
|
-
} .date-
|
|
16
|
+
} .date-input__nativeInput_17btv::-webkit-inner-spin-button {
|
|
37
17
|
display: none;
|
|
38
18
|
}
|
package/esm/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { DateInput } from './Component.js';
|
|
2
2
|
export { DATE_FORMAT, DATE_MASK, NATIVE_DATE_FORMAT, format, formatDate, isCompleteDateInput, isValid, parseDateString } from './utils/format.js';
|
|
3
3
|
export { isInputDateSupported } from './utils/native-supports.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '../../vars/src/index.css';\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,aAAa,CAAC,+BAA+B,CAAC;;;;"}
|