@alfalab/core-components-date-range-input 3.5.28 → 49.0.0-snapshot-fbb690e
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 +30 -6
- package/Component.responsive.js +4 -3
- package/Component.responsive.js.map +1 -0
- package/components/date-range-input/Component.d.ts +208 -11
- package/components/date-range-input/Component.js +26 -27
- package/components/date-range-input/Component.js.map +1 -0
- package/components/date-range-input/index.css +11 -51
- package/components/date-range-input/index.d.ts +1 -1
- package/components/date-range-input/index.js +3 -2
- package/components/date-range-input/index.js.map +1 -0
- package/components/date-range-input/index.module.css.js +8 -0
- package/components/date-range-input/index.module.css.js.map +1 -0
- package/cssm/Component.responsive.d.ts +30 -6
- package/cssm/Component.responsive.js +6 -5
- package/cssm/Component.responsive.js.map +1 -0
- package/cssm/components/date-range-input/Component.d.ts +208 -11
- package/cssm/components/date-range-input/Component.js +24 -23
- package/cssm/components/date-range-input/Component.js.map +1 -0
- package/cssm/components/date-range-input/index.d.ts +1 -1
- package/cssm/components/date-range-input/index.js +3 -2
- package/cssm/components/date-range-input/index.js.map +1 -0
- package/cssm/components/date-range-input/index.module.css +5 -44
- package/cssm/desktop/Component.desktop.d.ts +9 -5
- package/cssm/desktop/Component.desktop.js +5 -4
- package/cssm/desktop/Component.desktop.js.map +1 -0
- package/cssm/desktop/index.d.ts +1 -2
- package/cssm/desktop/index.js +3 -2
- package/cssm/desktop/index.js.map +1 -0
- package/cssm/index.d.ts +2 -3
- package/cssm/index.js +1 -0
- package/cssm/index.js.map +1 -0
- package/cssm/mobile/Component.mobile.d.ts +9 -5
- package/cssm/mobile/Component.mobile.js +5 -4
- package/cssm/mobile/Component.mobile.js.map +1 -0
- package/cssm/mobile/index.d.ts +1 -2
- package/cssm/mobile/index.js +3 -2
- package/cssm/mobile/index.js.map +1 -0
- package/cssm/utils/format.d.ts +7 -8
- package/cssm/utils/format.js +1 -0
- package/cssm/utils/format.js.map +1 -0
- package/cssm/utils/index.d.ts +1 -1
- package/cssm/utils/index.js +9 -8
- package/cssm/utils/index.js.map +1 -0
- package/desktop/Component.desktop.d.ts +9 -5
- package/desktop/Component.desktop.js +5 -4
- package/desktop/Component.desktop.js.map +1 -0
- package/desktop/index.d.ts +1 -2
- package/desktop/index.js +3 -2
- package/desktop/index.js.map +1 -0
- package/esm/Component.responsive.d.ts +30 -6
- package/esm/Component.responsive.js +1 -0
- package/esm/Component.responsive.js.map +1 -0
- package/esm/components/date-range-input/Component.d.ts +208 -11
- package/esm/components/date-range-input/Component.js +2 -3
- package/esm/components/date-range-input/Component.js.map +1 -0
- package/esm/components/date-range-input/index.css +11 -51
- package/esm/components/date-range-input/index.d.ts +1 -1
- package/esm/components/date-range-input/index.js +1 -0
- package/esm/components/date-range-input/index.js.map +1 -0
- package/esm/components/date-range-input/index.module.css.js +6 -0
- package/esm/components/date-range-input/index.module.css.js.map +1 -0
- package/esm/desktop/Component.desktop.d.ts +9 -5
- package/esm/desktop/Component.desktop.js +1 -0
- package/esm/desktop/Component.desktop.js.map +1 -0
- package/esm/desktop/index.d.ts +1 -2
- package/esm/desktop/index.js +1 -0
- package/esm/desktop/index.js.map +1 -0
- package/esm/index.d.ts +2 -3
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- package/esm/mobile/Component.mobile.d.ts +9 -5
- package/esm/mobile/Component.mobile.js +1 -0
- package/esm/mobile/Component.mobile.js.map +1 -0
- package/esm/mobile/index.d.ts +1 -2
- package/esm/mobile/index.js +1 -0
- package/esm/mobile/index.js.map +1 -0
- package/esm/utils/format.d.ts +7 -8
- package/esm/utils/format.js +1 -0
- package/esm/utils/format.js.map +1 -0
- package/esm/utils/index.d.ts +1 -1
- package/esm/utils/index.js +1 -0
- package/esm/utils/index.js.map +1 -0
- package/index.d.ts +2 -3
- package/index.js +1 -0
- package/index.js.map +1 -0
- package/mobile/Component.mobile.d.ts +9 -5
- package/mobile/Component.mobile.js +5 -4
- package/mobile/Component.mobile.js.map +1 -0
- package/mobile/index.d.ts +1 -2
- package/mobile/index.js +3 -2
- package/mobile/index.js.map +1 -0
- package/modern/Component.responsive.d.ts +30 -6
- package/modern/Component.responsive.js +1 -0
- package/modern/Component.responsive.js.map +1 -0
- package/modern/components/date-range-input/Component.d.ts +208 -11
- package/modern/components/date-range-input/Component.js +2 -3
- package/modern/components/date-range-input/Component.js.map +1 -0
- package/modern/components/date-range-input/index.css +11 -51
- package/modern/components/date-range-input/index.d.ts +1 -1
- package/modern/components/date-range-input/index.js +1 -0
- package/modern/components/date-range-input/index.js.map +1 -0
- package/modern/components/date-range-input/index.module.css.js +6 -0
- package/modern/components/date-range-input/index.module.css.js.map +1 -0
- package/modern/desktop/Component.desktop.d.ts +9 -5
- package/modern/desktop/Component.desktop.js +1 -0
- package/modern/desktop/Component.desktop.js.map +1 -0
- package/modern/desktop/index.d.ts +1 -2
- package/modern/desktop/index.js +1 -0
- package/modern/desktop/index.js.map +1 -0
- package/modern/index.d.ts +2 -3
- package/modern/index.js +1 -0
- package/modern/index.js.map +1 -0
- package/modern/mobile/Component.mobile.d.ts +9 -5
- package/modern/mobile/Component.mobile.js +1 -0
- package/modern/mobile/Component.mobile.js.map +1 -0
- package/modern/mobile/index.d.ts +1 -2
- package/modern/mobile/index.js +1 -0
- package/modern/mobile/index.js.map +1 -0
- package/modern/utils/format.d.ts +7 -8
- package/modern/utils/format.js +1 -0
- package/modern/utils/format.js.map +1 -0
- package/modern/utils/index.d.ts +1 -1
- package/modern/utils/index.js +1 -0
- package/modern/utils/index.js.map +1 -0
- package/moderncssm/Component.responsive.d.ts +30 -6
- package/moderncssm/Component.responsive.js +1 -0
- package/moderncssm/Component.responsive.js.map +1 -0
- package/moderncssm/components/date-range-input/Component.d.ts +208 -11
- package/moderncssm/components/date-range-input/Component.js +1 -0
- package/moderncssm/components/date-range-input/Component.js.map +1 -0
- package/moderncssm/components/date-range-input/index.d.ts +1 -1
- package/moderncssm/components/date-range-input/index.js +1 -0
- package/moderncssm/components/date-range-input/index.js.map +1 -0
- package/moderncssm/components/date-range-input/index.module.css +0 -21
- package/moderncssm/desktop/Component.desktop.d.ts +9 -5
- package/moderncssm/desktop/Component.desktop.js +1 -0
- package/moderncssm/desktop/Component.desktop.js.map +1 -0
- package/moderncssm/desktop/index.d.ts +1 -2
- package/moderncssm/desktop/index.js +1 -0
- package/moderncssm/desktop/index.js.map +1 -0
- package/moderncssm/index.d.ts +2 -3
- package/moderncssm/index.js +1 -0
- package/moderncssm/index.js.map +1 -0
- package/moderncssm/mobile/Component.mobile.d.ts +9 -5
- package/moderncssm/mobile/Component.mobile.js +1 -0
- package/moderncssm/mobile/Component.mobile.js.map +1 -0
- package/moderncssm/mobile/index.d.ts +1 -2
- package/moderncssm/mobile/index.js +1 -0
- package/moderncssm/mobile/index.js.map +1 -0
- package/moderncssm/utils/format.d.ts +7 -8
- package/moderncssm/utils/format.js +1 -0
- package/moderncssm/utils/format.js.map +1 -0
- package/moderncssm/utils/index.d.ts +1 -1
- package/moderncssm/utils/index.js +1 -0
- package/moderncssm/utils/index.js.map +1 -0
- package/package.json +9 -10
- package/utils/format.d.ts +7 -8
- package/utils/format.js +1 -0
- package/utils/format.js.map +1 -0
- package/utils/index.d.ts +1 -1
- package/utils/index.js +9 -8
- package/utils/index.js.map +1 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import { ConditionalProps, DateRangeInputProps } from
|
|
4
|
-
type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps & {
|
|
2
|
+
import { ConditionalProps, DateRangeInputProps } from './components/date-range-input';
|
|
3
|
+
export declare type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps & {
|
|
5
4
|
/**
|
|
6
5
|
* Контрольная точка, с нее начинается desktop версия
|
|
7
6
|
* @default 1024
|
|
@@ -12,10 +11,35 @@ type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker'
|
|
|
12
11
|
*/
|
|
13
12
|
client?: 'desktop' | 'mobile';
|
|
14
13
|
};
|
|
15
|
-
type DateRangeInputMedia = 'desktop' | 'mobile';
|
|
14
|
+
export declare type DateRangeInputMedia = 'desktop' | 'mobile';
|
|
16
15
|
/**
|
|
17
16
|
* @deprecated
|
|
18
17
|
* use UniversalDateInput instead
|
|
19
18
|
*/
|
|
20
|
-
declare const DateRangeInputResponsive: React.ForwardRefExoticComponent<
|
|
21
|
-
|
|
19
|
+
export declare const DateRangeInputResponsive: React.ForwardRefExoticComponent<(Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
20
|
+
picker: true;
|
|
21
|
+
onClose?: (() => void) | undefined;
|
|
22
|
+
} & {
|
|
23
|
+
/**
|
|
24
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
25
|
+
* @default 1024
|
|
26
|
+
*/
|
|
27
|
+
breakpoint?: number | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Версия, которая будет использоваться при серверном рендеринге
|
|
30
|
+
*/
|
|
31
|
+
client?: "desktop" | "mobile" | undefined;
|
|
32
|
+
}, "ref"> | Omit<Omit<DateRangeInputProps, "view" | "picker" | "onClose" | "InputComponent"> & {
|
|
33
|
+
picker?: false | undefined;
|
|
34
|
+
onClose?: undefined;
|
|
35
|
+
} & {
|
|
36
|
+
/**
|
|
37
|
+
* Контрольная точка, с нее начинается desktop версия
|
|
38
|
+
* @default 1024
|
|
39
|
+
*/
|
|
40
|
+
breakpoint?: number | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Версия, которая будет использоваться при серверном рендеринге
|
|
43
|
+
*/
|
|
44
|
+
client?: "desktop" | "mobile" | undefined;
|
|
45
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
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 Component_desktop = require('./desktop/Component.desktop.js');
|
|
9
|
+
var 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,7 +19,8 @@ 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(Component_desktop.DateRangeInputDesktop, tslib.__assign({}, restProps, { ref: ref }))) : (React__default.default.createElement(Component_mobile.DateRangeInputMobile, tslib.__assign({}, restProps, { ref: ref })));
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.DateRangeInputResponsive = DateRangeInputResponsive;
|
|
26
|
+
//# sourceMappingURL=Component.responsive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.responsive.js","sources":["src/Component.responsive.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { InputProps } from '@alfalab/core-components-input';\nimport { useIsDesktop } from '@alfalab/core-components-mq';\n\nimport { ConditionalProps, DateRangeInputProps } from './components/date-range-input';\nimport { DateRangeInputDesktop } from './desktop';\nimport { DateRangeInputMobile } from './mobile';\n\nexport type DateRangeInputResponsiveProps = Omit<\n DateRangeInputProps,\n 'view' | 'picker' | 'onClose' | 'InputComponent'\n> &\n ConditionalProps & {\n /**\n * Контрольная точка, с нее начинается desktop версия\n * @default 1024\n */\n breakpoint?: number;\n\n /**\n * Версия, которая будет использоваться при серверном рендеринге\n */\n client?: 'desktop' | 'mobile';\n };\n\nexport type DateRangeInputMedia = 'desktop' | 'mobile';\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateRangeInputResponsive = forwardRef<HTMLInputElement, DateRangeInputResponsiveProps>(\n ({ breakpoint, client, ...restProps }, ref) => {\n const isDesktop = useIsDesktop(breakpoint, client === 'desktop');\n\n return isDesktop ? (\n <DateRangeInputDesktop {...restProps} ref={ref} />\n ) : (\n <DateRangeInputMobile {...restProps} ref={ref} />\n );\n },\n);\n"],"names":["forwardRef","__rest","useIsDesktop","React","DateRangeInputDesktop","__assign","DateRangeInputMobile"],"mappings":";;;;;;;;;;;;;;AA6BA;;;AAGG;IACU,wBAAwB,GAAGA,gBAAU,CAC9C,UAAC,EAAoC,EAAE,GAAG,EAAA;IAAvC,IAAA,UAAU,gBAAA,EAAE,MAAM,YAAA,EAAK,SAAS,GAAlCC,YAAA,CAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAoC,CAAF;IAC/B,IAAM,SAAS,GAAGC,6BAAY,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC;AAEhE,IAAA,OAAO,SAAS,IACZC,sBAAA,CAAA,aAAA,CAACC,uCAAqB,EAAAC,cAAA,CAAA,EAAA,EAAK,SAAS,EAAA,EAAE,GAAG,EAAE,GAAG,EAAA,CAAA,CAAI,KAElDF,sBAAA,CAAA,aAAA,CAACG,qCAAoB,EAAAD,cAAA,CAAA,EAAA,EAAK,SAAS,EAAA,EAAE,GAAG,EAAE,GAAG,EAAA,CAAA,CAAI,CACpD;AACL,CAAC;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { PopoverProps } from "@alfalab/core-components-popover";
|
|
8
|
-
type ConditionalProps = {
|
|
1
|
+
import React, { ChangeEvent, ElementType } from 'react';
|
|
2
|
+
import type { CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';
|
|
3
|
+
import type { CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';
|
|
4
|
+
import { InputProps } from '@alfalab/core-components-input';
|
|
5
|
+
import { PopoverProps } from '@alfalab/core-components-popover';
|
|
6
|
+
export declare type ConditionalProps = {
|
|
9
7
|
/**
|
|
10
8
|
* Обработчик изменения значения
|
|
11
9
|
*/
|
|
@@ -18,7 +16,7 @@ type ConditionalProps = {
|
|
|
18
16
|
picker?: false;
|
|
19
17
|
onClose?: never;
|
|
20
18
|
};
|
|
21
|
-
type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
19
|
+
export declare type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
22
20
|
/**
|
|
23
21
|
* Дополнительный класс
|
|
24
22
|
*/
|
|
@@ -113,5 +111,204 @@ type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
|
|
|
113
111
|
*/
|
|
114
112
|
disableUserInput?: boolean;
|
|
115
113
|
};
|
|
116
|
-
declare const DateRangeInput: React.ForwardRefExoticComponent<
|
|
117
|
-
|
|
114
|
+
export declare const DateRangeInput: React.ForwardRefExoticComponent<(Omit<Omit<InputProps, "onChange"> & {
|
|
115
|
+
/**
|
|
116
|
+
* Обработчик изменения значения
|
|
117
|
+
*/
|
|
118
|
+
picker: true;
|
|
119
|
+
/**
|
|
120
|
+
* Обработчик закрытия календаря
|
|
121
|
+
*/
|
|
122
|
+
onClose?: (() => void) | undefined;
|
|
123
|
+
} & {
|
|
124
|
+
/**
|
|
125
|
+
* Дополнительный класс
|
|
126
|
+
*/
|
|
127
|
+
className?: string | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Дополнительный класс для инпута
|
|
130
|
+
*/
|
|
131
|
+
inputClassName?: string | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Дополнительный класс для поповера
|
|
134
|
+
*/
|
|
135
|
+
popoverClassName?: string | undefined;
|
|
136
|
+
/**
|
|
137
|
+
* Обработчик изменения значения
|
|
138
|
+
*/
|
|
139
|
+
onChange?: ((payload: {
|
|
140
|
+
dateFrom?: Date;
|
|
141
|
+
dateTo?: Date;
|
|
142
|
+
value: string;
|
|
143
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* Обработчик окончания ввода
|
|
146
|
+
*/
|
|
147
|
+
onComplete?: ((payload: {
|
|
148
|
+
dateFrom: Date;
|
|
149
|
+
dateTo: Date;
|
|
150
|
+
value: string;
|
|
151
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
152
|
+
/**
|
|
153
|
+
* Компонент календаря
|
|
154
|
+
*/
|
|
155
|
+
Calendar?: React.ElementType<any> | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Доп. пропсы для календаря
|
|
158
|
+
*/
|
|
159
|
+
calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
|
|
160
|
+
/**
|
|
161
|
+
* Месяц в календаре по умолчанию (timestamp)
|
|
162
|
+
*/
|
|
163
|
+
defaultMonth?: number | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* Минимальная дата, доступная для выбора (timestamp)
|
|
166
|
+
*/
|
|
167
|
+
minDate?: number | undefined;
|
|
168
|
+
/**
|
|
169
|
+
* Максимальная дата, доступная для выбора (timestamp)
|
|
170
|
+
*/
|
|
171
|
+
maxDate?: number | undefined;
|
|
172
|
+
/**
|
|
173
|
+
* Список событий
|
|
174
|
+
*/
|
|
175
|
+
events?: (number | Date)[] | undefined;
|
|
176
|
+
/**
|
|
177
|
+
* Список выходных
|
|
178
|
+
*/
|
|
179
|
+
offDays?: (number | Date)[] | undefined;
|
|
180
|
+
/**
|
|
181
|
+
* Состояние открытия по умолчанию
|
|
182
|
+
*/
|
|
183
|
+
defaultOpen?: boolean | undefined;
|
|
184
|
+
/**
|
|
185
|
+
* Позиционирование поповера с календарем
|
|
186
|
+
*/
|
|
187
|
+
popoverPosition?: any;
|
|
188
|
+
/**
|
|
189
|
+
* z-index Popover
|
|
190
|
+
*/
|
|
191
|
+
zIndexPopover?: any;
|
|
192
|
+
/**
|
|
193
|
+
* Запрещает поповеру менять свою позицию.
|
|
194
|
+
* Например, если места снизу недостаточно, то он все равно будет показан снизу
|
|
195
|
+
*/
|
|
196
|
+
preventFlip?: boolean | undefined;
|
|
197
|
+
/**
|
|
198
|
+
* Календарь будет принимать ширину инпута
|
|
199
|
+
*/
|
|
200
|
+
useAnchorWidth?: boolean | undefined;
|
|
201
|
+
/**
|
|
202
|
+
* Растягивает компонент на ширину контейнера
|
|
203
|
+
*/
|
|
204
|
+
block?: boolean | undefined;
|
|
205
|
+
/**
|
|
206
|
+
* Отображение компонента в мобильном или десктопном виде
|
|
207
|
+
*/
|
|
208
|
+
view?: "desktop" | "mobile" | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* Компонент инпута
|
|
211
|
+
*/
|
|
212
|
+
InputComponent?: React.ElementType<any> | undefined;
|
|
213
|
+
/**
|
|
214
|
+
* Запретить ввод с клавиатуры
|
|
215
|
+
*/
|
|
216
|
+
disableUserInput?: boolean | undefined;
|
|
217
|
+
}, "ref"> | Omit<Omit<InputProps, "onChange"> & {
|
|
218
|
+
picker?: false | undefined;
|
|
219
|
+
onClose?: undefined;
|
|
220
|
+
} & {
|
|
221
|
+
/**
|
|
222
|
+
* Дополнительный класс
|
|
223
|
+
*/
|
|
224
|
+
className?: string | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* Дополнительный класс для инпута
|
|
227
|
+
*/
|
|
228
|
+
inputClassName?: string | undefined;
|
|
229
|
+
/**
|
|
230
|
+
* Дополнительный класс для поповера
|
|
231
|
+
*/
|
|
232
|
+
popoverClassName?: string | undefined;
|
|
233
|
+
/**
|
|
234
|
+
* Обработчик изменения значения
|
|
235
|
+
*/
|
|
236
|
+
onChange?: ((payload: {
|
|
237
|
+
dateFrom?: Date;
|
|
238
|
+
dateTo?: Date;
|
|
239
|
+
value: string;
|
|
240
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
241
|
+
/**
|
|
242
|
+
* Обработчик окончания ввода
|
|
243
|
+
*/
|
|
244
|
+
onComplete?: ((payload: {
|
|
245
|
+
dateFrom: Date;
|
|
246
|
+
dateTo: Date;
|
|
247
|
+
value: string;
|
|
248
|
+
}, event?: ChangeEvent<HTMLInputElement>) => void) | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* Компонент календаря
|
|
251
|
+
*/
|
|
252
|
+
Calendar?: React.ElementType<any> | undefined;
|
|
253
|
+
/**
|
|
254
|
+
* Доп. пропсы для календаря
|
|
255
|
+
*/
|
|
256
|
+
calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
|
|
257
|
+
/**
|
|
258
|
+
* Месяц в календаре по умолчанию (timestamp)
|
|
259
|
+
*/
|
|
260
|
+
defaultMonth?: number | undefined;
|
|
261
|
+
/**
|
|
262
|
+
* Минимальная дата, доступная для выбора (timestamp)
|
|
263
|
+
*/
|
|
264
|
+
minDate?: number | undefined;
|
|
265
|
+
/**
|
|
266
|
+
* Максимальная дата, доступная для выбора (timestamp)
|
|
267
|
+
*/
|
|
268
|
+
maxDate?: number | undefined;
|
|
269
|
+
/**
|
|
270
|
+
* Список событий
|
|
271
|
+
*/
|
|
272
|
+
events?: (number | Date)[] | undefined;
|
|
273
|
+
/**
|
|
274
|
+
* Список выходных
|
|
275
|
+
*/
|
|
276
|
+
offDays?: (number | Date)[] | undefined;
|
|
277
|
+
/**
|
|
278
|
+
* Состояние открытия по умолчанию
|
|
279
|
+
*/
|
|
280
|
+
defaultOpen?: boolean | undefined;
|
|
281
|
+
/**
|
|
282
|
+
* Позиционирование поповера с календарем
|
|
283
|
+
*/
|
|
284
|
+
popoverPosition?: any;
|
|
285
|
+
/**
|
|
286
|
+
* z-index Popover
|
|
287
|
+
*/
|
|
288
|
+
zIndexPopover?: any;
|
|
289
|
+
/**
|
|
290
|
+
* Запрещает поповеру менять свою позицию.
|
|
291
|
+
* Например, если места снизу недостаточно, то он все равно будет показан снизу
|
|
292
|
+
*/
|
|
293
|
+
preventFlip?: boolean | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* Календарь будет принимать ширину инпута
|
|
296
|
+
*/
|
|
297
|
+
useAnchorWidth?: boolean | undefined;
|
|
298
|
+
/**
|
|
299
|
+
* Растягивает компонент на ширину контейнера
|
|
300
|
+
*/
|
|
301
|
+
block?: boolean | undefined;
|
|
302
|
+
/**
|
|
303
|
+
* Отображение компонента в мобильном или десктопном виде
|
|
304
|
+
*/
|
|
305
|
+
view?: "desktop" | "mobile" | undefined;
|
|
306
|
+
/**
|
|
307
|
+
* Компонент инпута
|
|
308
|
+
*/
|
|
309
|
+
InputComponent?: React.ElementType<any> | undefined;
|
|
310
|
+
/**
|
|
311
|
+
* Запретить ввод с клавиатуры
|
|
312
|
+
*/
|
|
313
|
+
disableUserInput?: boolean | undefined;
|
|
314
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -13,7 +13,8 @@ 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
|
|
16
|
+
var format = require('../../utils/format.js');
|
|
17
|
+
var index_module = require('./index.module.css.js');
|
|
17
18
|
|
|
18
19
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
19
20
|
|
|
@@ -23,9 +24,6 @@ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
|
|
|
23
24
|
var dateFnsIsValid__default = /*#__PURE__*/_interopDefaultCompat(dateFnsIsValid);
|
|
24
25
|
var startOfMonth__default = /*#__PURE__*/_interopDefaultCompat(startOfMonth);
|
|
25
26
|
|
|
26
|
-
var styles = {"component":"date-range-input__component_blkf9","calendarContainer":"date-range-input__calendarContainer_blkf9","calendarResponsive":"date-range-input__calendarResponsive_blkf9","block":"date-range-input__block_blkf9","calendarIcon":"date-range-input__calendarIcon_blkf9"};
|
|
27
|
-
require('./index.css')
|
|
28
|
-
|
|
29
27
|
var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
30
28
|
var _b, _c;
|
|
31
29
|
var _d;
|
|
@@ -47,12 +45,12 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
47
45
|
React.useEffect(function () {
|
|
48
46
|
setValue(function (prevValue) {
|
|
49
47
|
if (selectedFrom && selectedTo) {
|
|
50
|
-
var from =
|
|
51
|
-
var to =
|
|
48
|
+
var from = format.parseTimestampToDate(selectedFrom);
|
|
49
|
+
var to = format.parseTimestampToDate(selectedTo);
|
|
52
50
|
return "".concat(from, " - ").concat(to);
|
|
53
51
|
}
|
|
54
|
-
if (selectedFrom && prevValue.length <
|
|
55
|
-
return
|
|
52
|
+
if (selectedFrom && prevValue.length < format.DATE_FORMAT.length) {
|
|
53
|
+
return format.parseTimestampToDate(selectedFrom);
|
|
56
54
|
}
|
|
57
55
|
return prevValue;
|
|
58
56
|
});
|
|
@@ -69,10 +67,10 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
69
67
|
});
|
|
70
68
|
}, [propValue]);
|
|
71
69
|
function getDates(val) {
|
|
72
|
-
var formattedValue =
|
|
70
|
+
var formattedValue = format.format(val);
|
|
73
71
|
var dateArr = formattedValue.split('-').map(function (v) { return v.trim(); });
|
|
74
|
-
var dateFrom = dateArr[0] ?
|
|
75
|
-
var dateTo = dateArr[1] ?
|
|
72
|
+
var dateFrom = dateArr[0] ? format.parseDateString(dateArr[0]) : undefined;
|
|
73
|
+
var dateTo = dateArr[1] ? format.parseDateString(dateArr[1]) : undefined;
|
|
76
74
|
return { formattedValue: formattedValue, dateFrom: dateFrom, dateTo: dateTo, dateArr: dateArr };
|
|
77
75
|
}
|
|
78
76
|
function setCalendarPeriod(_a) {
|
|
@@ -81,17 +79,17 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
81
79
|
setEnd(dateTo === null || dateTo === void 0 ? void 0 : dateTo.getTime());
|
|
82
80
|
}
|
|
83
81
|
function handlePeriodChange(from, to) {
|
|
84
|
-
if (from && !to && value.length ===
|
|
85
|
-
setValue(
|
|
82
|
+
if (from && !to && value.length === format.DATE_MASK.length) {
|
|
83
|
+
setValue(format.parseTimestampToDate(from));
|
|
86
84
|
}
|
|
87
|
-
else if ((!from && !to && value.length ===
|
|
88
|
-
(from === to && value.length ===
|
|
85
|
+
else if ((!from && !to && value.length === format.DATE_FORMAT.length) ||
|
|
86
|
+
(from === to && value.length === format.DATE_MASK.length)) {
|
|
89
87
|
setValue('');
|
|
90
88
|
}
|
|
91
89
|
var dateFrom = from ? new Date(from) : undefined;
|
|
92
90
|
var dateTo = to ? new Date(to) : undefined;
|
|
93
91
|
var newValue = [from, to].filter(Boolean)
|
|
94
|
-
.map(function (timestamp) { return
|
|
92
|
+
.map(function (timestamp) { return format.parseTimestampToDate(timestamp); })
|
|
95
93
|
.join(' - ');
|
|
96
94
|
onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
97
95
|
dateFrom: dateFrom,
|
|
@@ -134,7 +132,7 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
134
132
|
var handleChange = function (event) {
|
|
135
133
|
var _a, _b;
|
|
136
134
|
var newValue = event.target.value;
|
|
137
|
-
if (newValue.length >
|
|
135
|
+
if (newValue.length > format.DATE_MASK.length)
|
|
138
136
|
return;
|
|
139
137
|
// Позволяем вводить только цифры, точки, дефис и пробелы
|
|
140
138
|
if (/[^\d. -]/.test(newValue)) {
|
|
@@ -150,7 +148,7 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
150
148
|
if (!dateFrom && !dateTo) {
|
|
151
149
|
resetPeriod();
|
|
152
150
|
}
|
|
153
|
-
else if (selectedFrom && formattedValue.length <
|
|
151
|
+
else if (selectedFrom && formattedValue.length < format.DATE_FORMAT.length) {
|
|
154
152
|
setStart();
|
|
155
153
|
}
|
|
156
154
|
else if (selectedFrom && selectedTo) {
|
|
@@ -158,20 +156,20 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
158
156
|
}
|
|
159
157
|
else if (dateFrom &&
|
|
160
158
|
dateFnsIsValid__default.default(dateFrom) &&
|
|
161
|
-
((_a = dateArr[0]) === null || _a === void 0 ? void 0 : _a.length) ===
|
|
159
|
+
((_a = dateArr[0]) === null || _a === void 0 ? void 0 : _a.length) === format.DATE_FORMAT.length &&
|
|
162
160
|
dateFrom.getTime() !== selectedFrom) {
|
|
163
161
|
setStart(dateFrom.getTime());
|
|
164
162
|
}
|
|
165
163
|
else if (dateTo &&
|
|
166
164
|
dateFnsIsValid__default.default(dateTo) &&
|
|
167
|
-
((_b = dateArr[1]) === null || _b === void 0 ? void 0 : _b.length) ===
|
|
165
|
+
((_b = dateArr[1]) === null || _b === void 0 ? void 0 : _b.length) === format.DATE_FORMAT.length &&
|
|
168
166
|
dateTo.getTime() !== selectedTo) {
|
|
169
167
|
setEnd(dateTo.getTime());
|
|
170
168
|
}
|
|
171
169
|
setValue(formattedValue);
|
|
172
170
|
onChange === null || onChange === void 0 ? void 0 : onChange({ dateFrom: dateFrom, dateTo: dateTo, value: formattedValue }, event);
|
|
173
|
-
if (
|
|
174
|
-
var valid =
|
|
171
|
+
if (format.isCompleteDateInput(formattedValue)) {
|
|
172
|
+
var valid = format.isValid(formattedValue, dateArr[0], dateArr[1]);
|
|
175
173
|
if (!valid)
|
|
176
174
|
return;
|
|
177
175
|
if (dateFrom && dateTo) {
|
|
@@ -211,16 +209,17 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
|
|
|
211
209
|
React__default.default.createElement("div", { onMouseDown: handleCalendarWrapperMouseDown },
|
|
212
210
|
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;
|
|
213
211
|
};
|
|
214
|
-
return (React__default.default.createElement("div", { className: cn__default.default(
|
|
215
|
-
_b[
|
|
212
|
+
return (React__default.default.createElement("div", { className: cn__default.default(index_module.component, className, (_b = {},
|
|
213
|
+
_b[index_module.block] = block,
|
|
216
214
|
_b)), onFocus: inputDisabled ? undefined : handleInputWrapperFocus, onBlur: handleBlur },
|
|
217
215
|
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,
|
|
218
216
|
rightAddons,
|
|
219
|
-
picker && (React__default.default.createElement(coreComponentsIconButton.IconButton, { className:
|
|
217
|
+
picker && (React__default.default.createElement(coreComponentsIconButton.IconButton, { className: index_module.calendarIcon, ref: iconRef, onClick: inputDisabled ? undefined : handleIconButtonClick, icon: CalendarMIcon.CalendarMIcon, size: 's' }))) }))) : null,
|
|
220
218
|
picker &&
|
|
221
|
-
(view === 'desktop' ? (React__default.default.createElement(coreComponentsPopover.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputRef.current, popperClassName: cn__default.default(
|
|
222
|
-
_c[
|
|
219
|
+
(view === 'desktop' ? (React__default.default.createElement(coreComponentsPopover.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputRef.current, popperClassName: cn__default.default(index_module.calendarContainer, (_c = {},
|
|
220
|
+
_c[index_module.calendarResponsive] = calendarResponsive,
|
|
223
221
|
_c)), className: popoverClassName, position: popoverPosition, offset: [0, 8], withTransition: false, preventFlip: preventFlip, zIndex: zIndexPopover }, renderCalendar())) : (renderCalendar()))));
|
|
224
222
|
});
|
|
225
223
|
|
|
226
224
|
exports.DateRangeInput = DateRangeInput;
|
|
225
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../src/components/date-range-input/Component.tsx"],"sourcesContent":["/* eslint-disable no-useless-escape, jsx-a11y/click-events-have-key-events */\nimport React, {\n ChangeEvent,\n ElementType,\n FocusEvent,\n MouseEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport dateFnsIsValid from 'date-fns/isValid';\nimport startOfMonth from 'date-fns/startOfMonth';\n\nimport type { CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';\nimport type { CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';\nimport { usePeriod } from '@alfalab/core-components-calendar/shared';\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { InputProps } from '@alfalab/core-components-input';\nimport { Popover, PopoverProps } from '@alfalab/core-components-popover';\nimport { useDidUpdateEffect } from '@alfalab/hooks';\nimport { CalendarMIcon } from '@alfalab/icons-glyph/CalendarMIcon';\n\nimport {\n DATE_FORMAT,\n DATE_MASK,\n format,\n isCompleteDateInput,\n isValid,\n parseDateString,\n parseTimestampToDate,\n} from '../../utils';\n\nimport styles from './index.module.css';\n\nexport type ConditionalProps =\n | {\n /**\n * Обработчик изменения значения\n */\n picker: true;\n\n /**\n * Обработчик закрытия календаря\n */\n onClose?: () => void;\n }\n | { picker?: false; onClose?: never };\n\nexport type DateRangeInputProps = Omit<InputProps, 'onChange'> &\n ConditionalProps & {\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Дополнительный класс для инпута\n */\n inputClassName?: string;\n\n /**\n * Дополнительный класс для поповера\n */\n popoverClassName?: string;\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n payload: { dateFrom?: Date; dateTo?: Date; value: string },\n event?: ChangeEvent<HTMLInputElement>,\n ) => void;\n\n /**\n * Обработчик окончания ввода\n */\n onComplete?: (\n payload: { dateFrom: Date; dateTo: Date; value: string },\n event?: ChangeEvent<HTMLInputElement>,\n ) => void;\n\n /**\n * Компонент календаря\n */\n Calendar?: ElementType;\n\n /**\n * Доп. пропсы для календаря\n */\n calendarProps?:\n | (CalendarDesktopProps & Record<string, unknown>)\n | (CalendarMobileProps & Record<string, unknown>);\n\n /**\n * Месяц в календаре по умолчанию (timestamp)\n */\n defaultMonth?: number;\n\n /**\n * Минимальная дата, доступная для выбора (timestamp)\n */\n minDate?: number;\n\n /**\n * Максимальная дата, доступная для выбора (timestamp)\n */\n maxDate?: number;\n\n /**\n * Список событий\n */\n events?: Array<Date | number>;\n\n /**\n * Список выходных\n */\n offDays?: Array<Date | number>;\n\n /**\n * Состояние открытия по умолчанию\n */\n defaultOpen?: boolean;\n\n /**\n * Позиционирование поповера с календарем\n */\n popoverPosition?: PopoverProps['position'];\n\n /**\n * z-index Popover\n */\n zIndexPopover?: PopoverProps['zIndex'];\n\n /**\n * Запрещает поповеру менять свою позицию.\n * Например, если места снизу недостаточно, то он все равно будет показан снизу\n */\n preventFlip?: boolean;\n\n /**\n * Календарь будет принимать ширину инпута\n */\n useAnchorWidth?: boolean;\n\n /**\n * Растягивает компонент на ширину контейнера\n */\n block?: boolean;\n\n /**\n * Отображение компонента в мобильном или десктопном виде\n */\n view?: 'desktop' | 'mobile';\n\n /**\n * Компонент инпута\n */\n InputComponent?: ElementType;\n\n /**\n * Запретить ввод с клавиатуры\n */\n disableUserInput?: boolean;\n };\n\ntype GetDatesRet = { formattedValue: string; dateFrom?: Date; dateTo?: Date; dateArr: string[] };\n\nexport const DateRangeInput = React.forwardRef<HTMLInputElement, DateRangeInputProps>(\n (\n {\n className,\n inputClassName,\n popoverClassName,\n disabled,\n readOnly,\n disableUserInput = false,\n picker,\n defaultValue = '',\n value: propValue,\n onChange,\n onComplete,\n onClose,\n rightAddons,\n useAnchorWidth,\n block,\n popoverPosition = 'bottom-start',\n zIndexPopover,\n preventFlip,\n InputComponent,\n Calendar,\n calendarProps = {},\n defaultMonth,\n minDate = calendarProps.minDate,\n maxDate = calendarProps.maxDate,\n offDays = calendarProps.offDays || [],\n events = calendarProps.events || [],\n defaultOpen = false,\n view = 'desktop',\n ...restProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const iconRef = useRef<HTMLButtonElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const [value, setValue] = useState(propValue || defaultValue);\n const [open, setOpen] = useState(defaultOpen);\n\n const inputDisabled = disabled || readOnly;\n\n const calendarResponsive = calendarProps?.responsive ?? true;\n\n const { selectedFrom, selectedTo, updatePeriod, resetPeriod, setStart, setEnd } = usePeriod(\n { onPeriodChange: handlePeriodChange },\n );\n\n useEffect(() => {\n if (value) {\n setCalendarPeriod(getDates(value));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setValue((prevValue) => {\n if (selectedFrom && selectedTo) {\n const from = parseTimestampToDate(selectedFrom);\n const to = parseTimestampToDate(selectedTo);\n\n return `${from} - ${to}`;\n }\n if (selectedFrom && prevValue.length < DATE_FORMAT.length) {\n return parseTimestampToDate(selectedFrom);\n }\n\n return prevValue;\n });\n }, [selectedFrom, selectedTo]);\n\n useDidUpdateEffect(() => {\n const newPropValue = propValue || '';\n\n setValue((prevValue) => {\n if (prevValue === newPropValue) {\n return prevValue;\n }\n\n const dates = getDates(newPropValue);\n\n setCalendarPeriod(dates);\n\n return dates.formattedValue;\n });\n }, [propValue]);\n\n function getDates(val: string): GetDatesRet {\n const formattedValue = format(val);\n\n const dateArr = formattedValue.split('-').map((v) => v.trim());\n const dateFrom = dateArr[0] ? parseDateString(dateArr[0]) : undefined;\n const dateTo = dateArr[1] ? parseDateString(dateArr[1]) : undefined;\n\n return { formattedValue, dateFrom, dateTo, dateArr };\n }\n\n function setCalendarPeriod({ dateFrom, dateTo }: GetDatesRet) {\n setStart(dateFrom?.getTime());\n setEnd(dateTo?.getTime());\n }\n\n function handlePeriodChange(from?: number, to?: number) {\n if (from && !to && value.length === DATE_MASK.length) {\n setValue(parseTimestampToDate(from));\n } else if (\n (!from && !to && value.length === DATE_FORMAT.length) ||\n (from === to && value.length === DATE_MASK.length)\n ) {\n setValue('');\n }\n\n const dateFrom = from ? new Date(from) : undefined;\n const dateTo = to ? new Date(to) : undefined;\n\n const newValue = ([from, to].filter(Boolean) as number[])\n .map((timestamp) => parseTimestampToDate(timestamp))\n .join(' - ');\n\n onChange?.({\n dateFrom,\n dateTo,\n value: newValue,\n });\n\n if (dateFrom && dateTo) {\n onComplete?.({\n dateFrom,\n dateTo,\n value: newValue,\n });\n }\n }\n\n const handleInputWrapperFocus = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n if (picker) {\n setOpen(true);\n }\n\n if (!open && event.target.tagName !== 'INPUT' && calendarRef.current) {\n calendarRef.current.focus();\n }\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n const target = (event.relatedTarget || document.activeElement) as HTMLElement;\n\n if (\n calendarRef.current?.contains(target) === false &&\n inputRef.current?.contains(target) === false &&\n iconRef.current?.contains(target) === false\n ) {\n setOpen(false);\n\n if (onClose) {\n onClose();\n }\n }\n }\n };\n\n // eslint-disable-next-line complexity\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const { value: newValue } = event.target;\n\n if (newValue.length > DATE_MASK.length) return;\n\n // Позволяем вводить только цифры, точки, дефис и пробелы\n if (/[^\\d. -]/.test(newValue)) {\n return;\n }\n\n const dots = newValue.match(/\\./g);\n const hyphen = newValue.match(/\\-/g);\n\n // Не даем вводить больше, чем 4 точки и 1 дефис\n if ((dots && dots.length > 4) || (hyphen && hyphen.length > 1)) {\n return;\n }\n\n const { formattedValue, dateFrom, dateTo, dateArr } = getDates(newValue);\n\n if (!dateFrom && !dateTo) {\n resetPeriod();\n } else if (selectedFrom && formattedValue.length < DATE_FORMAT.length) {\n setStart();\n } else if (selectedFrom && selectedTo) {\n setEnd();\n } else if (\n dateFrom &&\n dateFnsIsValid(dateFrom) &&\n dateArr[0]?.length === DATE_FORMAT.length &&\n dateFrom.getTime() !== selectedFrom\n ) {\n setStart(dateFrom.getTime());\n } else if (\n dateTo &&\n dateFnsIsValid(dateTo) &&\n dateArr[1]?.length === DATE_FORMAT.length &&\n dateTo.getTime() !== selectedTo\n ) {\n setEnd(dateTo.getTime());\n }\n\n setValue(formattedValue);\n\n onChange?.({ dateFrom, dateTo, value: formattedValue }, event);\n\n if (isCompleteDateInput(formattedValue)) {\n const valid = isValid(formattedValue, dateArr[0], dateArr[1]);\n\n if (!valid) return;\n\n if (dateFrom && dateTo) {\n onComplete?.({ dateFrom, dateTo, value: formattedValue }, event);\n }\n }\n };\n\n const handleCalendarClose = () => {\n if (view === 'mobile' && onClose) {\n onClose();\n }\n\n setOpen(false);\n };\n\n const handleClear = () => {\n setValue('');\n resetPeriod();\n };\n\n const handleCalendarChange = (date?: number) => {\n updatePeriod(date);\n };\n\n const handleCalendarWrapperMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n // Не дает инпуту терять фокус при выборе даты\n event.preventDefault();\n };\n\n const handleIconButtonClick = () => {\n if (!open) setOpen(true);\n\n if (view === 'desktop' && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const renderCalendar = () => {\n const activeMonth =\n (selectedTo && startOfMonth(selectedTo)) ||\n (selectedFrom && startOfMonth(selectedFrom));\n\n return Calendar ? (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onMouseDown={handleCalendarWrapperMouseDown}>\n <Calendar\n {...calendarProps}\n responsive={calendarResponsive}\n open={open}\n onClose={handleCalendarClose}\n ref={calendarRef}\n defaultMonth={activeMonth || defaultMonth}\n selectedFrom={selectedFrom}\n selectedTo={selectedTo}\n onChange={handleCalendarChange}\n minDate={minDate}\n maxDate={maxDate}\n offDays={offDays}\n events={events}\n />\n </div>\n ) : null;\n };\n\n return (\n <div\n className={cn(styles.component, className, {\n [styles.block]: block,\n })}\n onFocus={inputDisabled ? undefined : handleInputWrapperFocus}\n onBlur={handleBlur}\n >\n {InputComponent ? (\n <InputComponent\n autoComplete={picker ? 'off' : undefined}\n {...restProps}\n block={block}\n ref={mergeRefs([ref, inputRef])}\n value={value}\n onChange={handleChange}\n disabled={disabled}\n readOnly={readOnly}\n className={inputClassName}\n onClear={handleClear}\n disableUserInput={disableUserInput}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n {picker && (\n <IconButton\n className={styles.calendarIcon}\n ref={iconRef}\n onClick={inputDisabled ? undefined : handleIconButtonClick}\n icon={CalendarMIcon}\n size='s'\n />\n )}\n </React.Fragment>\n }\n />\n ) : null}\n {picker &&\n (view === 'desktop' ? (\n <Popover\n open={open}\n useAnchorWidth={useAnchorWidth}\n anchorElement={inputRef.current as HTMLElement}\n popperClassName={cn(styles.calendarContainer, {\n [styles.calendarResponsive]: calendarResponsive,\n })}\n className={popoverClassName}\n position={popoverPosition}\n offset={[0, 8]}\n withTransition={false}\n preventFlip={preventFlip}\n zIndex={zIndexPopover}\n >\n {renderCalendar()}\n </Popover>\n ) : (\n renderCalendar()\n ))}\n </div>\n );\n },\n);\n"],"names":["React","__rest","useRef","useState","usePeriod","useEffect","parseTimestampToDate","DATE_FORMAT","useDidUpdateEffect","format","parseDateString","DATE_MASK","dateFnsIsValid","isCompleteDateInput","isValid","startOfMonth","__assign","cn","styles","mergeRefs","IconButton","CalendarMIcon","Popover"],"mappings":"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"}
|