@alfalab/core-components-date-range-input 2.4.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/Component-63dec22f.d.ts +167 -0
  2. package/Component-89a3cf4c.d.ts +6 -0
  3. package/Component-8b5756fe.d.ts +380 -0
  4. package/Component.desktop-2e2b2125.d.ts +6 -0
  5. package/Component.desktop-8b5756fe.d.ts +197 -0
  6. package/Component.desktop.d.ts +1 -1
  7. package/Component.desktop.js +4 -3
  8. package/Component.mobile-755fbaa3.d.ts +6 -0
  9. package/Component.mobile-ebda875c.d.ts +6 -0
  10. package/Component.mobile.d.ts +1 -1
  11. package/Component.mobile.js +4 -3
  12. package/Component.responsive-2e2b2125.d.ts +66 -0
  13. package/Component.responsive.d.ts +1 -1
  14. package/Component.responsive.js +5 -2
  15. package/components/date-range-input/Component.d.ts +7 -2
  16. package/components/date-range-input/Component.js +10 -11
  17. package/components/date-range-input/index.css +7 -7
  18. package/components/date-range-input/index.js +1 -2
  19. package/cssm/Component-63dec22f.d.ts +167 -0
  20. package/cssm/Component-89a3cf4c.d.ts +6 -0
  21. package/cssm/Component-8b5756fe.d.ts +380 -0
  22. package/cssm/Component.desktop-2e2b2125.d.ts +6 -0
  23. package/cssm/Component.desktop-8b5756fe.d.ts +197 -0
  24. package/cssm/Component.desktop.d.ts +1 -1
  25. package/cssm/Component.desktop.js +4 -3
  26. package/cssm/Component.mobile-755fbaa3.d.ts +6 -0
  27. package/cssm/Component.mobile-ebda875c.d.ts +6 -0
  28. package/cssm/Component.mobile.d.ts +1 -1
  29. package/cssm/Component.mobile.js +4 -3
  30. package/cssm/Component.responsive-2e2b2125.d.ts +66 -0
  31. package/cssm/Component.responsive.d.ts +1 -1
  32. package/cssm/Component.responsive.js +5 -2
  33. package/cssm/components/date-range-input/Component.d.ts +7 -2
  34. package/cssm/components/date-range-input/Component.js +9 -10
  35. package/cssm/components/date-range-input/index.js +1 -2
  36. package/cssm/desktop-63dec22f.d.ts +2 -0
  37. package/cssm/desktop.js +3 -2
  38. package/cssm/index-89a3cf4c.d.ts +3 -0
  39. package/cssm/index-9211a437.d.ts +2 -0
  40. package/cssm/index-ebda875c.d.ts +35 -0
  41. package/cssm/index-f034f741.d.ts +80 -0
  42. package/cssm/index.d.ts +3 -2
  43. package/cssm/index.js +5 -2
  44. package/cssm/mobile-c219f8ca.d.ts +1 -0
  45. package/cssm/mobile.js +3 -2
  46. package/cssm/types-ebda875c.d.ts +113 -0
  47. package/cssm/typings-5684a67d.d.ts +23 -0
  48. package/cssm/typings-9211a437.d.ts +95 -0
  49. package/cssm/useCalendar-5684a67d.d.ts +97 -0
  50. package/cssm/utils-5684a67d.d.ts +88 -0
  51. package/desktop-63dec22f.d.ts +2 -0
  52. package/desktop.js +3 -2
  53. package/esm/Component-63dec22f.d.ts +167 -0
  54. package/esm/Component-89a3cf4c.d.ts +6 -0
  55. package/esm/Component-8b5756fe.d.ts +380 -0
  56. package/esm/Component.desktop-2e2b2125.d.ts +6 -0
  57. package/esm/Component.desktop-8b5756fe.d.ts +197 -0
  58. package/esm/Component.desktop.d.ts +1 -1
  59. package/esm/Component.desktop.js +4 -3
  60. package/esm/Component.mobile-755fbaa3.d.ts +6 -0
  61. package/esm/Component.mobile-ebda875c.d.ts +6 -0
  62. package/esm/Component.mobile.d.ts +1 -1
  63. package/esm/Component.mobile.js +4 -3
  64. package/esm/Component.responsive-2e2b2125.d.ts +66 -0
  65. package/esm/Component.responsive.d.ts +1 -1
  66. package/esm/Component.responsive.js +5 -2
  67. package/esm/components/date-range-input/Component.d.ts +7 -2
  68. package/esm/components/date-range-input/Component.js +10 -11
  69. package/esm/components/date-range-input/index.css +7 -7
  70. package/esm/components/date-range-input/index.js +1 -2
  71. package/esm/desktop-63dec22f.d.ts +2 -0
  72. package/esm/desktop.js +3 -2
  73. package/esm/index-89a3cf4c.d.ts +3 -0
  74. package/esm/index-9211a437.d.ts +2 -0
  75. package/esm/index-ebda875c.d.ts +35 -0
  76. package/esm/index-f034f741.d.ts +80 -0
  77. package/esm/index.d.ts +3 -2
  78. package/esm/index.js +5 -2
  79. package/esm/mobile-c219f8ca.d.ts +1 -0
  80. package/esm/mobile.js +3 -2
  81. package/esm/types-ebda875c.d.ts +113 -0
  82. package/esm/typings-5684a67d.d.ts +23 -0
  83. package/esm/typings-9211a437.d.ts +95 -0
  84. package/esm/useCalendar-5684a67d.d.ts +97 -0
  85. package/esm/utils-5684a67d.d.ts +88 -0
  86. package/index-89a3cf4c.d.ts +3 -0
  87. package/index-9211a437.d.ts +2 -0
  88. package/index-ebda875c.d.ts +35 -0
  89. package/index-f034f741.d.ts +80 -0
  90. package/index.d.ts +3 -2
  91. package/index.js +5 -2
  92. package/mobile-c219f8ca.d.ts +1 -0
  93. package/mobile.js +3 -2
  94. package/modern/Component-63dec22f.d.ts +167 -0
  95. package/modern/Component-89a3cf4c.d.ts +6 -0
  96. package/modern/Component-8b5756fe.d.ts +380 -0
  97. package/modern/Component.desktop-2e2b2125.d.ts +6 -0
  98. package/modern/Component.desktop-8b5756fe.d.ts +197 -0
  99. package/modern/Component.desktop.d.ts +1 -1
  100. package/modern/Component.desktop.js +4 -3
  101. package/modern/Component.mobile-755fbaa3.d.ts +6 -0
  102. package/modern/Component.mobile-ebda875c.d.ts +6 -0
  103. package/modern/Component.mobile.d.ts +1 -1
  104. package/modern/Component.mobile.js +4 -3
  105. package/modern/Component.responsive-2e2b2125.d.ts +66 -0
  106. package/modern/Component.responsive.d.ts +1 -1
  107. package/modern/Component.responsive.js +5 -2
  108. package/modern/components/date-range-input/Component.d.ts +7 -2
  109. package/modern/components/date-range-input/Component.js +7 -8
  110. package/modern/components/date-range-input/index.css +7 -7
  111. package/modern/components/date-range-input/index.js +1 -2
  112. package/modern/desktop-63dec22f.d.ts +2 -0
  113. package/modern/desktop.js +3 -2
  114. package/modern/index-89a3cf4c.d.ts +3 -0
  115. package/modern/index-9211a437.d.ts +2 -0
  116. package/modern/index-ebda875c.d.ts +35 -0
  117. package/modern/index-f034f741.d.ts +80 -0
  118. package/modern/index.d.ts +3 -2
  119. package/modern/index.js +5 -2
  120. package/modern/mobile-c219f8ca.d.ts +1 -0
  121. package/modern/mobile.js +3 -2
  122. package/modern/types-ebda875c.d.ts +113 -0
  123. package/modern/typings-5684a67d.d.ts +23 -0
  124. package/modern/typings-9211a437.d.ts +95 -0
  125. package/modern/useCalendar-5684a67d.d.ts +97 -0
  126. package/modern/utils-5684a67d.d.ts +88 -0
  127. package/package.json +25 -5
  128. package/src/Component.desktop.tsx +29 -0
  129. package/src/Component.mobile.tsx +30 -0
  130. package/src/Component.responsive.tsx +41 -0
  131. package/src/components/date-range-input/Component.tsx +519 -0
  132. package/src/components/date-range-input/index.module.css +37 -0
  133. package/src/components/date-range-input/index.ts +1 -0
  134. package/src/desktop.ts +1 -0
  135. package/src/index.ts +2 -0
  136. package/src/mobile.ts +1 -0
  137. package/src/utils/format.ts +91 -0
  138. package/src/utils/index.ts +1 -0
  139. package/types-ebda875c.d.ts +113 -0
  140. package/typings-5684a67d.d.ts +23 -0
  141. package/typings-9211a437.d.ts +95 -0
  142. package/useCalendar-5684a67d.d.ts +97 -0
  143. package/utils-5684a67d.d.ts +88 -0
  144. package/cssm/responsive.d.ts +0 -2
  145. package/cssm/responsive.js +0 -27
  146. package/esm/responsive.d.ts +0 -2
  147. package/esm/responsive.js +0 -18
  148. package/modern/responsive.d.ts +0 -2
  149. package/modern/responsive.js +0 -17
  150. package/responsive.d.ts +0 -2
  151. package/responsive.js +0 -26
@@ -0,0 +1,197 @@
1
+ /// <reference types="react" />
2
+ import React from "react";
3
+ import { FC, ReactNode, MouseEvent } from "react";
4
+ import { SelectorView, Month, DayAddons, View } from "./typings-5684a67d";
5
+ import { PeriodType } from "./index-f034f741";
6
+ type HeaderProps = {
7
+ /**
8
+ * Вид шапки — месяц и год или только месяц
9
+ */
10
+ view?: SelectorView;
11
+ /**
12
+ * Отображать тень? (нужна при прокрутке)
13
+ */
14
+ withShadow?: boolean;
15
+ /**
16
+ * Дочерние элементы.
17
+ */
18
+ children?: ReactNode;
19
+ };
20
+ declare const Header: FC<HeaderProps>;
21
+ type MonthYearHeaderProps = {
22
+ /**
23
+ * Активная дата
24
+ */
25
+ value?: Date;
26
+ /**
27
+ * Дополнительный класс
28
+ */
29
+ className?: string;
30
+ /**
31
+ * Обработчик нажатия на кнопку месяца
32
+ */
33
+ onMonthClick?: (event: MouseEvent<HTMLButtonElement>) => void;
34
+ /**
35
+ * Обработчик нажатия на кнопку года
36
+ */
37
+ onYearClick?: (event: MouseEvent<HTMLButtonElement>) => void;
38
+ /**
39
+ * Идентификатор для систем автоматизированного тестирования
40
+ */
41
+ dataTestId?: string;
42
+ };
43
+ declare const MonthYearHeader: FC<MonthYearHeaderProps>;
44
+ type MonthsTableProps = {
45
+ /**
46
+ * Массив месяцев
47
+ */
48
+ months?: Month[];
49
+ /**
50
+ * Выбранный месяц
51
+ */
52
+ selectedMonth?: Date;
53
+ /**
54
+ * Доп пропсы для переданного месяца
55
+ */
56
+ getMonthProps: (day: Month) => Record<string, unknown>;
57
+ /**
58
+ * Должен ли календарь подстраиваться под ширину родителя.
59
+ */
60
+ responsive?: boolean;
61
+ };
62
+ declare const MonthsTable: FC<MonthsTableProps>;
63
+ declare const formatPeriod: (valueFrom: Date, valueTo: Date, periodType: PeriodType, showCurrentYear?: boolean) => string;
64
+ declare const getYearSelectorValue: (valueFrom: Date | undefined, showCurrentYear: boolean) => number | "";
65
+ declare const shiftValues: (valueFrom: Date, valueTo: Date, periodType: PeriodType, direction: "prev" | "next") => {
66
+ valueFrom: Date;
67
+ valueTo: Date;
68
+ };
69
+ type YearsTableProps = {
70
+ /**
71
+ * Массив лет
72
+ */
73
+ years?: Date[];
74
+ /**
75
+ * Выбранный год
76
+ */
77
+ selectedYear?: Date;
78
+ /**
79
+ * Доп. пропсы для переданного года
80
+ */
81
+ getYearProps: (year: Date) => Record<string, unknown>;
82
+ /**
83
+ * Обработчик скролла
84
+ */
85
+ onScroll: (scrollTop: number) => void;
86
+ /**
87
+ * Должен ли календарь подстраиваться под ширину родителя.
88
+ */
89
+ responsive?: boolean;
90
+ };
91
+ declare const YearsTable: FC<YearsTableProps>;
92
+ type CalendarDesktopProps = {
93
+ /**
94
+ * Дополнительный класс
95
+ */
96
+ className?: string;
97
+ /**
98
+ * Вид по умолчанию (выбор дней, месяцев, лет)
99
+ */
100
+ defaultView?: View;
101
+ /**
102
+ * Вид шапки — месяц и год или только месяц
103
+ */
104
+ selectorView?: SelectorView;
105
+ /**
106
+ * Выбранная дата (timestamp)
107
+ */
108
+ value?: number;
109
+ /**
110
+ * Открытый месяц (timestamp)
111
+ */
112
+ month?: number;
113
+ /**
114
+ * Месяц, открытый по умолчанию (timestamp)
115
+ */
116
+ defaultMonth?: number;
117
+ /**
118
+ * Минимальная дата, доступная для выбора (timestamp)
119
+ */
120
+ minDate?: number;
121
+ /**
122
+ * Максимальная дата, доступная для выбора (timestamp)
123
+ */
124
+ maxDate?: number;
125
+ /**
126
+ * Начало выделенного периода (timestamp)
127
+ */
128
+ selectedFrom?: number;
129
+ /**
130
+ * Конец выделенного периода (timestamp)
131
+ */
132
+ selectedTo?: number;
133
+ /**
134
+ * Индикатор, что выбран полный период
135
+ */
136
+ rangeComplete?: boolean;
137
+ /**
138
+ * Список событий
139
+ */
140
+ events?: Array<Date | number>;
141
+ /**
142
+ * Список отключенных для выбора дней.
143
+ */
144
+ offDays?: Array<Date | number>;
145
+ /**
146
+ * Список выходных
147
+ */
148
+ holidays?: Array<Date | number>;
149
+ /**
150
+ * Обработчик изменения месяца (или года)
151
+ */
152
+ onMonthChange?: (month: number) => void;
153
+ /**
154
+ * Обработчик выбора даты
155
+ */
156
+ onChange?: (date?: number) => void;
157
+ /**
158
+ * Обработчик нажатия на кнопку месяца
159
+ */
160
+ onMonthClick?: (event: MouseEvent<HTMLButtonElement>) => void;
161
+ /**
162
+ * Обработчик нажатия на кнопку года
163
+ */
164
+ onYearClick?: (event: MouseEvent<HTMLButtonElement>) => void;
165
+ /**
166
+ * Обработчик нажатия на период
167
+ */
168
+ onPeriodClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
169
+ /**
170
+ * Идентификатор для систем автоматизированного тестирования
171
+ */
172
+ dataTestId?: string;
173
+ /**
174
+ * Нужно ли рендерить шапку календаря
175
+ */
176
+ hasHeader?: boolean;
177
+ /**
178
+ * Должен ли календарь подстраиваться под ширину родителя.
179
+ */
180
+ responsive?: boolean;
181
+ /**
182
+ * Дополнительный контент под числом
183
+ */
184
+ dayAddons?: DayAddons[];
185
+ /**
186
+ * Форма ячейки дня
187
+ */
188
+ shape?: 'rounded' | 'rectangular';
189
+ /**
190
+ * Отображать ли текущий год, если selectorView 'month-only'
191
+ * @default false
192
+ */
193
+ showCurrentYearSelector?: boolean;
194
+ };
195
+ declare const CalendarDesktop: React.ForwardRefExoticComponent<CalendarDesktopProps & React.RefAttributes<HTMLDivElement>>;
196
+ export { HeaderProps, Header, MonthYearHeaderProps, MonthYearHeader, MonthsTableProps, MonthsTable, formatPeriod, getYearSelectorValue, shiftValues, YearsTableProps, YearsTable, CalendarDesktopProps, CalendarDesktop };
197
+ export * from "./Component-63dec22f";
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
3
  import { ConditionalProps, DateRangeInputProps } from "./components/date-range-input/index";
4
- type DateRangeInputDesktopProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose'> & ConditionalProps;
4
+ type DateRangeInputDesktopProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
5
5
  declare const DateRangeInputDesktop: React.ForwardRefExoticComponent<DateRangeInputDesktopProps & React.RefAttributes<HTMLInputElement>>;
6
6
  export { DateRangeInputDesktopProps, DateRangeInputDesktop };
@@ -4,14 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var React = require('react');
7
+ var desktop$1 = require('@alfalab/core-components-calendar/desktop');
8
+ var desktop = require('@alfalab/core-components-input/desktop');
7
9
  var components_dateRangeInput_Component = require('./components/date-range-input/Component.js');
8
10
  require('react-merge-refs');
9
11
  require('classnames');
10
12
  require('date-fns');
11
13
  require('date-fns/isValid');
12
- require('@alfalab/core-components-calendar');
14
+ require('@alfalab/core-components-calendar/shared');
13
15
  require('@alfalab/core-components-icon-button');
14
- require('@alfalab/core-components-input');
15
16
  require('@alfalab/core-components-popover');
16
17
  require('@alfalab/hooks');
17
18
  require('@alfalab/icons-glyph/CalendarMIcon');
@@ -22,6 +23,6 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
22
23
 
23
24
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
24
25
 
25
- var DateRangeInputDesktop = React.forwardRef(function (props, ref) { return React__default.default.createElement(components_dateRangeInput_Component.DateRangeInput, tslib.__assign({}, props, { ref: ref })); });
26
+ var DateRangeInputDesktop = React.forwardRef(function (props, ref) { return (React__default.default.createElement(components_dateRangeInput_Component.DateRangeInput, tslib.__assign({ InputComponent: desktop.InputDesktop, Calendar: desktop$1.CalendarDesktop }, props, { ref: ref }))); });
26
27
 
27
28
  exports.DateRangeInputDesktop = DateRangeInputDesktop;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { AnchorButtonProps, NativeButtonProps } from "./typings-9211a437";
4
+ type ButtonMobileProps = Partial<AnchorButtonProps | NativeButtonProps>;
5
+ declare const ButtonMobile: React.ForwardRefExoticComponent<ButtonMobileProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
6
+ export { ButtonMobileProps, ButtonMobile };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { BaseFormControlProps } from "./index-ebda875c";
4
+ type FormControlMobileProps = Omit<BaseFormControlProps, 'styles' | 'colorStyles'>;
5
+ declare const FormControlMobile: React.ForwardRefExoticComponent<FormControlMobileProps & React.RefAttributes<HTMLDivElement>>;
6
+ export { FormControlMobileProps, FormControlMobile };
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
3
  import { ConditionalProps, DateRangeInputProps } from "./components/date-range-input/index";
4
- type DateRangeInputMobileProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose'> & ConditionalProps;
4
+ type DateRangeInputMobileProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps;
5
5
  declare const DateRangeInputMobile: React.ForwardRefExoticComponent<DateRangeInputMobileProps & React.RefAttributes<HTMLInputElement>>;
6
6
  export { DateRangeInputMobileProps, DateRangeInputMobile };
@@ -4,14 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var React = require('react');
7
- var coreComponentsCalendar = require('@alfalab/core-components-calendar');
7
+ var mobile$1 = require('@alfalab/core-components-calendar/mobile');
8
+ var mobile = require('@alfalab/core-components-input/mobile');
8
9
  var components_dateRangeInput_Component = require('./components/date-range-input/Component.js');
9
10
  require('react-merge-refs');
10
11
  require('classnames');
11
12
  require('date-fns');
12
13
  require('date-fns/isValid');
14
+ require('@alfalab/core-components-calendar/shared');
13
15
  require('@alfalab/core-components-icon-button');
14
- require('@alfalab/core-components-input');
15
16
  require('@alfalab/core-components-popover');
16
17
  require('@alfalab/hooks');
17
18
  require('@alfalab/icons-glyph/CalendarMIcon');
@@ -22,6 +23,6 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
22
23
 
23
24
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
24
25
 
25
- var DateRangeInputMobile = React.forwardRef(function (props, ref) { return React__default.default.createElement(components_dateRangeInput_Component.DateRangeInput, tslib.__assign({ Calendar: coreComponentsCalendar.CalendarMobile, view: 'mobile' }, props, { ref: ref })); });
26
+ var DateRangeInputMobile = React.forwardRef(function (props, ref) { return (React__default.default.createElement(components_dateRangeInput_Component.DateRangeInput, tslib.__assign({ InputComponent: mobile.InputMobile, Calendar: mobile$1.CalendarMobile, view: 'mobile' }, props, { ref: ref }))); });
26
27
 
27
28
  exports.DateRangeInputMobile = DateRangeInputMobile;
@@ -0,0 +1,66 @@
1
+ /// <reference types="react" />
2
+ import React from "react";
3
+ import { FC, ReactNode } from "react";
4
+ import { ButtonProps } from "./typings-9211a437";
5
+ type MqProps = {
6
+ /**
7
+ * Media выражение или кастомный запрос из `mq.json`, например `--mobile`.
8
+ */
9
+ query?: string;
10
+ /**
11
+ * Запрос на поддержку тач-событий
12
+ */
13
+ touch?: boolean;
14
+ /**
15
+ * Дочерние элементы.
16
+ */
17
+ children?: ReactNode;
18
+ /**
19
+ * Обработчик изменений в совпадении запросов
20
+ */
21
+ onMatchChange?: (isMatched: boolean) => void;
22
+ };
23
+ declare const Mq: FC<MqProps>;
24
+ /**
25
+ * Хук для медиа запросов.
26
+ * @param query media выражение или кастомный запрос из `mq.json`, например `--mobile`.
27
+ * @param defaultValue Значение по-умолчанию.
28
+ */
29
+ declare const useMatchMedia: (query: string, defaultValue?: boolean | (() => boolean)) => boolean[];
30
+ /**
31
+ * Возвращает MediaQueryList для заданного media-выражения.
32
+ *
33
+ * @param queryProp media выражение или кастомный запрос из `mq.json`, например `--mobile`.
34
+ */
35
+ declare function getMatchMedia(queryProp: string): MediaQueryList;
36
+ /**
37
+ * Удаляет MediaQueryList.
38
+ *
39
+ * @param queryProp media выражение или кастомный запрос из `mq.json`, например `--mobile`.
40
+ */
41
+ declare function releaseMatchMedia(queryProp: string): void;
42
+ /**
43
+ * Возвращает `true`, если есть поддержка `Pointer Events`
44
+ */
45
+ declare function isPointerEventsSupported(): boolean;
46
+ /**
47
+ * Возвращает `true`, если есть поддержка `Touch Events`
48
+ */
49
+ declare function isTouchSupported(): boolean;
50
+ declare const _exports: {
51
+ "--mobile-xs": string;
52
+ "--mobile-s": string;
53
+ "--mobile-m": string;
54
+ "--mobile-l": string;
55
+ "--mobile": string;
56
+ "--tablet-s": string;
57
+ "--tablet-m": string;
58
+ "--tablet": string;
59
+ "--desktop-s": string;
60
+ "--desktop-m": string;
61
+ "--desktop-l": string;
62
+ "--desktop-xl": string;
63
+ "--desktop": string;
64
+ };
65
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
66
+ export { _exports as default, MqProps, Mq, useMatchMedia, getMatchMedia, releaseMatchMedia, isPointerEventsSupported, isTouchSupported, Button };
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
3
  import { ConditionalProps, DateRangeInputProps } from "./components/date-range-input/index";
4
- type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose'> & ConditionalProps & {
4
+ type DateRangeInputResponsiveProps = Omit<DateRangeInputProps, 'view' | 'picker' | 'onClose' | 'InputComponent'> & ConditionalProps & {
5
5
  /**
6
6
  * Контрольная точка, с нее начинается desktop версия
7
7
  * @default 1024
@@ -7,18 +7,21 @@ var React = require('react');
7
7
  var hooks = require('@alfalab/hooks');
8
8
  var Component_desktop = require('./Component.desktop.js');
9
9
  var Component_mobile = require('./Component.mobile.js');
10
+ require('@alfalab/core-components-calendar/desktop');
11
+ require('@alfalab/core-components-input/desktop');
10
12
  require('./components/date-range-input/Component.js');
11
13
  require('react-merge-refs');
12
14
  require('classnames');
13
15
  require('date-fns');
14
16
  require('date-fns/isValid');
15
- require('@alfalab/core-components-calendar');
17
+ require('@alfalab/core-components-calendar/shared');
16
18
  require('@alfalab/core-components-icon-button');
17
- require('@alfalab/core-components-input');
18
19
  require('@alfalab/core-components-popover');
19
20
  require('@alfalab/icons-glyph/CalendarMIcon');
20
21
  require('./utils/format.js');
21
22
  require('date-fns/parse');
23
+ require('@alfalab/core-components-calendar/mobile');
24
+ require('@alfalab/core-components-input/mobile');
22
25
 
23
26
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
24
27
 
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
3
  import { ChangeEvent, ElementType } from "react";
4
- import { CalendarMobileProps, CalendarProps } from "@alfalab/core-components-calendar";
4
+ import { CalendarDesktopProps } from "../../desktop-63dec22f";
5
+ import { CalendarMobileProps } from "../../mobile-c219f8ca";
5
6
  import { InputProps } from "@alfalab/core-components-input";
6
7
  import { PopoverProps } from "@alfalab/core-components-popover";
7
8
  type ConditionalProps = {
@@ -53,7 +54,7 @@ type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
53
54
  /**
54
55
  * Доп. пропсы для календаря
55
56
  */
56
- calendarProps?: (CalendarProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
57
+ calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
57
58
  /**
58
59
  * Месяц в календаре по умолчанию (timestamp)
59
60
  */
@@ -103,6 +104,10 @@ type DateRangeInputProps = Omit<InputProps, 'onChange'> & ConditionalProps & {
103
104
  * Отображение компонента в мобильном или десктопном виде
104
105
  */
105
106
  view?: 'desktop' | 'mobile';
107
+ /**
108
+ * Компонент инпута
109
+ */
110
+ InputComponent?: ElementType;
106
111
  /**
107
112
  * Запретить ввод с клавиатуры
108
113
  */
@@ -8,9 +8,8 @@ var mergeRefs = require('react-merge-refs');
8
8
  var cn = require('classnames');
9
9
  var dateFns = require('date-fns');
10
10
  var dateFnsIsValid = require('date-fns/isValid');
11
- var coreComponentsCalendar = require('@alfalab/core-components-calendar');
11
+ var shared = require('@alfalab/core-components-calendar/shared');
12
12
  var coreComponentsIconButton = require('@alfalab/core-components-icon-button');
13
- var coreComponentsInput = require('@alfalab/core-components-input');
14
13
  var coreComponentsPopover = require('@alfalab/core-components-popover');
15
14
  var hooks = require('@alfalab/hooks');
16
15
  var CalendarMIcon = require('@alfalab/icons-glyph/CalendarMIcon');
@@ -24,21 +23,21 @@ var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
24
23
  var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
25
24
  var dateFnsIsValid__default = /*#__PURE__*/_interopDefaultCompat(dateFnsIsValid);
26
25
 
27
- var styles = {"component":"date-range-input__component_198ra","calendarContainer":"date-range-input__calendarContainer_198ra","calendarResponsive":"date-range-input__calendarResponsive_198ra","block":"date-range-input__block_198ra","calendarIcon":"date-range-input__calendarIcon_198ra"};
26
+ var styles = {"component":"date-range-input__component_1cfrs","calendarContainer":"date-range-input__calendarContainer_1cfrs","calendarResponsive":"date-range-input__calendarResponsive_1cfrs","block":"date-range-input__block_1cfrs","calendarIcon":"date-range-input__calendarIcon_1cfrs"};
28
27
  require('./index.css')
29
28
 
30
29
  var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
31
30
  var _b, _c;
32
31
  var _d;
33
- var className = _a.className, inputClassName = _a.inputClassName, popoverClassName = _a.popoverClassName, disabled = _a.disabled, readOnly = _a.readOnly, _e = _a.disableUserInput, disableUserInput = _e === void 0 ? false : _e, picker = _a.picker, _f = _a.defaultValue, defaultValue = _f === void 0 ? '' : _f, propValue = _a.value, onChange = _a.onChange, onComplete = _a.onComplete, onClose = _a.onClose, rightAddons = _a.rightAddons, useAnchorWidth = _a.useAnchorWidth, block = _a.block, _g = _a.popoverPosition, popoverPosition = _g === void 0 ? 'bottom-start' : _g, zIndexPopover = _a.zIndexPopover, preventFlip = _a.preventFlip, _h = _a.Calendar, Calendar = _h === void 0 ? coreComponentsCalendar.Calendar : _h, _j = _a.calendarProps, calendarProps = _j === void 0 ? {} : _j, defaultMonth = _a.defaultMonth, _k = _a.minDate, minDate = _k === void 0 ? calendarProps.minDate : _k, _l = _a.maxDate, maxDate = _l === void 0 ? calendarProps.maxDate : _l, _m = _a.offDays, offDays = _m === void 0 ? calendarProps.offDays || [] : _m, _o = _a.events, events = _o === void 0 ? calendarProps.events || [] : _o, _p = _a.defaultOpen, defaultOpen = _p === void 0 ? false : _p, _q = _a.view, view = _q === void 0 ? 'desktop' : _q, restProps = tslib.__rest(_a, ["className", "inputClassName", "popoverClassName", "disabled", "readOnly", "disableUserInput", "picker", "defaultValue", "value", "onChange", "onComplete", "onClose", "rightAddons", "useAnchorWidth", "block", "popoverPosition", "zIndexPopover", "preventFlip", "Calendar", "calendarProps", "defaultMonth", "minDate", "maxDate", "offDays", "events", "defaultOpen", "view"]);
32
+ var className = _a.className, inputClassName = _a.inputClassName, popoverClassName = _a.popoverClassName, disabled = _a.disabled, readOnly = _a.readOnly, _e = _a.disableUserInput, disableUserInput = _e === void 0 ? false : _e, picker = _a.picker, _f = _a.defaultValue, defaultValue = _f === void 0 ? '' : _f, propValue = _a.value, onChange = _a.onChange, onComplete = _a.onComplete, onClose = _a.onClose, rightAddons = _a.rightAddons, useAnchorWidth = _a.useAnchorWidth, block = _a.block, _g = _a.popoverPosition, popoverPosition = _g === void 0 ? 'bottom-start' : _g, zIndexPopover = _a.zIndexPopover, preventFlip = _a.preventFlip, InputComponent = _a.InputComponent, Calendar = _a.Calendar, _h = _a.calendarProps, calendarProps = _h === void 0 ? {} : _h, defaultMonth = _a.defaultMonth, _j = _a.minDate, minDate = _j === void 0 ? calendarProps.minDate : _j, _k = _a.maxDate, maxDate = _k === void 0 ? calendarProps.maxDate : _k, _l = _a.offDays, offDays = _l === void 0 ? calendarProps.offDays || [] : _l, _m = _a.events, events = _m === void 0 ? calendarProps.events || [] : _m, _o = _a.defaultOpen, defaultOpen = _o === void 0 ? false : _o, _p = _a.view, view = _p === void 0 ? 'desktop' : _p, restProps = tslib.__rest(_a, ["className", "inputClassName", "popoverClassName", "disabled", "readOnly", "disableUserInput", "picker", "defaultValue", "value", "onChange", "onComplete", "onClose", "rightAddons", "useAnchorWidth", "block", "popoverPosition", "zIndexPopover", "preventFlip", "InputComponent", "Calendar", "calendarProps", "defaultMonth", "minDate", "maxDate", "offDays", "events", "defaultOpen", "view"]);
34
33
  var inputRef = React.useRef(null);
35
34
  var iconRef = React.useRef(null);
36
35
  var calendarRef = React.useRef(null);
37
- var _r = React.useState(propValue || defaultValue), value = _r[0], setValue = _r[1];
38
- var _s = React.useState(defaultOpen), open = _s[0], setOpen = _s[1];
36
+ var _q = React.useState(propValue || defaultValue), value = _q[0], setValue = _q[1];
37
+ var _r = React.useState(defaultOpen), open = _r[0], setOpen = _r[1];
39
38
  var inputDisabled = disabled || readOnly;
40
39
  var calendarResponsive = (_d = calendarProps === null || calendarProps === void 0 ? void 0 : calendarProps.responsive) !== null && _d !== void 0 ? _d : true;
41
- var _t = coreComponentsCalendar.usePeriod({ onPeriodChange: handlePeriodChange }), selectedFrom = _t.selectedFrom, selectedTo = _t.selectedTo, updatePeriod = _t.updatePeriod, resetPeriod = _t.resetPeriod, setStart = _t.setStart, setEnd = _t.setEnd;
40
+ var _s = shared.usePeriod({ onPeriodChange: handlePeriodChange }), selectedFrom = _s.selectedFrom, selectedTo = _s.selectedTo, updatePeriod = _s.updatePeriod, resetPeriod = _s.resetPeriod, setStart = _s.setStart, setEnd = _s.setEnd;
42
41
  React.useEffect(function () {
43
42
  if (value) {
44
43
  setCalendarPeriod(getDates(value));
@@ -215,17 +214,17 @@ var DateRangeInput = React__default.default.forwardRef(function (_a, ref) {
215
214
  var renderCalendar = function () {
216
215
  var activeMonth = (selectedTo && dateFns.startOfMonth(selectedTo)) ||
217
216
  (selectedFrom && dateFns.startOfMonth(selectedFrom));
218
- return (
217
+ return Calendar ? (
219
218
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
220
219
  React__default.default.createElement("div", { onMouseDown: handleCalendarWrapperMouseDown },
221
- 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 }))));
220
+ 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;
222
221
  };
223
222
  return (React__default.default.createElement("div", { className: cn__default.default(styles.component, className, (_b = {},
224
223
  _b[styles.block] = block,
225
224
  _b)), onFocus: inputDisabled ? undefined : handleInputWrapperFocus, onBlur: handleBlur },
226
- React__default.default.createElement(coreComponentsInput.Input, tslib.__assign({}, restProps, { block: block, ref: mergeRefs__default.default([ref, inputRef]), value: value, onChange: handleChange, disabled: disabled, readOnly: readOnly, className: inputClassName, onClear: handleClear, onKeyDown: handleInputKeyDown, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
225
+ InputComponent ? (React__default.default.createElement(InputComponent, tslib.__assign({}, restProps, { block: block, ref: mergeRefs__default.default([ref, inputRef]), value: value, onChange: handleChange, disabled: disabled, readOnly: readOnly, className: inputClassName, onClear: handleClear, onKeyDown: handleInputKeyDown, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
227
226
  rightAddons,
228
- picker && (React__default.default.createElement(coreComponentsIconButton.IconButton, { className: styles.calendarIcon, ref: iconRef, onClick: inputDisabled ? undefined : handleIconButtonClick, icon: CalendarMIcon.CalendarMIcon, size: 's' }))) })),
227
+ picker && (React__default.default.createElement(coreComponentsIconButton.IconButton, { className: styles.calendarIcon, ref: iconRef, onClick: inputDisabled ? undefined : handleIconButtonClick, icon: CalendarMIcon.CalendarMIcon, size: 's' }))) }))) : null,
229
228
  picker && (React__default.default.createElement(coreComponentsPopover.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputRef.current, popperClassName: cn__default.default(styles.calendarContainer, (_c = {},
230
229
  _c[styles.calendarResponsive] = calendarResponsive,
231
230
  _c)), className: popoverClassName, position: popoverPosition, offset: [0, 8], withTransition: false, preventFlip: preventFlip, zIndex: zIndexPopover }, renderCalendar()))));
@@ -1,4 +1,4 @@
1
- /* hash: c4d0p */
1
+ /* hash: 5wzse */
2
2
  :root {
3
3
  } /* deprecated */ :root {
4
4
  --color-light-border-secondary: #e9e9eb; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -41,24 +41,24 @@
41
41
  /* marker */
42
42
  } :root {
43
43
  --calendar-popover-border-radius: var(--border-radius-m);
44
- } .date-range-input__component_198ra {
44
+ } .date-range-input__component_1cfrs {
45
45
  display: inline-block;
46
46
  outline: none;
47
47
  position: relative;
48
- } .date-range-input__calendarContainer_198ra {
48
+ } .date-range-input__calendarContainer_1cfrs {
49
49
  display: inline-block;
50
50
  box-sizing: border-box;
51
51
  border-radius: var(--calendar-popover-border-radius);
52
52
  border: 1px solid var(--color-light-border-secondary)
53
- } @media (max-width: 374px) { .date-range-input__calendarContainer_198ra {
53
+ } @media (max-width: 374px) { .date-range-input__calendarContainer_1cfrs {
54
54
  width: 100%;
55
55
  min-width: 288px
56
56
  }
57
- } .date-range-input__calendarResponsive_198ra {
57
+ } .date-range-input__calendarResponsive_1cfrs {
58
58
  width: var(--calendar-width);
59
- } .date-range-input__block_198ra {
59
+ } .date-range-input__block_1cfrs {
60
60
  width: 100%;
61
- } .date-range-input__calendarIcon_198ra {
61
+ } .date-range-input__calendarIcon_1cfrs {
62
62
  margin-right: var(--gap-s-neg);
63
63
  height: 100%;
64
64
  }
@@ -9,9 +9,8 @@ require('react-merge-refs');
9
9
  require('classnames');
10
10
  require('date-fns');
11
11
  require('date-fns/isValid');
12
- require('@alfalab/core-components-calendar');
12
+ require('@alfalab/core-components-calendar/shared');
13
13
  require('@alfalab/core-components-icon-button');
14
- require('@alfalab/core-components-input');
15
14
  require('@alfalab/core-components-popover');
16
15
  require('@alfalab/hooks');
17
16
  require('@alfalab/icons-glyph/CalendarMIcon');