@alfalab/core-components-date-range-input 3.5.28-snapshot-1393ffa → 3.5.29
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.responsive.d.ts +21 -0
- package/Component.responsive.js +3 -4
- package/{cssm/src/components → components}/date-range-input/Component.d.ts +11 -8
- package/components/date-range-input/Component.js +27 -26
- package/components/date-range-input/index.css +51 -11
- package/components/date-range-input/index.d.ts +1 -0
- package/components/date-range-input/index.js +2 -3
- package/cssm/Component.responsive.d.ts +21 -0
- package/cssm/Component.responsive.js +5 -6
- package/{esm/src → cssm}/components/date-range-input/Component.d.ts +11 -8
- package/cssm/components/date-range-input/Component.js +23 -24
- package/cssm/components/date-range-input/index.d.ts +1 -0
- package/cssm/components/date-range-input/index.js +2 -3
- package/cssm/components/date-range-input/index.module.css +44 -5
- package/cssm/desktop/Component.desktop.d.ts +10 -0
- package/cssm/desktop/Component.desktop.js +4 -5
- package/cssm/desktop/index.d.ts +2 -0
- package/cssm/desktop/index.js +2 -3
- package/cssm/index.d.ts +3 -0
- package/cssm/index.js +0 -1
- package/cssm/mobile/Component.mobile.d.ts +10 -0
- package/cssm/mobile/Component.mobile.js +4 -5
- package/cssm/mobile/index.d.ts +2 -0
- package/cssm/mobile/index.js +2 -3
- package/cssm/utils/format.d.ts +8 -0
- package/cssm/utils/format.js +0 -1
- package/cssm/utils/index.d.ts +1 -0
- package/cssm/utils/index.js +8 -9
- package/desktop/Component.desktop.d.ts +10 -0
- package/desktop/Component.desktop.js +4 -5
- package/desktop/index.d.ts +2 -0
- package/desktop/index.js +2 -3
- package/esm/Component.responsive.d.ts +21 -0
- package/esm/Component.responsive.js +0 -1
- package/{modern/src → esm}/components/date-range-input/Component.d.ts +11 -8
- package/esm/components/date-range-input/Component.js +3 -2
- package/esm/components/date-range-input/index.css +51 -11
- package/esm/components/date-range-input/index.d.ts +1 -0
- package/esm/components/date-range-input/index.js +0 -1
- package/esm/desktop/Component.desktop.d.ts +10 -0
- package/esm/desktop/Component.desktop.js +0 -1
- package/esm/desktop/index.d.ts +2 -0
- package/esm/desktop/index.js +0 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.js +0 -1
- package/esm/mobile/Component.mobile.d.ts +10 -0
- package/esm/mobile/Component.mobile.js +0 -1
- package/esm/mobile/index.d.ts +2 -0
- package/esm/mobile/index.js +0 -1
- package/esm/utils/format.d.ts +8 -0
- package/esm/utils/format.js +0 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +0 -1
- package/index.d.ts +3 -0
- package/index.js +0 -1
- package/mobile/Component.mobile.d.ts +10 -0
- package/mobile/Component.mobile.js +4 -5
- package/mobile/index.d.ts +2 -0
- package/mobile/index.js +2 -3
- package/modern/Component.responsive.d.ts +21 -0
- package/modern/Component.responsive.js +0 -1
- package/{moderncssm/src → modern}/components/date-range-input/Component.d.ts +11 -8
- package/modern/components/date-range-input/Component.js +3 -2
- package/modern/components/date-range-input/index.css +51 -11
- package/modern/components/date-range-input/index.d.ts +1 -0
- package/modern/components/date-range-input/index.js +0 -1
- package/modern/desktop/Component.desktop.d.ts +10 -0
- package/modern/desktop/Component.desktop.js +0 -1
- package/modern/desktop/index.d.ts +2 -0
- package/modern/desktop/index.js +0 -1
- package/modern/index.d.ts +3 -0
- package/modern/index.js +0 -1
- package/modern/mobile/Component.mobile.d.ts +10 -0
- package/modern/mobile/Component.mobile.js +0 -1
- package/modern/mobile/index.d.ts +2 -0
- package/modern/mobile/index.js +0 -1
- package/modern/utils/format.d.ts +8 -0
- package/modern/utils/format.js +0 -1
- package/modern/utils/index.d.ts +1 -0
- package/modern/utils/index.js +0 -1
- package/moderncssm/Component.responsive.d.ts +21 -0
- package/moderncssm/Component.responsive.js +0 -1
- package/moderncssm/components/date-range-input/Component.d.ts +117 -0
- package/moderncssm/components/date-range-input/Component.js +0 -1
- package/moderncssm/components/date-range-input/index.d.ts +1 -0
- package/moderncssm/components/date-range-input/index.js +0 -1
- package/moderncssm/components/date-range-input/index.module.css +21 -0
- package/moderncssm/desktop/Component.desktop.d.ts +10 -0
- package/moderncssm/desktop/Component.desktop.js +0 -1
- package/moderncssm/desktop/index.d.ts +2 -0
- package/moderncssm/desktop/index.js +0 -1
- package/moderncssm/index.d.ts +3 -0
- package/moderncssm/index.js +0 -1
- package/moderncssm/mobile/Component.mobile.d.ts +10 -0
- package/moderncssm/mobile/Component.mobile.js +0 -1
- package/moderncssm/mobile/index.d.ts +2 -0
- package/moderncssm/mobile/index.js +0 -1
- package/moderncssm/utils/format.d.ts +8 -0
- package/moderncssm/utils/format.js +0 -1
- package/moderncssm/utils/index.d.ts +1 -0
- package/moderncssm/utils/index.js +0 -1
- package/package.json +10 -9
- package/utils/format.d.ts +8 -0
- package/utils/format.js +0 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +8 -9
- package/Component.responsive.js.map +0 -1
- package/components/date-range-input/Component.js.map +0 -1
- package/components/date-range-input/index.js.map +0 -1
- package/components/date-range-input/index.module.css.js +0 -8
- package/components/date-range-input/index.module.css.js.map +0 -1
- package/cssm/Component.responsive.js.map +0 -1
- package/cssm/components/date-range-input/Component.js.map +0 -1
- package/cssm/components/date-range-input/index.js.map +0 -1
- package/cssm/desktop/Component.desktop.js.map +0 -1
- package/cssm/desktop/index.js.map +0 -1
- package/cssm/index.js.map +0 -1
- package/cssm/mobile/Component.mobile.js.map +0 -1
- package/cssm/mobile/index.js.map +0 -1
- package/cssm/src/Component.responsive.d.ts +0 -19
- package/cssm/src/components/date-range-input/index.d.ts +0 -1
- package/cssm/src/desktop/Component.desktop.d.ts +0 -8
- package/cssm/src/desktop/index.d.ts +0 -1
- package/cssm/src/index.d.ts +0 -2
- package/cssm/src/mobile/Component.mobile.d.ts +0 -8
- package/cssm/src/mobile/index.d.ts +0 -1
- package/cssm/src/utils/format.d.ts +0 -7
- package/cssm/src/utils/index.d.ts +0 -1
- package/cssm/utils/format.js.map +0 -1
- package/cssm/utils/index.js.map +0 -1
- package/desktop/Component.desktop.js.map +0 -1
- package/desktop/index.js.map +0 -1
- package/esm/Component.responsive.js.map +0 -1
- package/esm/components/date-range-input/Component.js.map +0 -1
- package/esm/components/date-range-input/index.js.map +0 -1
- package/esm/components/date-range-input/index.module.css.js +0 -6
- package/esm/components/date-range-input/index.module.css.js.map +0 -1
- package/esm/desktop/Component.desktop.js.map +0 -1
- package/esm/desktop/index.js.map +0 -1
- package/esm/index.js.map +0 -1
- package/esm/mobile/Component.mobile.js.map +0 -1
- package/esm/mobile/index.js.map +0 -1
- package/esm/src/Component.responsive.d.ts +0 -19
- package/esm/src/components/date-range-input/index.d.ts +0 -1
- package/esm/src/desktop/Component.desktop.d.ts +0 -8
- package/esm/src/desktop/index.d.ts +0 -1
- package/esm/src/index.d.ts +0 -2
- package/esm/src/mobile/Component.mobile.d.ts +0 -8
- package/esm/src/mobile/index.d.ts +0 -1
- package/esm/src/utils/format.d.ts +0 -7
- package/esm/src/utils/index.d.ts +0 -1
- package/esm/utils/format.js.map +0 -1
- package/esm/utils/index.js.map +0 -1
- package/index.js.map +0 -1
- package/mobile/Component.mobile.js.map +0 -1
- package/mobile/index.js.map +0 -1
- package/modern/Component.responsive.js.map +0 -1
- package/modern/components/date-range-input/Component.js.map +0 -1
- package/modern/components/date-range-input/index.js.map +0 -1
- package/modern/components/date-range-input/index.module.css.js +0 -6
- package/modern/components/date-range-input/index.module.css.js.map +0 -1
- package/modern/desktop/Component.desktop.js.map +0 -1
- package/modern/desktop/index.js.map +0 -1
- package/modern/index.js.map +0 -1
- package/modern/mobile/Component.mobile.js.map +0 -1
- package/modern/mobile/index.js.map +0 -1
- package/modern/src/Component.responsive.d.ts +0 -19
- package/modern/src/components/date-range-input/index.d.ts +0 -1
- package/modern/src/desktop/Component.desktop.d.ts +0 -8
- package/modern/src/desktop/index.d.ts +0 -1
- package/modern/src/index.d.ts +0 -2
- package/modern/src/mobile/Component.mobile.d.ts +0 -8
- package/modern/src/mobile/index.d.ts +0 -1
- package/modern/src/utils/format.d.ts +0 -7
- package/modern/src/utils/index.d.ts +0 -1
- package/modern/utils/format.js.map +0 -1
- package/modern/utils/index.js.map +0 -1
- package/moderncssm/Component.responsive.js.map +0 -1
- package/moderncssm/components/date-range-input/Component.js.map +0 -1
- package/moderncssm/components/date-range-input/index.js.map +0 -1
- package/moderncssm/desktop/Component.desktop.js.map +0 -1
- package/moderncssm/desktop/index.js.map +0 -1
- package/moderncssm/index.js.map +0 -1
- package/moderncssm/mobile/Component.mobile.js.map +0 -1
- package/moderncssm/mobile/index.js.map +0 -1
- package/moderncssm/src/Component.responsive.d.ts +0 -19
- package/moderncssm/src/components/date-range-input/index.d.ts +0 -1
- package/moderncssm/src/desktop/Component.desktop.d.ts +0 -8
- package/moderncssm/src/desktop/index.d.ts +0 -1
- package/moderncssm/src/index.d.ts +0 -2
- package/moderncssm/src/mobile/Component.mobile.d.ts +0 -8
- package/moderncssm/src/mobile/index.d.ts +0 -1
- package/moderncssm/src/utils/format.d.ts +0 -7
- package/moderncssm/src/utils/index.d.ts +0 -1
- package/moderncssm/utils/format.js.map +0 -1
- package/moderncssm/utils/index.js.map +0 -1
- package/src/Component.responsive.d.ts +0 -19
- package/src/components/date-range-input/Component.d.ts +0 -114
- package/src/components/date-range-input/index.d.ts +0 -1
- package/src/desktop/Component.desktop.d.ts +0 -8
- package/src/desktop/index.d.ts +0 -1
- package/src/index.d.ts +0 -2
- package/src/mobile/Component.mobile.d.ts +0 -8
- package/src/mobile/index.d.ts +0 -1
- package/src/utils/format.d.ts +0 -7
- package/src/utils/index.d.ts +0 -1
- package/utils/format.js.map +0 -1
- package/utils/index.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ConditionalProps, DateRangeInputProps } from "./components/date-range-input/index";
|
|
4
|
+
type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps & {
|
|
5
|
+
/**
|
|
6
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
7
|
+
* @default 1024
|
|
8
|
+
*/
|
|
9
|
+
breakpoint?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Версия, которая будет использоваться при серверном рендеринге
|
|
12
|
+
*/
|
|
13
|
+
client?: 'desktop' | 'mobile';
|
|
14
|
+
};
|
|
15
|
+
type DateRangeInputMedia = 'desktop' | 'mobile';
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated
|
|
18
|
+
* use UniversalDateInput instead
|
|
19
|
+
*/
|
|
20
|
+
declare const DateRangeInputResponsive: React.ForwardRefExoticComponent<DateRangeInputResponsiveProps & React.RefAttributes<HTMLInputElement>>;
|
|
21
|
+
export { DateRangeInputResponsiveProps, DateRangeInputMedia, DateRangeInputResponsive };
|
package/Component.responsive.js
CHANGED
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var coreComponentsMq = require('@alfalab/core-components-mq');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var desktop_Component_desktop = require('./desktop/Component.desktop.js');
|
|
9
|
+
var mobile_Component_mobile = require('./mobile/Component.mobile.js');
|
|
10
10
|
|
|
11
11
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
12
12
|
|
|
@@ -19,8 +19,7 @@ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
|
19
19
|
var DateRangeInputResponsive = React.forwardRef(function (_a, ref) {
|
|
20
20
|
var breakpoint = _a.breakpoint, client = _a.client, restProps = tslib.__rest(_a, ["breakpoint", "client"]);
|
|
21
21
|
var isDesktop = coreComponentsMq.useIsDesktop(breakpoint, client === 'desktop');
|
|
22
|
-
return isDesktop ? (React__default.default.createElement(
|
|
22
|
+
return isDesktop ? (React__default.default.createElement(desktop_Component_desktop.DateRangeInputDesktop, tslib.__assign({}, restProps, { ref: ref }))) : (React__default.default.createElement(mobile_Component_mobile.DateRangeInputMobile, tslib.__assign({}, restProps, { ref: ref })));
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.DateRangeInputResponsive = DateRangeInputResponsive;
|
|
26
|
-
//# sourceMappingURL=Component.responsive.js.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ChangeEvent, ElementType } from "react";
|
|
4
|
+
import { CalendarDesktopProps } from "@alfalab/core-components-calendar/desktop";
|
|
5
|
+
import { CalendarMobileProps } from "@alfalab/core-components-calendar/mobile";
|
|
6
|
+
import { InputProps } from "@alfalab/core-components-input";
|
|
7
|
+
import { PopoverProps } from "@alfalab/core-components-popover";
|
|
8
|
+
type ConditionalProps = {
|
|
7
9
|
/**
|
|
8
10
|
* Обработчик изменения значения
|
|
9
11
|
*/
|
|
@@ -16,7 +18,7 @@ export declare type ConditionalProps = {
|
|
|
16
18
|
picker?: false;
|
|
17
19
|
onClose?: never;
|
|
18
20
|
};
|
|
19
|
-
|
|
21
|
+
type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
20
22
|
/**
|
|
21
23
|
* Дополнительный класс
|
|
22
24
|
*/
|
|
@@ -111,4 +113,5 @@ export declare type DateRangeInputProps = Omit<InputProps, 'onChange'> & Conditi
|
|
|
111
113
|
*/
|
|
112
114
|
disableUserInput?: boolean;
|
|
113
115
|
};
|
|
114
|
-
|
|
116
|
+
declare const DateRangeInput: React.ForwardRefExoticComponent<DateRangeInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
117
|
+
export { ConditionalProps, DateRangeInputProps, DateRangeInput };
|
|
@@ -13,8 +13,7 @@ var coreComponentsIconButton = require('@alfalab/core-components-icon-button');
|
|
|
13
13
|
var coreComponentsPopover = require('@alfalab/core-components-popover');
|
|
14
14
|
var hooks = require('@alfalab/hooks');
|
|
15
15
|
var CalendarMIcon = require('@alfalab/icons-glyph/CalendarMIcon');
|
|
16
|
-
var
|
|
17
|
-
var index_module = require('./index.module.css.js');
|
|
16
|
+
var utils_format = require('../../utils/format.js');
|
|
18
17
|
|
|
19
18
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
20
19
|
|
|
@@ -24,6 +23,9 @@ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
|
|
|
24
23
|
var dateFnsIsValid__default = /*#__PURE__*/_interopDefaultCompat(dateFnsIsValid);
|
|
25
24
|
var startOfMonth__default = /*#__PURE__*/_interopDefaultCompat(startOfMonth);
|
|
26
25
|
|
|
26
|
+
var styles = {"component":"date-range-input__component_h71xs","calendarContainer":"date-range-input__calendarContainer_h71xs","calendarResponsive":"date-range-input__calendarResponsive_h71xs","block":"date-range-input__block_h71xs","calendarIcon":"date-range-input__calendarIcon_h71xs"};
|
|
27
|
+
require('./index.css')
|
|
28
|
+
|
|
27
29
|
var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
28
30
|
var _b, _c;
|
|
29
31
|
var _d;
|
|
@@ -45,12 +47,12 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
45
47
|
React.useEffect(function () {
|
|
46
48
|
setValue(function (prevValue) {
|
|
47
49
|
if (selectedFrom && selectedTo) {
|
|
48
|
-
var from =
|
|
49
|
-
var to =
|
|
50
|
+
var from = utils_format.parseTimestampToDate(selectedFrom);
|
|
51
|
+
var to = utils_format.parseTimestampToDate(selectedTo);
|
|
50
52
|
return "".concat(from, " - ").concat(to);
|
|
51
53
|
}
|
|
52
|
-
if (selectedFrom && prevValue.length <
|
|
53
|
-
return
|
|
54
|
+
if (selectedFrom && prevValue.length < utils_format.DATE_FORMAT.length) {
|
|
55
|
+
return utils_format.parseTimestampToDate(selectedFrom);
|
|
54
56
|
}
|
|
55
57
|
return prevValue;
|
|
56
58
|
});
|
|
@@ -67,10 +69,10 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
67
69
|
});
|
|
68
70
|
}, [propValue]);
|
|
69
71
|
function getDates(val) {
|
|
70
|
-
var formattedValue =
|
|
72
|
+
var formattedValue = utils_format.format(val);
|
|
71
73
|
var dateArr = formattedValue.split('-').map(function (v) { return v.trim(); });
|
|
72
|
-
var dateFrom = dateArr[0] ?
|
|
73
|
-
var dateTo = dateArr[1] ?
|
|
74
|
+
var dateFrom = dateArr[0] ? utils_format.parseDateString(dateArr[0]) : undefined;
|
|
75
|
+
var dateTo = dateArr[1] ? utils_format.parseDateString(dateArr[1]) : undefined;
|
|
74
76
|
return { formattedValue: formattedValue, dateFrom: dateFrom, dateTo: dateTo, dateArr: dateArr };
|
|
75
77
|
}
|
|
76
78
|
function setCalendarPeriod(_a) {
|
|
@@ -79,17 +81,17 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
79
81
|
setEnd(dateTo === null || dateTo === void 0 ? void 0 : dateTo.getTime());
|
|
80
82
|
}
|
|
81
83
|
function handlePeriodChange(from, to) {
|
|
82
|
-
if (from && !to && value.length ===
|
|
83
|
-
setValue(
|
|
84
|
+
if (from && !to && value.length === utils_format.DATE_MASK.length) {
|
|
85
|
+
setValue(utils_format.parseTimestampToDate(from));
|
|
84
86
|
}
|
|
85
|
-
else if ((!from && !to && value.length ===
|
|
86
|
-
(from === to && value.length ===
|
|
87
|
+
else if ((!from && !to && value.length === utils_format.DATE_FORMAT.length) ||
|
|
88
|
+
(from === to && value.length === utils_format.DATE_MASK.length)) {
|
|
87
89
|
setValue('');
|
|
88
90
|
}
|
|
89
91
|
var dateFrom = from ? new Date(from) : undefined;
|
|
90
92
|
var dateTo = to ? new Date(to) : undefined;
|
|
91
93
|
var newValue = [from, to].filter(Boolean)
|
|
92
|
-
.map(function (timestamp) { return
|
|
94
|
+
.map(function (timestamp) { return utils_format.parseTimestampToDate(timestamp); })
|
|
93
95
|
.join(' - ');
|
|
94
96
|
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
95
97
|
dateFrom: dateFrom,
|
|
@@ -132,7 +134,7 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
132
134
|
var handleChange = function (event) {
|
|
133
135
|
var _a, _b;
|
|
134
136
|
var newValue = event.target.value;
|
|
135
|
-
if (newValue.length >
|
|
137
|
+
if (newValue.length > utils_format.DATE_MASK.length)
|
|
136
138
|
return;
|
|
137
139
|
// Позволяем вводить только цифры, точки, дефис и пробелы
|
|
138
140
|
if (/[^\d. -]/.test(newValue)) {
|
|
@@ -148,7 +150,7 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
148
150
|
if (!dateFrom && !dateTo) {
|
|
149
151
|
resetPeriod();
|
|
150
152
|
}
|
|
151
|
-
else if (selectedFrom && formattedValue.length <
|
|
153
|
+
else if (selectedFrom && formattedValue.length < utils_format.DATE_FORMAT.length) {
|
|
152
154
|
setStart();
|
|
153
155
|
}
|
|
154
156
|
else if (selectedFrom && selectedTo) {
|
|
@@ -156,20 +158,20 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
156
158
|
}
|
|
157
159
|
else if (dateFrom &&
|
|
158
160
|
dateFnsIsValid__default.default(dateFrom) &&
|
|
159
|
-
((_a = dateArr[0]) === null || _a === void 0 ? void 0 : _a.length) ===
|
|
161
|
+
((_a = dateArr[0]) === null || _a === void 0 ? void 0 : _a.length) === utils_format.DATE_FORMAT.length &&
|
|
160
162
|
dateFrom.getTime() !== selectedFrom) {
|
|
161
163
|
setStart(dateFrom.getTime());
|
|
162
164
|
}
|
|
163
165
|
else if (dateTo &&
|
|
164
166
|
dateFnsIsValid__default.default(dateTo) &&
|
|
165
|
-
((_b = dateArr[1]) === null || _b === void 0 ? void 0 : _b.length) ===
|
|
167
|
+
((_b = dateArr[1]) === null || _b === void 0 ? void 0 : _b.length) === utils_format.DATE_FORMAT.length &&
|
|
166
168
|
dateTo.getTime() !== selectedTo) {
|
|
167
169
|
setEnd(dateTo.getTime());
|
|
168
170
|
}
|
|
169
171
|
setValue(formattedValue);
|
|
170
172
|
onChange === null || onChange === void 0 ? void 0 : onChange({ dateFrom: dateFrom, dateTo: dateTo, value: formattedValue }, event);
|
|
171
|
-
if (
|
|
172
|
-
var valid =
|
|
173
|
+
if (utils_format.isCompleteDateInput(formattedValue)) {
|
|
174
|
+
var valid = utils_format.isValid(formattedValue, dateArr[0], dateArr[1]);
|
|
173
175
|
if (!valid)
|
|
174
176
|
return;
|
|
175
177
|
if (dateFrom && dateTo) {
|
|
@@ -209,17 +211,16 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
209
211
|
React__default.default.createElement("div", { onMouseDown: handleCalendarWrapperMouseDown },
|
|
210
212
|
React__default.default.createElement(Calendar, tslib.__assign({}, calendarProps, { responsive: calendarResponsive, open: open, onClose: handleCalendarClose, ref: calendarRef, defaultMonth: activeMonth || defaultMonth, selectedFrom: selectedFrom, selectedTo: selectedTo, onChange: handleCalendarChange, minDate: minDate, maxDate: maxDate, offDays: offDays, events: events })))) : null;
|
|
211
213
|
};
|
|
212
|
-
return (React__default.default.createElement("div", { className: cn__default.default(
|
|
213
|
-
_b[
|
|
214
|
+
return (React__default.default.createElement("div", { className: cn__default.default(styles.component, className, (_b = {},
|
|
215
|
+
_b[styles.block] = block,
|
|
214
216
|
_b)), onFocus: inputDisabled ? undefined : handleInputWrapperFocus, onBlur: handleBlur },
|
|
215
217
|
InputComponent ? (React__default.default.createElement(InputComponent, tslib.__assign({ autoComplete: picker ? 'off' : undefined }, restProps, { block: block, ref: mergeRefs__default.default([ref, inputRef]), value: value, onChange: handleChange, disabled: disabled, readOnly: readOnly, className: inputClassName, onClear: handleClear, disableUserInput: disableUserInput, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
|
|
216
218
|
rightAddons,
|
|
217
|
-
picker && (React__default.default.createElement(coreComponentsIconButton.IconButton, { className:
|
|
219
|
+
picker && (React__default.default.createElement(coreComponentsIconButton.IconButton, { className: styles.calendarIcon, ref: iconRef, onClick: inputDisabled ? undefined : handleIconButtonClick, icon: CalendarMIcon.CalendarMIcon, size: 's' }))) }))) : null,
|
|
218
220
|
picker &&
|
|
219
|
-
(view === 'desktop' ? (React__default.default.createElement(coreComponentsPopover.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputRef.current, popperClassName: cn__default.default(
|
|
220
|
-
_c[
|
|
221
|
+
(view === 'desktop' ? (React__default.default.createElement(coreComponentsPopover.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputRef.current, popperClassName: cn__default.default(styles.calendarContainer, (_c = {},
|
|
222
|
+
_c[styles.calendarResponsive] = calendarResponsive,
|
|
221
223
|
_c)), className: popoverClassName, position: popoverPosition, offset: [0, 8], withTransition: false, preventFlip: preventFlip, zIndex: zIndexPopover }, renderCalendar())) : (renderCalendar()))));
|
|
222
224
|
});
|
|
223
225
|
|
|
224
226
|
exports.DateRangeInput = DateRangeInput;
|
|
225
|
-
//# sourceMappingURL=Component.js.map
|
|
@@ -1,33 +1,73 @@
|
|
|
1
|
-
:
|
|
2
|
-
|
|
1
|
+
/* hash: i4j76 */
|
|
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 {
|
|
4
|
+
--color-light-neutral-300: #e7e8eb; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* 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 */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* 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 { /* deprecated */ /* deprecated */ /* 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
7
|
} :root {
|
|
4
|
-
|
|
8
|
+
|
|
9
|
+
/* Hard */
|
|
10
|
+
|
|
11
|
+
/* Up */
|
|
12
|
+
|
|
13
|
+
/* Hard up */
|
|
14
|
+
} :root { /* deprecated */ /* deprecated */
|
|
15
|
+
--border-radius-m: 8px; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
16
|
+
|
|
17
|
+
/* новые значения, используйте их */
|
|
5
18
|
--border-radius-8: var(--border-radius-m);
|
|
6
|
-
} :root {
|
|
7
|
-
--gap-s-neg: -12px;
|
|
19
|
+
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
20
|
+
--gap-s-neg: -12px; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
21
|
+
|
|
22
|
+
/* новые значения, используйте их */
|
|
23
|
+
|
|
24
|
+
/* no-unit может приводить к проблемам в calc (#1559) */
|
|
25
|
+
/* stylelint-disable-next-line length-zero-no-unit */
|
|
8
26
|
--gap-12-neg: var(--gap-s-neg);
|
|
9
27
|
} :root {
|
|
28
|
+
} /* @deprecated */ /* @deprecated */ /* @deprecated */ /* @deprecated */ /* @deprecated */ :root {
|
|
29
|
+
} /* сбрасывает синюю подсветку при нажатии */ :root {
|
|
10
30
|
--calendar-width: 344px;
|
|
31
|
+
|
|
32
|
+
/* Кнопки выбора месяцев и годов */
|
|
33
|
+
|
|
34
|
+
/* Шапка */
|
|
35
|
+
|
|
36
|
+
/* День */
|
|
37
|
+
|
|
38
|
+
/* today */
|
|
39
|
+
|
|
40
|
+
/* highlighted */
|
|
41
|
+
|
|
42
|
+
/* holidays */
|
|
43
|
+
|
|
44
|
+
/* range */
|
|
45
|
+
|
|
46
|
+
/* selected */
|
|
47
|
+
|
|
48
|
+
/* disabled */
|
|
49
|
+
|
|
50
|
+
/* marker */
|
|
11
51
|
} :root {
|
|
12
52
|
--calendar-popover-border-radius: var(--border-radius-8);
|
|
13
|
-
} .date-range-
|
|
53
|
+
} .date-range-input__component_h71xs {
|
|
14
54
|
display: inline-block;
|
|
15
55
|
outline: none;
|
|
16
56
|
position: relative;
|
|
17
|
-
} .date-range-
|
|
57
|
+
} .date-range-input__calendarContainer_h71xs {
|
|
18
58
|
display: inline-block;
|
|
19
59
|
box-sizing: border-box;
|
|
20
60
|
border-radius: var(--calendar-popover-border-radius);
|
|
21
61
|
border: 1px solid var(--color-light-neutral-300)
|
|
22
|
-
} @media (max-width: 374px) { .date-range-
|
|
62
|
+
} @media (max-width: 374px) { .date-range-input__calendarContainer_h71xs {
|
|
23
63
|
width: 100%;
|
|
24
64
|
min-width: 288px
|
|
25
65
|
}
|
|
26
|
-
} .date-range-
|
|
66
|
+
} .date-range-input__calendarResponsive_h71xs {
|
|
27
67
|
width: var(--calendar-width);
|
|
28
|
-
} .date-range-
|
|
68
|
+
} .date-range-input__block_h71xs {
|
|
29
69
|
width: 100%;
|
|
30
|
-
} .date-range-
|
|
70
|
+
} .date-range-input__calendarIcon_h71xs {
|
|
31
71
|
margin-right: var(--gap-12-neg);
|
|
32
72
|
height: 100%;
|
|
33
73
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Component";
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var components_dateRangeInput_Component = require('./Component.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.DateRangeInput =
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
9
|
+
exports.DateRangeInput = components_dateRangeInput_Component.DateRangeInput;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ConditionalProps, DateRangeInputProps } from "./components/date-range-input/index";
|
|
4
|
+
type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps & {
|
|
5
|
+
/**
|
|
6
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
7
|
+
* @default 1024
|
|
8
|
+
*/
|
|
9
|
+
breakpoint?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Версия, которая будет использоваться при серверном рендеринге
|
|
12
|
+
*/
|
|
13
|
+
client?: 'desktop' | 'mobile';
|
|
14
|
+
};
|
|
15
|
+
type DateRangeInputMedia = 'desktop' | 'mobile';
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated
|
|
18
|
+
* use UniversalDateInput instead
|
|
19
|
+
*/
|
|
20
|
+
declare const DateRangeInputResponsive: React.ForwardRefExoticComponent<DateRangeInputResponsiveProps & React.RefAttributes<HTMLInputElement>>;
|
|
21
|
+
export { DateRangeInputResponsiveProps, DateRangeInputMedia, DateRangeInputResponsive };
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
7
|
+
var coreComponentsMq = require('@alfalab/core-components-mq/cssm');
|
|
8
|
+
var desktop_Component_desktop = require('./desktop/Component.desktop.js');
|
|
9
|
+
var mobile_Component_mobile = require('./mobile/Component.mobile.js');
|
|
10
10
|
|
|
11
11
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
12
12
|
|
|
@@ -18,9 +18,8 @@ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
|
18
18
|
*/
|
|
19
19
|
var DateRangeInputResponsive = React.forwardRef(function (_a, ref) {
|
|
20
20
|
var breakpoint = _a.breakpoint, client = _a.client, restProps = tslib.__rest(_a, ["breakpoint", "client"]);
|
|
21
|
-
var isDesktop =
|
|
22
|
-
return isDesktop ? (React__default.default.createElement(
|
|
21
|
+
var isDesktop = coreComponentsMq.useIsDesktop(breakpoint, client === 'desktop');
|
|
22
|
+
return isDesktop ? (React__default.default.createElement(desktop_Component_desktop.DateRangeInputDesktop, tslib.__assign({}, restProps, { ref: ref }))) : (React__default.default.createElement(mobile_Component_mobile.DateRangeInputMobile, tslib.__assign({}, restProps, { ref: ref })));
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.DateRangeInputResponsive = DateRangeInputResponsive;
|
|
26
|
-
//# sourceMappingURL=Component.responsive.js.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ChangeEvent, ElementType } from "react";
|
|
4
|
+
import { CalendarDesktopProps } from "@alfalab/core-components-calendar/desktop";
|
|
5
|
+
import { CalendarMobileProps } from "@alfalab/core-components-calendar/mobile";
|
|
6
|
+
import { InputProps } from "@alfalab/core-components-input";
|
|
7
|
+
import { PopoverProps } from "@alfalab/core-components-popover";
|
|
8
|
+
type ConditionalProps = {
|
|
7
9
|
/**
|
|
8
10
|
* Обработчик изменения значения
|
|
9
11
|
*/
|
|
@@ -16,7 +18,7 @@ export declare type ConditionalProps = {
|
|
|
16
18
|
picker?: false;
|
|
17
19
|
onClose?: never;
|
|
18
20
|
};
|
|
19
|
-
|
|
21
|
+
type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
20
22
|
/**
|
|
21
23
|
* Дополнительный класс
|
|
22
24
|
*/
|
|
@@ -111,4 +113,5 @@ export declare type DateRangeInputProps = Omit<InputProps, 'onChange'> & Conditi
|
|
|
111
113
|
*/
|
|
112
114
|
disableUserInput?: boolean;
|
|
113
115
|
};
|
|
114
|
-
|
|
116
|
+
declare const DateRangeInput: React.ForwardRefExoticComponent<DateRangeInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
117
|
+
export { ConditionalProps, DateRangeInputProps, DateRangeInput };
|
|
@@ -9,11 +9,11 @@ var cn = require('classnames');
|
|
|
9
9
|
var dateFnsIsValid = require('date-fns/isValid');
|
|
10
10
|
var startOfMonth = require('date-fns/startOfMonth');
|
|
11
11
|
var shared = require('@alfalab/core-components-calendar/cssm/shared');
|
|
12
|
-
var
|
|
13
|
-
var
|
|
12
|
+
var coreComponentsIconButton = require('@alfalab/core-components-icon-button/cssm');
|
|
13
|
+
var coreComponentsPopover = require('@alfalab/core-components-popover/cssm');
|
|
14
14
|
var hooks = require('@alfalab/hooks');
|
|
15
15
|
var CalendarMIcon = require('@alfalab/icons-glyph/CalendarMIcon');
|
|
16
|
-
var
|
|
16
|
+
var utils_format = require('../../utils/format.js');
|
|
17
17
|
var styles = require('./index.module.css');
|
|
18
18
|
|
|
19
19
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
@@ -46,12 +46,12 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
46
46
|
React.useEffect(function () {
|
|
47
47
|
setValue(function (prevValue) {
|
|
48
48
|
if (selectedFrom && selectedTo) {
|
|
49
|
-
var from =
|
|
50
|
-
var to =
|
|
49
|
+
var from = utils_format.parseTimestampToDate(selectedFrom);
|
|
50
|
+
var to = utils_format.parseTimestampToDate(selectedTo);
|
|
51
51
|
return "".concat(from, " - ").concat(to);
|
|
52
52
|
}
|
|
53
|
-
if (selectedFrom && prevValue.length <
|
|
54
|
-
return
|
|
53
|
+
if (selectedFrom && prevValue.length < utils_format.DATE_FORMAT.length) {
|
|
54
|
+
return utils_format.parseTimestampToDate(selectedFrom);
|
|
55
55
|
}
|
|
56
56
|
return prevValue;
|
|
57
57
|
});
|
|
@@ -68,10 +68,10 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
68
68
|
});
|
|
69
69
|
}, [propValue]);
|
|
70
70
|
function getDates(val) {
|
|
71
|
-
var formattedValue =
|
|
71
|
+
var formattedValue = utils_format.format(val);
|
|
72
72
|
var dateArr = formattedValue.split('-').map(function (v) { return v.trim(); });
|
|
73
|
-
var dateFrom = dateArr[0] ?
|
|
74
|
-
var dateTo = dateArr[1] ?
|
|
73
|
+
var dateFrom = dateArr[0] ? utils_format.parseDateString(dateArr[0]) : undefined;
|
|
74
|
+
var dateTo = dateArr[1] ? utils_format.parseDateString(dateArr[1]) : undefined;
|
|
75
75
|
return { formattedValue: formattedValue, dateFrom: dateFrom, dateTo: dateTo, dateArr: dateArr };
|
|
76
76
|
}
|
|
77
77
|
function setCalendarPeriod(_a) {
|
|
@@ -80,17 +80,17 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
80
80
|
setEnd(dateTo === null || dateTo === void 0 ? void 0 : dateTo.getTime());
|
|
81
81
|
}
|
|
82
82
|
function handlePeriodChange(from, to) {
|
|
83
|
-
if (from && !to && value.length ===
|
|
84
|
-
setValue(
|
|
83
|
+
if (from && !to && value.length === utils_format.DATE_MASK.length) {
|
|
84
|
+
setValue(utils_format.parseTimestampToDate(from));
|
|
85
85
|
}
|
|
86
|
-
else if ((!from && !to && value.length ===
|
|
87
|
-
(from === to && value.length ===
|
|
86
|
+
else if ((!from && !to && value.length === utils_format.DATE_FORMAT.length) ||
|
|
87
|
+
(from === to && value.length === utils_format.DATE_MASK.length)) {
|
|
88
88
|
setValue('');
|
|
89
89
|
}
|
|
90
90
|
var dateFrom = from ? new Date(from) : undefined;
|
|
91
91
|
var dateTo = to ? new Date(to) : undefined;
|
|
92
92
|
var newValue = [from, to].filter(Boolean)
|
|
93
|
-
.map(function (timestamp) { return
|
|
93
|
+
.map(function (timestamp) { return utils_format.parseTimestampToDate(timestamp); })
|
|
94
94
|
.join(' - ');
|
|
95
95
|
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
96
96
|
dateFrom: dateFrom,
|
|
@@ -133,7 +133,7 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
133
133
|
var handleChange = function (event) {
|
|
134
134
|
var _a, _b;
|
|
135
135
|
var newValue = event.target.value;
|
|
136
|
-
if (newValue.length >
|
|
136
|
+
if (newValue.length > utils_format.DATE_MASK.length)
|
|
137
137
|
return;
|
|
138
138
|
// Позволяем вводить только цифры, точки, дефис и пробелы
|
|
139
139
|
if (/[^\d. -]/.test(newValue)) {
|
|
@@ -149,7 +149,7 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
149
149
|
if (!dateFrom && !dateTo) {
|
|
150
150
|
resetPeriod();
|
|
151
151
|
}
|
|
152
|
-
else if (selectedFrom && formattedValue.length <
|
|
152
|
+
else if (selectedFrom && formattedValue.length < utils_format.DATE_FORMAT.length) {
|
|
153
153
|
setStart();
|
|
154
154
|
}
|
|
155
155
|
else if (selectedFrom && selectedTo) {
|
|
@@ -157,20 +157,20 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
157
157
|
}
|
|
158
158
|
else if (dateFrom &&
|
|
159
159
|
dateFnsIsValid__default.default(dateFrom) &&
|
|
160
|
-
((_a = dateArr[0]) === null || _a === void 0 ? void 0 : _a.length) ===
|
|
160
|
+
((_a = dateArr[0]) === null || _a === void 0 ? void 0 : _a.length) === utils_format.DATE_FORMAT.length &&
|
|
161
161
|
dateFrom.getTime() !== selectedFrom) {
|
|
162
162
|
setStart(dateFrom.getTime());
|
|
163
163
|
}
|
|
164
164
|
else if (dateTo &&
|
|
165
165
|
dateFnsIsValid__default.default(dateTo) &&
|
|
166
|
-
((_b = dateArr[1]) === null || _b === void 0 ? void 0 : _b.length) ===
|
|
166
|
+
((_b = dateArr[1]) === null || _b === void 0 ? void 0 : _b.length) === utils_format.DATE_FORMAT.length &&
|
|
167
167
|
dateTo.getTime() !== selectedTo) {
|
|
168
168
|
setEnd(dateTo.getTime());
|
|
169
169
|
}
|
|
170
170
|
setValue(formattedValue);
|
|
171
171
|
onChange === null || onChange === void 0 ? void 0 : onChange({ dateFrom: dateFrom, dateTo: dateTo, value: formattedValue }, event);
|
|
172
|
-
if (
|
|
173
|
-
var valid =
|
|
172
|
+
if (utils_format.isCompleteDateInput(formattedValue)) {
|
|
173
|
+
var valid = utils_format.isValid(formattedValue, dateArr[0], dateArr[1]);
|
|
174
174
|
if (!valid)
|
|
175
175
|
return;
|
|
176
176
|
if (dateFrom && dateTo) {
|
|
@@ -215,12 +215,11 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
215
215
|
_b)), onFocus: inputDisabled ? undefined : handleInputWrapperFocus, onBlur: handleBlur },
|
|
216
216
|
InputComponent ? (React__default.default.createElement(InputComponent, tslib.__assign({ autoComplete: picker ? 'off' : undefined }, restProps, { block: block, ref: mergeRefs__default.default([ref, inputRef]), value: value, onChange: handleChange, disabled: disabled, readOnly: readOnly, className: inputClassName, onClear: handleClear, disableUserInput: disableUserInput, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
|
|
217
217
|
rightAddons,
|
|
218
|
-
picker && (React__default.default.createElement(
|
|
218
|
+
picker && (React__default.default.createElement(coreComponentsIconButton.IconButton, { className: styles__default.default.calendarIcon, ref: iconRef, onClick: inputDisabled ? undefined : handleIconButtonClick, icon: CalendarMIcon.CalendarMIcon, size: 's' }))) }))) : null,
|
|
219
219
|
picker &&
|
|
220
|
-
(view === 'desktop' ? (React__default.default.createElement(
|
|
220
|
+
(view === 'desktop' ? (React__default.default.createElement(coreComponentsPopover.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputRef.current, popperClassName: cn__default.default(styles__default.default.calendarContainer, (_c = {},
|
|
221
221
|
_c[styles__default.default.calendarResponsive] = calendarResponsive,
|
|
222
222
|
_c)), className: popoverClassName, position: popoverPosition, offset: [0, 8], withTransition: false, preventFlip: preventFlip, zIndex: zIndexPopover }, renderCalendar())) : (renderCalendar()))));
|
|
223
223
|
});
|
|
224
224
|
|
|
225
225
|
exports.DateRangeInput = DateRangeInput;
|
|
226
|
-
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Component";
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var components_dateRangeInput_Component = require('./Component.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.DateRangeInput =
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
9
|
+
exports.DateRangeInput = components_dateRangeInput_Component.DateRangeInput;
|