@alfalab/core-components-calendar-input 11.0.0 → 11.1.0-snapshot-92b8690

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 (45) hide show
  1. package/components/calendar-input/index.css +10 -10
  2. package/components/calendar-input/index.module.css.js +1 -1
  3. package/components/calendar-input/index.module.css.js.map +1 -1
  4. package/dynamic-mixins/Component.responsive.d.ts +29 -0
  5. package/dynamic-mixins/Component.responsive.js +26 -0
  6. package/dynamic-mixins/Component.responsive.js.map +1 -0
  7. package/dynamic-mixins/components/calendar-input/Component.d.ts +246 -0
  8. package/dynamic-mixins/components/calendar-input/Component.js +169 -0
  9. package/dynamic-mixins/components/calendar-input/Component.js.map +1 -0
  10. package/dynamic-mixins/components/calendar-input/index.css +55 -0
  11. package/dynamic-mixins/components/calendar-input/index.d.ts +1 -0
  12. package/dynamic-mixins/components/calendar-input/index.js +10 -0
  13. package/dynamic-mixins/components/calendar-input/index.js.map +1 -0
  14. package/dynamic-mixins/components/calendar-input/index.module.css.js +8 -0
  15. package/dynamic-mixins/components/calendar-input/index.module.css.js.map +1 -0
  16. package/dynamic-mixins/desktop/Component.desktop.d.ts +8 -0
  17. package/dynamic-mixins/desktop/Component.desktop.js +21 -0
  18. package/dynamic-mixins/desktop/Component.desktop.js.map +1 -0
  19. package/dynamic-mixins/desktop/index.d.ts +1 -0
  20. package/dynamic-mixins/desktop/index.js +10 -0
  21. package/dynamic-mixins/desktop/index.js.map +1 -0
  22. package/dynamic-mixins/index.d.ts +2 -0
  23. package/dynamic-mixins/index.js +10 -0
  24. package/dynamic-mixins/index.js.map +1 -0
  25. package/dynamic-mixins/mobile/Component.mobile.d.ts +8 -0
  26. package/dynamic-mixins/mobile/Component.mobile.js +21 -0
  27. package/dynamic-mixins/mobile/Component.mobile.js.map +1 -0
  28. package/dynamic-mixins/mobile/index.d.ts +1 -0
  29. package/dynamic-mixins/mobile/index.js +10 -0
  30. package/dynamic-mixins/mobile/index.js.map +1 -0
  31. package/dynamic-mixins/shared/index.d.ts +1 -0
  32. package/dynamic-mixins/shared/index.js +18 -0
  33. package/dynamic-mixins/shared/index.js.map +1 -0
  34. package/dynamic-mixins/utils.d.ts +12 -0
  35. package/dynamic-mixins/utils.js +60 -0
  36. package/dynamic-mixins/utils.js.map +1 -0
  37. package/esm/components/calendar-input/index.css +10 -10
  38. package/esm/components/calendar-input/index.module.css.js +1 -1
  39. package/esm/components/calendar-input/index.module.css.js.map +1 -1
  40. package/modern/components/calendar-input/index.css +10 -10
  41. package/modern/components/calendar-input/index.module.css.js +1 -1
  42. package/modern/components/calendar-input/index.module.css.js.map +1 -1
  43. package/moderncssm/components/calendar-input/index.module.css +12 -0
  44. package/package.json +7 -7
  45. package/src/components/calendar-input/index.module.css +1 -1
@@ -13,31 +13,31 @@
13
13
  } :root {
14
14
  --calendar-input-icon-color: var(--color-light-neutral-translucent-700);
15
15
  --calendar-input-popover-border-radius: var(--border-radius-8);
16
- } .calendar-input__component_8xm6h {
16
+ } .calendar-input__component_k1elp {
17
17
  display: inline-block;
18
18
  outline: none;
19
19
  position: relative;
20
- } .calendar-input__block_8xm6h {
20
+ } .calendar-input__block_k1elp {
21
21
  width: 100%;
22
- } .calendar-input__calendarContainer_8xm6h {
22
+ } .calendar-input__calendarContainer_k1elp {
23
23
  display: inline-block;
24
24
  box-sizing: border-box;
25
25
  border-radius: var(--calendar-input-popover-border-radius);
26
26
  border: 1px solid var(--color-light-neutral-300)
27
- } @media (max-width: 374px) { .calendar-input__calendarContainer_8xm6h {
27
+ } @media (max-width: 374px) { .calendar-input__calendarContainer_k1elp {
28
28
  width: 100%;
29
29
  min-width: 288px
30
30
  }
31
- } .calendar-input__calendarResponsive_8xm6h {
31
+ } .calendar-input__calendarResponsive_k1elp {
32
32
  width: var(--calendar-width);
33
- } .calendar-input__calendarIcon_8xm6h {
33
+ } .calendar-input__calendarIcon_k1elp {
34
34
  width: 24px;
35
35
  height: 24px;
36
36
  display: block;
37
37
  color: var(--calendar-input-icon-color)
38
- } .calendar-input__calendarIcon_8xm6h:not(:only-child) {
38
+ } .calendar-input__calendarIcon_k1elp:not(:only-child) {
39
39
  margin-right: var(--gap-4);
40
- } .calendar-input__nativeInput_8xm6h {
40
+ } .calendar-input__nativeInput_k1elp {
41
41
  opacity: 0;
42
42
  position: absolute;
43
43
  top: var(--gap-0);
@@ -48,8 +48,8 @@
48
48
  -moz-appearance: none;
49
49
  appearance: none;
50
50
  z-index: 1
51
- } .calendar-input__nativeInput_8xm6h::-webkit-calendar-picker-indicator {
51
+ } .calendar-input__nativeInput_k1elp::-webkit-calendar-picker-indicator {
52
52
  display: none;
53
- } .calendar-input__nativeInput_8xm6h::-webkit-inner-spin-button {
53
+ } .calendar-input__nativeInput_k1elp::-webkit-inner-spin-button {
54
54
  display: none;
55
55
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"calendar-input__component_8xm6h","block":"calendar-input__block_8xm6h","calendarContainer":"calendar-input__calendarContainer_8xm6h","calendarResponsive":"calendar-input__calendarResponsive_8xm6h","calendarIcon":"calendar-input__calendarIcon_8xm6h"};
5
+ var styles = {"component":"calendar-input__component_k1elp","block":"calendar-input__block_k1elp","calendarContainer":"calendar-input__calendarContainer_k1elp","calendarResponsive":"calendar-input__calendarResponsive_k1elp","calendarIcon":"calendar-input__calendarIcon_k1elp"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/calendar-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-input-icon-color: var(--color-light-neutral-translucent-700);\n --calendar-input-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.block {\n width: 100%;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-input-popover-border-radius);\n border: 1px solid var(--color-light-neutral-300);\n\n @media (max-width: 374px) {\n width: 100%;\n min-width: 288px;\n }\n}\n\n.calendarResponsive {\n width: var(--calendar-width);\n}\n\n.calendarIcon {\n width: 24px;\n height: 24px;\n display: block;\n color: var(--calendar-input-icon-color);\n\n &:not(:only-child) {\n margin-right: var(--gap-4);\n }\n}\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,iCAAiC,CAAC,OAAO,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,cAAc,CAAC,oCAAsF,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/calendar-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-input-icon-color: var(--color-light-neutral-translucent-700);\n --calendar-input-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.block {\n width: 100%;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-input-popover-border-radius);\n border: 1px solid var(--color-light-neutral-300);\n\n @media (max-width: 374px) {\n width: 100%;\n min-width: 288px;\n }\n}\n\n.calendarResponsive {\n width: var(--calendar-width);\n}\n\n.calendarIcon {\n width: 24px;\n height: 24px;\n display: block;\n color: var(--calendar-input-icon-color);\n\n &:not(:only-child) {\n margin-right: var(--gap-4);\n }\n}\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,iCAAiC,CAAC,OAAO,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,cAAc,CAAC,oCAAsF,CAAC;;;;"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { CalendarInputProps } from './components/calendar-input/Component';
3
+ export declare type CalendarInputResponsiveProps = Omit<CalendarInputProps, 'view'> & {
4
+ /**
5
+ * Контрольная точка, с нее начинается desktop версия
6
+ * @default 1024
7
+ */
8
+ breakpoint?: number;
9
+ /**
10
+ * Версия, которая будет использоваться при серверном рендеринге
11
+ */
12
+ client?: 'desktop' | 'mobile';
13
+ };
14
+ export declare type CalendarInputMedia = 'desktop' | 'mobile';
15
+ /**
16
+ * @deprecated
17
+ * use UniversalDateInput instead
18
+ */
19
+ export declare const CalendarInputResponsive: React.ForwardRefExoticComponent<Omit<CalendarInputProps, "view"> & {
20
+ /**
21
+ * Контрольная точка, с нее начинается desktop версия
22
+ * @default 1024
23
+ */
24
+ breakpoint?: number | undefined;
25
+ /**
26
+ * Версия, которая будет использоваться при серверном рендеринге
27
+ */
28
+ client?: "mobile" | "desktop" | undefined;
29
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var dynamicMixins = require('@alfalab/core-components-mq/dynamic-mixins');
8
+ var Component_desktop = require('./desktop/Component.desktop.js');
9
+ var Component_mobile = require('./mobile/Component.mobile.js');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
14
+
15
+ /**
16
+ * @deprecated
17
+ * use UniversalDateInput instead
18
+ */
19
+ var CalendarInputResponsive = React.forwardRef(function (_a, ref) {
20
+ var breakpoint = _a.breakpoint, client = _a.client, restProps = tslib.__rest(_a, ["breakpoint", "client"]);
21
+ var isDesktop = dynamicMixins.useIsDesktop(breakpoint, client === 'desktop');
22
+ return isDesktop ? (React__default.default.createElement(Component_desktop.CalendarInputDesktop, tslib.__assign({}, restProps, { ref: ref }))) : (React__default.default.createElement(Component_mobile.CalendarInputMobile, tslib.__assign({}, restProps, { ref: ref })));
23
+ });
24
+
25
+ exports.CalendarInputResponsive = CalendarInputResponsive;
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 { DateInputProps } from '@alfalab/core-components-date-input';\nimport { useIsDesktop } from '@alfalab/core-components-mq';\n\nimport { CalendarInputProps } from './components/calendar-input/Component';\nimport { CalendarInputDesktop } from './desktop';\nimport { CalendarInputMobile } from './mobile';\n\nexport type CalendarInputResponsiveProps = Omit<CalendarInputProps, 'view'> & {\n /**\n * Контрольная точка, с нее начинается desktop версия\n * @default 1024\n */\n breakpoint?: number;\n\n /**\n * Версия, которая будет использоваться при серверном рендеринге\n */\n client?: 'desktop' | 'mobile';\n};\n\nexport type CalendarInputMedia = 'desktop' | 'mobile';\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const CalendarInputResponsive = forwardRef<HTMLInputElement, CalendarInputResponsiveProps>(\n ({ breakpoint, client, ...restProps }, ref) => {\n const isDesktop = useIsDesktop(breakpoint, client === 'desktop');\n\n return isDesktop ? (\n <CalendarInputDesktop {...restProps} ref={ref} />\n ) : (\n <CalendarInputMobile {...restProps} ref={ref} />\n );\n },\n);\n"],"names":["forwardRef","__rest","useIsDesktop","React","CalendarInputDesktop","__assign","CalendarInputMobile"],"mappings":";;;;;;;;;;;;;;AAyBA;;;AAGG;IACU,uBAAuB,GAAGA,gBAAU,CAC7C,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,0BAAY,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC;AAEhE,IAAA,OAAO,SAAS,IACZC,sBAAA,CAAA,aAAA,CAACC,sCAAoB,EAAAC,cAAA,CAAA,EAAA,EAAK,SAAS,EAAA,EAAE,GAAG,EAAE,GAAG,EAAA,CAAA,CAAI,KAEjDF,sBAAA,CAAA,aAAA,CAACG,oCAAmB,EAAAD,cAAA,CAAA,EAAA,EAAK,SAAS,EAAA,EAAE,GAAG,EAAE,GAAG,EAAA,CAAA,CAAI,CACnD;AACL,CAAC;;;;"}
@@ -0,0 +1,246 @@
1
+ import React, { ChangeEvent, ElementType, MouseEvent } from 'react';
2
+ import type { CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';
3
+ import type { CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';
4
+ import { DateInputProps } from '@alfalab/core-components-date-input';
5
+ import { PopoverProps } from '@alfalab/core-components-popover';
6
+ export declare type CalendarInputProps = Omit<DateInputProps, 'onChange' | 'mobileMode'> & {
7
+ /**
8
+ * Дополнительный класс
9
+ */
10
+ className?: string;
11
+ /**
12
+ * Дополнительный класс для инпута
13
+ */
14
+ inputClassName?: string;
15
+ /**
16
+ * Дополнительный класс для поповера
17
+ */
18
+ popoverClassName?: string;
19
+ /**
20
+ * Доп. пропсы для календаря
21
+ */
22
+ calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
23
+ /**
24
+ * Значение инпута (используется и для календаря)
25
+ */
26
+ value?: string;
27
+ /**
28
+ * Начальное значение инпута
29
+ */
30
+ defaultValue?: string;
31
+ /**
32
+ * Состояние открытия по умолчанию
33
+ */
34
+ defaultOpen?: boolean;
35
+ /**
36
+ * Месяц в календаре по умолчанию (timestamp)
37
+ */
38
+ defaultMonth?: number;
39
+ /**
40
+ * Минимальная дата, доступная для выбора (timestamp)
41
+ */
42
+ minDate?: number;
43
+ /**
44
+ * Максимальная дата, доступная для выбора (timestamp)
45
+ */
46
+ maxDate?: number;
47
+ /**
48
+ * Список событий
49
+ */
50
+ events?: Array<Date | number>;
51
+ /**
52
+ * Список выходных
53
+ */
54
+ offDays?: Array<Date | number>;
55
+ /**
56
+ * Определяет, как рендерить календарь — в поповере или снизу инпута
57
+ */
58
+ calendarPosition?: 'static' | 'popover';
59
+ /**
60
+ * Запрещает поповеру менять свою позицию.
61
+ * Например, если места снизу недостаточно,то он все равно будет показан снизу
62
+ */
63
+ preventFlip?: boolean;
64
+ /**
65
+ * Управление нативным режимом на мобильных устройствах
66
+ */
67
+ mobileMode?: 'native' | 'popover' | 'input';
68
+ /**
69
+ * Компонент календаря
70
+ */
71
+ Calendar?: ElementType;
72
+ /**
73
+ * Обработчик изменения значения
74
+ */
75
+ onChange?: (event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLButtonElement> | null, payload: {
76
+ date: Date;
77
+ value: string;
78
+ }) => void;
79
+ /**
80
+ * Обработчик ввода в инпут
81
+ */
82
+ onInputChange?: (event: ChangeEvent<HTMLInputElement>, payload: {
83
+ value: string;
84
+ date: Date;
85
+ }) => void;
86
+ /**
87
+ * Обработчик изменения календаря
88
+ */
89
+ onCalendarChange?: CalendarDesktopProps['onChange'];
90
+ /**
91
+ * Обработчик открытия календаря
92
+ */
93
+ onCalendarOpen?: () => void;
94
+ /**
95
+ * Обработчик закрытия календаря
96
+ */
97
+ onCalendarClose?: () => void;
98
+ /**
99
+ * Позиционирование поповера с календарем
100
+ */
101
+ popoverPosition?: PopoverProps['position'];
102
+ /**
103
+ * z-index Popover
104
+ */
105
+ zIndexPopover?: PopoverProps['zIndex'];
106
+ /**
107
+ * Календарь будет принимать ширину инпута
108
+ */
109
+ useAnchorWidth?: boolean;
110
+ /**
111
+ * Отображение компонента в мобильном или десктопном виде
112
+ */
113
+ view?: 'desktop' | 'mobile';
114
+ /**
115
+ * Запретить ввод с клавиатуры
116
+ */
117
+ disableUserInput?: boolean;
118
+ };
119
+ export declare const CalendarInput: React.ForwardRefExoticComponent<Omit<DateInputProps, "onChange" | "mobileMode"> & {
120
+ /**
121
+ * Дополнительный класс
122
+ */
123
+ className?: string | undefined;
124
+ /**
125
+ * Дополнительный класс для инпута
126
+ */
127
+ inputClassName?: string | undefined;
128
+ /**
129
+ * Дополнительный класс для поповера
130
+ */
131
+ popoverClassName?: string | undefined;
132
+ /**
133
+ * Доп. пропсы для календаря
134
+ */
135
+ calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | ({
136
+ title?: string | undefined;
137
+ open: boolean;
138
+ onClose?: (() => void) | undefined;
139
+ allowSelectionFromEmptyRange?: boolean | undefined;
140
+ hasHeader?: boolean | undefined;
141
+ onApply?: (() => void) | undefined;
142
+ clickableMonth?: boolean | undefined;
143
+ cancelButtonContent?: string | undefined;
144
+ selectButtonContent?: string | undefined;
145
+ resetButtonContent?: string | undefined;
146
+ } & {
147
+ onMonthTitleClick?: ((event: React.MouseEvent<HTMLSpanElement, globalThis.MouseEvent>) => void) | undefined;
148
+ yearsAmount?: number | undefined;
149
+ scrollableContainer?: HTMLElement | undefined;
150
+ } & Omit<CalendarDesktopProps, ("className" | "dataTestId" | "defaultView" | "selectorView" | "rangeComplete" | "onMonthChange" | "onYearClick" | "onPeriodClick" | "hasHeader" | "responsive" | "showCurrentYearSelector") | ("headerClassName" | "contentClassName")> & Pick<CalendarDesktopProps, "className" | "dataTestId" | "defaultView" | "selectorView" | "rangeComplete" | "onMonthChange" | "onYearClick" | "onPeriodClick" | "hasHeader" | "responsive" | "showCurrentYearSelector"> & Pick<import("../../../../modal/src/shared").ModalHeaderProps, "hasBackButton" | "onBack"> & Record<string, unknown>) | undefined;
151
+ /**
152
+ * Значение инпута (используется и для календаря)
153
+ */
154
+ value?: string | undefined;
155
+ /**
156
+ * Начальное значение инпута
157
+ */
158
+ defaultValue?: string | undefined;
159
+ /**
160
+ * Состояние открытия по умолчанию
161
+ */
162
+ defaultOpen?: boolean | undefined;
163
+ /**
164
+ * Месяц в календаре по умолчанию (timestamp)
165
+ */
166
+ defaultMonth?: number | undefined;
167
+ /**
168
+ * Минимальная дата, доступная для выбора (timestamp)
169
+ */
170
+ minDate?: number | undefined;
171
+ /**
172
+ * Максимальная дата, доступная для выбора (timestamp)
173
+ */
174
+ maxDate?: number | undefined;
175
+ /**
176
+ * Список событий
177
+ */
178
+ events?: (number | Date)[] | undefined;
179
+ /**
180
+ * Список выходных
181
+ */
182
+ offDays?: (number | Date)[] | undefined;
183
+ /**
184
+ * Определяет, как рендерить календарь — в поповере или снизу инпута
185
+ */
186
+ calendarPosition?: "static" | "popover" | undefined;
187
+ /**
188
+ * Запрещает поповеру менять свою позицию.
189
+ * Например, если места снизу недостаточно,то он все равно будет показан снизу
190
+ */
191
+ preventFlip?: boolean | undefined;
192
+ /**
193
+ * Управление нативным режимом на мобильных устройствах
194
+ */
195
+ mobileMode?: "input" | "popover" | "native" | undefined;
196
+ /**
197
+ * Компонент календаря
198
+ */
199
+ Calendar?: React.ElementType<any> | undefined;
200
+ /**
201
+ * Обработчик изменения значения
202
+ */
203
+ onChange?: ((event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLButtonElement> | null, payload: {
204
+ date: Date;
205
+ value: string;
206
+ }) => void) | undefined;
207
+ /**
208
+ * Обработчик ввода в инпут
209
+ */
210
+ onInputChange?: ((event: ChangeEvent<HTMLInputElement>, payload: {
211
+ value: string;
212
+ date: Date;
213
+ }) => void) | undefined;
214
+ /**
215
+ * Обработчик изменения календаря
216
+ */
217
+ onCalendarChange?: CalendarDesktopProps['onChange'];
218
+ /**
219
+ * Обработчик открытия календаря
220
+ */
221
+ onCalendarOpen?: (() => void) | undefined;
222
+ /**
223
+ * Обработчик закрытия календаря
224
+ */
225
+ onCalendarClose?: (() => void) | undefined;
226
+ /**
227
+ * Позиционирование поповера с календарем
228
+ */
229
+ popoverPosition?: PopoverProps['position'];
230
+ /**
231
+ * z-index Popover
232
+ */
233
+ zIndexPopover?: PopoverProps['zIndex'];
234
+ /**
235
+ * Календарь будет принимать ширину инпута
236
+ */
237
+ useAnchorWidth?: boolean | undefined;
238
+ /**
239
+ * Отображение компонента в мобильном или десктопном виде
240
+ */
241
+ view?: "mobile" | "desktop" | undefined;
242
+ /**
243
+ * Запретить ввод с клавиатуры
244
+ */
245
+ disableUserInput?: boolean | undefined;
246
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,169 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var mergeRefs = require('react-merge-refs');
8
+ var cn = require('classnames');
9
+ var shared = require('@alfalab/core-components-calendar/dynamic-mixins/shared');
10
+ var dynamicMixins = require('@alfalab/core-components-date-input/dynamic-mixins');
11
+ var dynamicMixins$1 = require('@alfalab/core-components-popover/dynamic-mixins');
12
+ var CalendarMIcon = require('@alfalab/icons-glyph/CalendarMIcon');
13
+ var utils = require('../../utils.js');
14
+ var index_module = require('./index.module.css.js');
15
+
16
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
17
+
18
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
19
+ var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
20
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
21
+
22
+ var CalendarInput = React.forwardRef(function (_a, ref) {
23
+ var _b, _c;
24
+ var _d;
25
+ var _e = _a.block, block = _e === void 0 ? false : _e, className = _a.className, inputClassName = _a.inputClassName, popoverClassName = _a.popoverClassName, _f = _a.defaultOpen, defaultOpen = _f === void 0 ? false : _f, defaultMonth = _a.defaultMonth, _g = _a.defaultValue, defaultValue = _g === void 0 ? '' : _g, _h = _a.calendarPosition, calendarPosition = _h === void 0 ? 'popover' : _h, value = _a.value, dataTestId = _a.dataTestId, _j = _a.calendarProps, calendarProps = _j === void 0 ? {} : _j, _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, preventFlip = _a.preventFlip, _p = _a.mobileMode, mobileMode = _p === void 0 ? 'popover' : _p, _q = _a.wrapperRef, wrapperRef = _q === void 0 ? null : _q, disabled = _a.disabled, _r = _a.onChange, onChange = _r === void 0 ? function () { return null; } : _r, onInputChange = _a.onInputChange, onCalendarChange = _a.onCalendarChange, onCalendarOpen = _a.onCalendarOpen, onCalendarClose = _a.onCalendarClose, onKeyDown = _a.onKeyDown, readOnly = _a.readOnly, _s = _a.disableUserInput, disableUserInput = _s === void 0 ? false : _s, Calendar = _a.Calendar, _t = _a.popoverPosition, popoverPosition = _t === void 0 ? 'bottom-start' : _t, zIndexPopover = _a.zIndexPopover, useAnchorWidth = _a.useAnchorWidth, rightAddons = _a.rightAddons, error = _a.error, _u = _a.view, view = _u === void 0 ? 'desktop' : _u, restProps = tslib.__rest(_a, ["block", "className", "inputClassName", "popoverClassName", "defaultOpen", "defaultMonth", "defaultValue", "calendarPosition", "value", "dataTestId", "calendarProps", "minDate", "maxDate", "offDays", "events", "preventFlip", "mobileMode", "wrapperRef", "disabled", "onChange", "onInputChange", "onCalendarChange", "onCalendarOpen", "onCalendarClose", "onKeyDown", "readOnly", "disableUserInput", "Calendar", "popoverPosition", "zIndexPopover", "useAnchorWidth", "rightAddons", "error", "view"]);
26
+ var calendarResponsive = (_d = calendarProps === null || calendarProps === void 0 ? void 0 : calendarProps.responsive) !== null && _d !== void 0 ? _d : true;
27
+ var shouldRenderNative = utils.SUPPORTS_INPUT_TYPE_DATE && mobileMode === 'native';
28
+ var shouldRenderOnlyInput = mobileMode === 'input';
29
+ var shouldRenderStatic = calendarPosition === 'static' && !shouldRenderOnlyInput;
30
+ var shouldRenderPopover = calendarPosition === 'popover' && !shouldRenderNative && !shouldRenderOnlyInput;
31
+ var _v = React.useState(false), open = _v[0], setOpen = _v[1];
32
+ var _w = React.useState(value || defaultValue), inputValue = _w[0], setInputValue = _w[1];
33
+ var calendarValue = inputValue ? dynamicMixins.parseDateString(inputValue).getTime() : undefined;
34
+ var checkInputValueIsValid = function (newInputValue) {
35
+ if (!newInputValue)
36
+ return false;
37
+ var dateValue = dynamicMixins.parseDateString(newInputValue).getTime();
38
+ return !!(dateValue &&
39
+ dynamicMixins.isCompleteDateInput(newInputValue) &&
40
+ shared.dateInLimits(dateValue, minDate, maxDate) &&
41
+ !offDays.includes(dateValue));
42
+ };
43
+ var inputDisabled = disabled || readOnly;
44
+ var inputRef = React.useRef(null);
45
+ var inputWrapperRef = React.useRef(null);
46
+ var calendarRef = React.useRef(null);
47
+ var openCalendar = function () {
48
+ setOpen(function (prev) {
49
+ if (!prev)
50
+ onCalendarOpen === null || onCalendarOpen === void 0 ? void 0 : onCalendarOpen();
51
+ return true;
52
+ });
53
+ };
54
+ var closeCalendar = function () {
55
+ setOpen(function (prev) {
56
+ if (prev)
57
+ onCalendarClose === null || onCalendarClose === void 0 ? void 0 : onCalendarClose();
58
+ return false;
59
+ });
60
+ };
61
+ var handleKeyDown = function (event) {
62
+ if (event.target.tagName === 'INPUT' && event.key === 'Enter') {
63
+ if (open) {
64
+ closeCalendar();
65
+ }
66
+ else {
67
+ openCalendar();
68
+ }
69
+ }
70
+ if (event.key === 'Escape') {
71
+ closeCalendar();
72
+ }
73
+ };
74
+ var handleClick = function (event) {
75
+ var _a;
76
+ if (!((_a = inputWrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)))
77
+ return;
78
+ if (!open)
79
+ openCalendar();
80
+ if (view === 'desktop' && inputRef.current) {
81
+ inputRef.current.focus();
82
+ }
83
+ };
84
+ var handleFocus = function (event) {
85
+ var _a;
86
+ if (view === 'desktop') {
87
+ if (!((_a = inputWrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)))
88
+ return;
89
+ openCalendar();
90
+ if (!open && event.target.tagName !== 'INPUT' && calendarRef.current) {
91
+ calendarRef.current.focus();
92
+ }
93
+ }
94
+ };
95
+ var handleBlur = function (event) {
96
+ var _a;
97
+ if (view === 'desktop') {
98
+ var target = (event.relatedTarget || document.activeElement);
99
+ if (inputRef.current !== target &&
100
+ ((_a = calendarRef.current) === null || _a === void 0 ? void 0 : _a.contains(target)) === false) {
101
+ closeCalendar();
102
+ }
103
+ }
104
+ };
105
+ var handleInputKeyDown = function (event) {
106
+ if (['ArrowDown', 'ArrowUp'].includes(event.key) && calendarRef.current) {
107
+ event.preventDefault();
108
+ calendarRef.current.focus();
109
+ }
110
+ if (onKeyDown)
111
+ onKeyDown(event);
112
+ };
113
+ var changeHandler = function (event, newValue, newDate, initiator, shouldChange) {
114
+ if (initiator === void 0) { initiator = 'input'; }
115
+ if (shouldChange === void 0) { shouldChange = true; }
116
+ if (initiator === 'input' && event && onInputChange) {
117
+ onInputChange(event, { value: newValue, date: newDate });
118
+ }
119
+ if (initiator === 'calendar' && onCalendarChange) {
120
+ onCalendarChange(newDate.getTime());
121
+ }
122
+ setInputValue(newValue);
123
+ if (shouldChange) {
124
+ onChange(event, { date: newDate, value: newValue });
125
+ }
126
+ };
127
+ var handleInputChange = function (event, payload) {
128
+ changeHandler(event, payload.value, payload.date, 'input', !payload.value || checkInputValueIsValid(payload.value));
129
+ };
130
+ var handleCalendarChange = function (date) {
131
+ if (date) {
132
+ changeHandler(null, dynamicMixins.formatDate(date), new Date(date), 'calendar');
133
+ }
134
+ if (view === 'desktop') {
135
+ closeCalendar();
136
+ }
137
+ };
138
+ var handleCalendarWrapperMouseDown = function (event) {
139
+ // Не дает инпуту терять фокус при выборе даты
140
+ event.preventDefault();
141
+ };
142
+ React.useEffect(function () {
143
+ setOpen(defaultOpen);
144
+ }, [defaultOpen]);
145
+ React.useEffect(function () {
146
+ if (typeof value !== 'undefined') {
147
+ setInputValue(value);
148
+ }
149
+ }, [value]);
150
+ var renderCalendar = function () { return (
151
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
152
+ React__default.default.createElement("div", { onMouseDown: handleCalendarWrapperMouseDown }, Calendar ? (React__default.default.createElement(Calendar, tslib.__assign({}, calendarProps, { responsive: calendarResponsive, open: open, onClose: closeCalendar, ref: calendarRef, defaultMonth: defaultMonth, value: checkInputValueIsValid(inputValue) ? calendarValue : undefined, onChange: handleCalendarChange, minDate: minDate, maxDate: maxDate, offDays: offDays, events: events }))) : null)); };
153
+ return (
154
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
155
+ React__default.default.createElement("div", { className: cn__default.default(index_module.component, className, (_b = {},
156
+ _b[index_module.block] = block,
157
+ _b)), tabIndex: -1, onKeyDown: inputDisabled ? undefined : handleKeyDown, onClick: inputDisabled ? undefined : handleClick, onFocus: inputDisabled ? undefined : handleFocus, onBlur: handleBlur, "data-test-id": dataTestId },
158
+ React__default.default.createElement(dynamicMixins.DateInput, tslib.__assign({ autoComplete: 'off' }, restProps, { ref: mergeRefs__default.default([inputRef, ref]), wrapperRef: mergeRefs__default.default([wrapperRef, inputWrapperRef]), value: inputValue, defaultValue: defaultValue, disabled: disabled, inputClassName: inputClassName, readOnly: readOnly, mobileMode: mobileMode === 'native' ? 'native' : 'input', error: error, disableUserInput: disableUserInput, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
159
+ rightAddons,
160
+ shouldRenderPopover && (React__default.default.createElement(CalendarMIcon.CalendarMIcon, { className: index_module.calendarIcon }))), rightAddonsProps: { onMouseDown: function (e) { return e.preventDefault(); } }, onKeyDown: handleInputKeyDown, onChange: handleInputChange, block: true })),
161
+ shouldRenderStatic && renderCalendar(),
162
+ shouldRenderPopover &&
163
+ (view === 'desktop' ? (React__default.default.createElement(dynamicMixins$1.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputWrapperRef.current, popperClassName: cn__default.default(index_module.calendarContainer, (_c = {},
164
+ _c[index_module.calendarResponsive] = calendarResponsive,
165
+ _c)), className: popoverClassName, position: popoverPosition, offset: [0, 4], withTransition: false, preventFlip: preventFlip, zIndex: zIndexPopover }, renderCalendar())) : (renderCalendar()))));
166
+ });
167
+
168
+ exports.CalendarInput = CalendarInput;
169
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/calendar-input/Component.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ElementType,\n FocusEvent,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport type { CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';\nimport type { CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';\nimport { dateInLimits } from '@alfalab/core-components-calendar/shared';\nimport {\n DateInput,\n DateInputProps,\n formatDate,\n isCompleteDateInput,\n parseDateString,\n} from '@alfalab/core-components-date-input';\nimport { Popover, PopoverProps } from '@alfalab/core-components-popover';\nimport { CalendarMIcon } from '@alfalab/icons-glyph/CalendarMIcon';\n\nimport { SUPPORTS_INPUT_TYPE_DATE } from '../../utils';\n\nimport styles from './index.module.css';\n\nexport type CalendarInputProps = Omit<DateInputProps, 'onChange' | 'mobileMode'> & {\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 calendarProps?:\n | (CalendarDesktopProps & Record<string, unknown>)\n | (CalendarMobileProps & Record<string, unknown>);\n\n /**\n * Значение инпута (используется и для календаря)\n */\n value?: string;\n\n /**\n * Начальное значение инпута\n */\n defaultValue?: string;\n\n /**\n * Состояние открытия по умолчанию\n */\n defaultOpen?: boolean;\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 calendarPosition?: 'static' | 'popover';\n\n /**\n * Запрещает поповеру менять свою позицию.\n * Например, если места снизу недостаточно,то он все равно будет показан снизу\n */\n preventFlip?: boolean;\n\n /**\n * Управление нативным режимом на мобильных устройствах\n */\n mobileMode?: 'native' | 'popover' | 'input';\n\n /**\n * Компонент календаря\n */\n Calendar?: ElementType;\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLButtonElement> | null,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Обработчик ввода в инпут\n */\n onInputChange?: (\n event: ChangeEvent<HTMLInputElement>,\n payload: { value: string; date: Date },\n ) => void;\n\n /**\n * Обработчик изменения календаря\n */\n onCalendarChange?: CalendarDesktopProps['onChange'];\n\n /**\n * Обработчик открытия календаря\n */\n onCalendarOpen?: () => void;\n\n /**\n * Обработчик закрытия календаря\n */\n onCalendarClose?: () => void;\n\n /**\n * Позиционирование поповера с календарем\n */\n popoverPosition?: PopoverProps['position'];\n\n /**\n * z-index Popover\n */\n zIndexPopover?: PopoverProps['zIndex'];\n\n /**\n * Календарь будет принимать ширину инпута\n */\n useAnchorWidth?: boolean;\n\n /**\n * Отображение компонента в мобильном или десктопном виде\n */\n view?: 'desktop' | 'mobile';\n\n /**\n * Запретить ввод с клавиатуры\n */\n disableUserInput?: boolean;\n};\n\nexport const CalendarInput = forwardRef<HTMLInputElement, CalendarInputProps>(\n (\n {\n block = false,\n className,\n inputClassName,\n popoverClassName,\n defaultOpen = false,\n defaultMonth,\n defaultValue = '',\n calendarPosition = 'popover',\n value,\n dataTestId,\n calendarProps = {},\n minDate = calendarProps.minDate,\n maxDate = calendarProps.maxDate,\n offDays = calendarProps.offDays || [],\n events = calendarProps.events || [],\n preventFlip,\n mobileMode = 'popover',\n wrapperRef = null,\n disabled,\n onChange = () => null,\n onInputChange,\n onCalendarChange,\n onCalendarOpen,\n onCalendarClose,\n onKeyDown,\n readOnly,\n disableUserInput = false,\n Calendar,\n popoverPosition = 'bottom-start',\n zIndexPopover,\n useAnchorWidth,\n rightAddons,\n error,\n view = 'desktop',\n ...restProps\n },\n ref,\n ) => {\n const calendarResponsive = calendarProps?.responsive ?? true;\n const shouldRenderNative = SUPPORTS_INPUT_TYPE_DATE && mobileMode === 'native';\n const shouldRenderOnlyInput = mobileMode === 'input';\n const shouldRenderStatic = calendarPosition === 'static' && !shouldRenderOnlyInput;\n const shouldRenderPopover =\n calendarPosition === 'popover' && !shouldRenderNative && !shouldRenderOnlyInput;\n\n const [open, setOpen] = useState(false);\n\n const [inputValue, setInputValue] = useState(value || defaultValue);\n\n const calendarValue = inputValue ? parseDateString(inputValue).getTime() : undefined;\n\n const checkInputValueIsValid = (newInputValue?: string) => {\n if (!newInputValue) return false;\n\n const dateValue = parseDateString(newInputValue).getTime();\n\n return !!(\n dateValue &&\n isCompleteDateInput(newInputValue) &&\n dateInLimits(dateValue, minDate, maxDate) &&\n !offDays.includes(dateValue)\n );\n };\n\n const inputDisabled = disabled || readOnly;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const openCalendar = () => {\n setOpen((prev) => {\n if (!prev) onCalendarOpen?.();\n\n return true;\n });\n };\n\n const closeCalendar = () => {\n setOpen((prev) => {\n if (prev) onCalendarClose?.();\n\n return false;\n });\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if ((event.target as HTMLElement).tagName === 'INPUT' && event.key === 'Enter') {\n if (open) {\n closeCalendar();\n } else {\n openCalendar();\n }\n }\n\n if (event.key === 'Escape') {\n closeCalendar();\n }\n };\n\n const handleClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!inputWrapperRef.current?.contains(event.target as HTMLElement)) return;\n\n if (!open) openCalendar();\n\n if (view === 'desktop' && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const handleFocus = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n if (!inputWrapperRef.current?.contains(event.target)) return;\n\n openCalendar();\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 inputRef.current !== target &&\n calendarRef.current?.contains(target) === false\n ) {\n closeCalendar();\n }\n }\n };\n\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (['ArrowDown', 'ArrowUp'].includes(event.key) && calendarRef.current) {\n event.preventDefault();\n calendarRef.current.focus();\n }\n\n if (onKeyDown) onKeyDown(event);\n };\n\n const changeHandler = (\n event: ChangeEvent<HTMLInputElement> | null,\n newValue: string,\n newDate: Date,\n initiator: 'input' | 'calendar' = 'input',\n shouldChange = true,\n ) => {\n if (initiator === 'input' && event && onInputChange) {\n onInputChange(event, { value: newValue, date: newDate });\n }\n\n if (initiator === 'calendar' && onCalendarChange) {\n onCalendarChange(newDate.getTime());\n }\n\n setInputValue(newValue);\n\n if (shouldChange) {\n onChange(event, { date: newDate, value: newValue });\n }\n };\n\n const handleInputChange: DateInputProps['onChange'] = (event, payload) => {\n changeHandler(\n event,\n payload.value,\n payload.date,\n 'input',\n !payload.value || checkInputValueIsValid(payload.value),\n );\n };\n\n const handleCalendarChange: CalendarDesktopProps['onChange'] = (date?: number) => {\n if (date) {\n changeHandler(null, formatDate(date), new Date(date), 'calendar');\n }\n\n if (view === 'desktop') {\n closeCalendar();\n }\n };\n\n const handleCalendarWrapperMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n // Не дает инпуту терять фокус при выборе даты\n event.preventDefault();\n };\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useEffect(() => {\n if (typeof value !== 'undefined') {\n setInputValue(value);\n }\n }, [value]);\n\n const renderCalendar = () => (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onMouseDown={handleCalendarWrapperMouseDown}>\n {Calendar ? (\n <Calendar\n {...calendarProps}\n responsive={calendarResponsive}\n open={open}\n onClose={closeCalendar}\n ref={calendarRef}\n defaultMonth={defaultMonth}\n value={checkInputValueIsValid(inputValue) ? calendarValue : undefined}\n onChange={handleCalendarChange}\n minDate={minDate}\n maxDate={maxDate}\n offDays={offDays}\n events={events}\n />\n ) : null}\n </div>\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className={cn(styles.component, className, {\n [styles.block]: block,\n })}\n tabIndex={-1}\n onKeyDown={inputDisabled ? undefined : handleKeyDown}\n onClick={inputDisabled ? undefined : handleClick}\n onFocus={inputDisabled ? undefined : handleFocus}\n onBlur={handleBlur}\n data-test-id={dataTestId}\n >\n <DateInput\n autoComplete='off'\n {...restProps}\n ref={mergeRefs([inputRef, ref])}\n wrapperRef={mergeRefs([wrapperRef, inputWrapperRef])}\n value={inputValue}\n defaultValue={defaultValue}\n disabled={disabled}\n inputClassName={inputClassName}\n readOnly={readOnly}\n mobileMode={mobileMode === 'native' ? 'native' : 'input'}\n error={error}\n disableUserInput={disableUserInput}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n {shouldRenderPopover && (\n <CalendarMIcon className={styles.calendarIcon} />\n )}\n </React.Fragment>\n }\n rightAddonsProps={{ onMouseDown: (e) => e.preventDefault() }}\n onKeyDown={handleInputKeyDown}\n onChange={handleInputChange}\n block={true}\n />\n {shouldRenderStatic && renderCalendar()}\n\n {shouldRenderPopover &&\n (view === 'desktop' ? (\n <Popover\n open={open}\n useAnchorWidth={useAnchorWidth}\n anchorElement={inputWrapperRef.current as HTMLElement}\n popperClassName={cn(styles.calendarContainer, {\n [styles.calendarResponsive]: calendarResponsive,\n })}\n className={popoverClassName}\n position={popoverPosition}\n offset={[0, 4]}\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":["forwardRef","__rest","SUPPORTS_INPUT_TYPE_DATE","useState","parseDateString","isCompleteDateInput","dateInLimits","useRef","formatDate","useEffect","React","__assign","cn","styles","DateInput","mergeRefs","CalendarMIcon","Popover"],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ :root {
2
+ --color-light-neutral-300: #e7e8eb;
3
+ --color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47);
4
+ } :root {
5
+ --border-radius-m: 8px;
6
+ --border-radius-8: var(--border-radius-m);
7
+ } :root {
8
+ --gap-2xs: 4px;
9
+ --gap-0: 0px;
10
+ --gap-4: var(--gap-2xs);
11
+ } :root {
12
+ --calendar-width: 344px;
13
+ } :root {
14
+ --calendar-input-icon-color: var(--color-light-neutral-translucent-700);
15
+ --calendar-input-popover-border-radius: var(--border-radius-8);
16
+ } .calendar-input__component_k1elp {
17
+ display: inline-block;
18
+ outline: none;
19
+ position: relative;
20
+ } .calendar-input__block_k1elp {
21
+ width: 100%;
22
+ } .calendar-input__calendarContainer_k1elp {
23
+ display: inline-block;
24
+ box-sizing: border-box;
25
+ border-radius: var(--calendar-input-popover-border-radius);
26
+ border: 1px solid var(--color-light-neutral-300)
27
+ } @media (max-width: 374px) { .calendar-input__calendarContainer_k1elp {
28
+ width: 100%;
29
+ min-width: 288px
30
+ }
31
+ } .calendar-input__calendarResponsive_k1elp {
32
+ width: var(--calendar-width);
33
+ } .calendar-input__calendarIcon_k1elp {
34
+ width: 24px;
35
+ height: 24px;
36
+ display: block;
37
+ color: var(--calendar-input-icon-color)
38
+ } .calendar-input__calendarIcon_k1elp:not(:only-child) {
39
+ margin-right: var(--gap-4);
40
+ } .calendar-input__nativeInput_k1elp {
41
+ opacity: 0;
42
+ position: absolute;
43
+ top: var(--gap-0);
44
+ left: var(--gap-0);
45
+ width: 100%;
46
+ height: 100%;
47
+ -webkit-appearance: none;
48
+ -moz-appearance: none;
49
+ appearance: none;
50
+ z-index: 1
51
+ } .calendar-input__nativeInput_k1elp::-webkit-calendar-picker-indicator {
52
+ display: none;
53
+ } .calendar-input__nativeInput_k1elp::-webkit-inner-spin-button {
54
+ display: none;
55
+ }
@@ -0,0 +1 @@
1
+ export * from './Component';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.CalendarInput = Component.CalendarInput;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ require('./index.css');
4
+
5
+ var styles = {"component":"calendar-input__component_k1elp","block":"calendar-input__block_k1elp","calendarContainer":"calendar-input__calendarContainer_k1elp","calendarResponsive":"calendar-input__calendarResponsive_k1elp","calendarIcon":"calendar-input__calendarIcon_k1elp"};
6
+
7
+ module.exports = styles;
8
+ //# sourceMappingURL=index.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/calendar-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-input-icon-color: var(--color-light-neutral-translucent-700);\n --calendar-input-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.block {\n width: 100%;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-input-popover-border-radius);\n border: 1px solid var(--color-light-neutral-300);\n\n @media (max-width: 374px) {\n width: 100%;\n min-width: 288px;\n }\n}\n\n.calendarResponsive {\n width: var(--calendar-width);\n}\n\n.calendarIcon {\n width: 24px;\n height: 24px;\n display: block;\n color: var(--calendar-input-icon-color);\n\n &:not(:only-child) {\n margin-right: var(--gap-4);\n }\n}\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,iCAAiC,CAAC,OAAO,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,cAAc,CAAC,oCAAsF,CAAC;;;;"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { CalendarInputProps } from '../components/calendar-input/Component';
3
+ export declare type CalendarInputDesktopProps = Omit<CalendarInputProps, 'view'>;
4
+ /**
5
+ * @deprecated
6
+ * use UniversalDateInput instead
7
+ */
8
+ export declare const CalendarInputDesktop: React.ForwardRefExoticComponent<CalendarInputDesktopProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var desktop = require('@alfalab/core-components-calendar/dynamic-mixins/desktop');
8
+ var Component = require('../components/calendar-input/Component.js');
9
+
10
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
+
14
+ /**
15
+ * @deprecated
16
+ * use UniversalDateInput instead
17
+ */
18
+ var CalendarInputDesktop = React.forwardRef(function (props, ref) { return React__default.default.createElement(Component.CalendarInput, tslib.__assign({ Calendar: desktop.CalendarDesktop }, props, { ref: ref })); });
19
+
20
+ exports.CalendarInputDesktop = CalendarInputDesktop;
21
+ //# sourceMappingURL=Component.desktop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { CalendarDesktop } from '@alfalab/core-components-calendar/desktop';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { DateInputProps } from '@alfalab/core-components-date-input';\n\nimport { CalendarInput, CalendarInputProps } from '../components/calendar-input/Component';\n\nexport type CalendarInputDesktopProps = Omit<CalendarInputProps, 'view'>;\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const CalendarInputDesktop = forwardRef<HTMLInputElement, CalendarInputDesktopProps>(\n (props, ref) => <CalendarInput Calendar={CalendarDesktop} {...props} ref={ref} />,\n);\n"],"names":["forwardRef","React","CalendarInput","__assign","CalendarDesktop"],"mappings":";;;;;;;;;;;;;AAUA;;;AAGG;AACI,IAAM,oBAAoB,GAAGA,gBAAU,CAC1C,UAAC,KAAK,EAAE,GAAG,EAAK,EAAA,OAAAC,sBAAC,CAAA,aAAA,CAAAC,uBAAa,EAACC,cAAA,CAAA,EAAA,QAAQ,EAAEC,uBAAe,EAAM,EAAA,KAAK,EAAE,EAAA,GAAG,EAAE,GAAG,EAAI,CAAA,CAAA,CAAA,EAAA;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Component.desktop';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component_desktop = require('./Component.desktop.js');
6
+
7
+
8
+
9
+ exports.CalendarInputDesktop = Component_desktop.CalendarInputDesktop;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { CalendarInputResponsive as CalendarInput } from './Component.responsive';
2
+ export type { CalendarInputResponsiveProps as CalendarInputProps } from './Component.responsive';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component_responsive = require('./Component.responsive.js');
6
+
7
+
8
+
9
+ exports.CalendarInput = Component_responsive.CalendarInputResponsive;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { CalendarInputProps } from '../components/calendar-input/Component';
3
+ export declare type CalendarInputMobileProps = Omit<CalendarInputProps, 'view'>;
4
+ /**
5
+ * @deprecated
6
+ * use UniversalDateInput instead
7
+ */
8
+ export declare const CalendarInputMobile: React.ForwardRefExoticComponent<CalendarInputMobileProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var mobile = require('@alfalab/core-components-calendar/dynamic-mixins/mobile');
8
+ var Component = require('../components/calendar-input/Component.js');
9
+
10
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
+
14
+ /**
15
+ * @deprecated
16
+ * use UniversalDateInput instead
17
+ */
18
+ var CalendarInputMobile = React.forwardRef(function (props, ref) { return React__default.default.createElement(Component.CalendarInput, tslib.__assign({ Calendar: mobile.CalendarMobile, view: 'mobile' }, props, { ref: ref })); });
19
+
20
+ exports.CalendarInputMobile = CalendarInputMobile;
21
+ //# sourceMappingURL=Component.mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { CalendarMobile } from '@alfalab/core-components-calendar/mobile';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { DateInputProps } from '@alfalab/core-components-date-input';\n\nimport { CalendarInput, CalendarInputProps } from '../components/calendar-input/Component';\n\nexport type CalendarInputMobileProps = Omit<CalendarInputProps, 'view'>;\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const CalendarInputMobile = forwardRef<HTMLInputElement, CalendarInputMobileProps>(\n (props, ref) => <CalendarInput Calendar={CalendarMobile} view='mobile' {...props} ref={ref} />,\n);\n"],"names":["forwardRef","React","CalendarInput","__assign","CalendarMobile"],"mappings":";;;;;;;;;;;;;AAUA;;;AAGG;AACI,IAAM,mBAAmB,GAAGA,gBAAU,CACzC,UAAC,KAAK,EAAE,GAAG,EAAA,EAAK,OAAAC,sBAAA,CAAA,aAAA,CAACC,uBAAa,EAACC,cAAA,CAAA,EAAA,QAAQ,EAAEC,qBAAc,EAAE,IAAI,EAAC,QAAQ,IAAK,KAAK,EAAA,EAAE,GAAG,EAAE,GAAG,EAAA,CAAA,CAAI,CAA9E,EAA8E;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Component.mobile';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Component_mobile = require('./Component.mobile.js');
6
+
7
+
8
+
9
+ exports.CalendarInputMobile = Component_mobile.CalendarInputMobile;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1 @@
1
+ export * from '../utils';
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('../utils.js');
6
+
7
+
8
+
9
+ exports.DATE_FORMAT = utils.DATE_FORMAT;
10
+ exports.DATE_MASK = utils.DATE_MASK;
11
+ exports.IS_BROWSER = utils.IS_BROWSER;
12
+ exports.NATIVE_DATE_FORMAT = utils.NATIVE_DATE_FORMAT;
13
+ exports.SUPPORTS_INPUT_TYPE_DATE = utils.SUPPORTS_INPUT_TYPE_DATE;
14
+ exports.formatDate = utils.formatDate;
15
+ exports.isInputDateSupported = utils.isInputDateSupported;
16
+ exports.isValidInputValue = utils.isValidInputValue;
17
+ exports.parseDateString = utils.parseDateString;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -0,0 +1,12 @@
1
+ export declare const DATE_FORMAT = "dd.MM.yyyy";
2
+ export declare const NATIVE_DATE_FORMAT = "yyyy-MM-dd";
3
+ export declare const DATE_MASK: (string | RegExp)[];
4
+ export declare const IS_BROWSER: boolean;
5
+ export declare const SUPPORTS_INPUT_TYPE_DATE: boolean;
6
+ export declare const formatDate: (date: Date | number, dateFormat?: string) => string;
7
+ export declare const parseDateString: (value: string, dateFormat?: string) => Date;
8
+ /**
9
+ * Возвращает `true`, если поддерживается `input[type="date"]`
10
+ */
11
+ export declare function isInputDateSupported(): boolean;
12
+ export declare const isValidInputValue: (newInputValue: string | undefined, minDate: number | undefined, maxDate: number | undefined, offDays?: Array<number | Date>) => boolean;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var format = require('date-fns/format');
6
+ var isSameDay = require('date-fns/isSameDay');
7
+ var parse = require('date-fns/parse');
8
+ var shared = require('@alfalab/core-components-calendar/dynamic-mixins/shared');
9
+ var dynamicMixins = require('@alfalab/core-components-date-input/dynamic-mixins');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var format__default = /*#__PURE__*/_interopDefaultCompat(format);
14
+ var isSameDay__default = /*#__PURE__*/_interopDefaultCompat(isSameDay);
15
+ var parse__default = /*#__PURE__*/_interopDefaultCompat(parse);
16
+
17
+ var DATE_FORMAT = 'dd.MM.yyyy';
18
+ var NATIVE_DATE_FORMAT = 'yyyy-MM-dd';
19
+ var DATE_MASK = [/\d/, /\d/, '.', /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/];
20
+ var IS_BROWSER = typeof window !== 'undefined';
21
+ var SUPPORTS_INPUT_TYPE_DATE = IS_BROWSER && isInputDateSupported();
22
+ var formatDate = function (date, dateFormat) {
23
+ if (dateFormat === void 0) { dateFormat = DATE_FORMAT; }
24
+ return format__default.default(date, dateFormat);
25
+ };
26
+ var parseDateString = function (value, dateFormat) {
27
+ if (dateFormat === void 0) { dateFormat = DATE_FORMAT; }
28
+ return parse__default.default(value, dateFormat, new Date());
29
+ };
30
+ /**
31
+ * Возвращает `true`, если поддерживается `input[type="date"]`
32
+ */
33
+ function isInputDateSupported() {
34
+ var input = document.createElement('input');
35
+ var value = 'a';
36
+ input.setAttribute('type', 'date');
37
+ input.setAttribute('value', value);
38
+ return input.value !== value;
39
+ }
40
+ var isValidInputValue = function (newInputValue, minDate, maxDate, offDays) {
41
+ if (offDays === void 0) { offDays = []; }
42
+ if (!newInputValue)
43
+ return false;
44
+ var dateValue = parseDateString(newInputValue).getTime();
45
+ return Boolean(dateValue &&
46
+ dynamicMixins.isCompleteDateInput(newInputValue) &&
47
+ shared.dateInLimits(dateValue, minDate, maxDate) &&
48
+ !offDays.some(function (offDay) { return isSameDay__default.default(offDay, dateValue); }));
49
+ };
50
+
51
+ exports.DATE_FORMAT = DATE_FORMAT;
52
+ exports.DATE_MASK = DATE_MASK;
53
+ exports.IS_BROWSER = IS_BROWSER;
54
+ exports.NATIVE_DATE_FORMAT = NATIVE_DATE_FORMAT;
55
+ exports.SUPPORTS_INPUT_TYPE_DATE = SUPPORTS_INPUT_TYPE_DATE;
56
+ exports.formatDate = formatDate;
57
+ exports.isInputDateSupported = isInputDateSupported;
58
+ exports.isValidInputValue = isValidInputValue;
59
+ exports.parseDateString = parseDateString;
60
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import format from 'date-fns/format';\nimport isSameDay from 'date-fns/isSameDay';\nimport parse from 'date-fns/parse';\n\nimport { dateInLimits } from '@alfalab/core-components-calendar/shared';\nimport { isCompleteDateInput } from '@alfalab/core-components-date-input';\n\nexport const DATE_FORMAT = 'dd.MM.yyyy';\nexport const NATIVE_DATE_FORMAT = 'yyyy-MM-dd';\nexport const DATE_MASK = [/\\d/, /\\d/, '.', /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, /\\d/];\nexport const IS_BROWSER = typeof window !== 'undefined';\nexport const SUPPORTS_INPUT_TYPE_DATE = IS_BROWSER && isInputDateSupported();\n\nexport const formatDate = (date: Date | number, dateFormat = DATE_FORMAT) =>\n format(date, dateFormat);\n\nexport const parseDateString = (value: string, dateFormat = DATE_FORMAT) =>\n parse(value, dateFormat, new Date());\n\n/**\n * Возвращает `true`, если поддерживается `input[type=\"date\"]`\n */\nexport function isInputDateSupported() {\n const input = document.createElement('input');\n const value = 'a';\n\n input.setAttribute('type', 'date');\n input.setAttribute('value', value);\n\n return input.value !== value;\n}\n\nexport const isValidInputValue = (\n newInputValue: string | undefined,\n minDate: number | undefined,\n maxDate: number | undefined,\n offDays: Array<number | Date> = [],\n) => {\n if (!newInputValue) return false;\n\n const dateValue = parseDateString(newInputValue).getTime();\n\n return Boolean(\n dateValue &&\n isCompleteDateInput(newInputValue) &&\n dateInLimits(dateValue, minDate, maxDate) &&\n !offDays.some((offDay) => isSameDay(offDay, dateValue)),\n );\n};\n"],"names":["format","parse","isCompleteDateInput","dateInLimits","isSameDay"],"mappings":";;;;;;;;;;;;;;;;AAOO,IAAM,WAAW,GAAG;AACpB,IAAM,kBAAkB,GAAG;AACrB,IAAA,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACrE,UAAU,GAAG,OAAO,MAAM,KAAK;IAC/B,wBAAwB,GAAG,UAAU,IAAI,oBAAoB;AAE7D,IAAA,UAAU,GAAG,UAAC,IAAmB,EAAE,UAAwB,EAAA;AAAxB,IAAA,IAAA,UAAA,KAAA,MAAA,EAAA,EAAA,UAAwB,GAAA,WAAA,CAAA;AACpE,IAAA,OAAAA,uBAAM,CAAC,IAAI,EAAE,UAAU,CAAC;AAAxB;AAES,IAAA,eAAe,GAAG,UAAC,KAAa,EAAE,UAAwB,EAAA;AAAxB,IAAA,IAAA,UAAA,KAAA,MAAA,EAAA,EAAA,UAAwB,GAAA,WAAA,CAAA;IACnE,OAAAC,sBAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;AAApC;AAEJ;;AAEG;SACa,oBAAoB,GAAA;IAChC,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;IAC7C,IAAM,KAAK,GAAG,GAAG;AAEjB,IAAA,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AAClC,IAAA,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AAElC,IAAA,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK;AAChC;AAEa,IAAA,iBAAiB,GAAG,UAC7B,aAAiC,EACjC,OAA2B,EAC3B,OAA2B,EAC3B,OAAkC,EAAA;AAAlC,IAAA,IAAA,OAAA,KAAA,MAAA,EAAA,EAAA,OAAkC,GAAA,EAAA,CAAA;AAElC,IAAA,IAAI,CAAC,aAAa;AAAE,QAAA,OAAO,KAAK;IAEhC,IAAM,SAAS,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;IAE1D,OAAO,OAAO,CACV,SAAS;QACLC,iCAAmB,CAAC,aAAa,CAAC;AAClC,QAAAC,mBAAY,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;AACzC,QAAA,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,IAAK,OAAAC,0BAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAA,CAAC,CAC9D;AACL;;;;;;;;;;;;"}
@@ -13,31 +13,31 @@
13
13
  } :root {
14
14
  --calendar-input-icon-color: var(--color-light-neutral-translucent-700);
15
15
  --calendar-input-popover-border-radius: var(--border-radius-8);
16
- } .calendar-input__component_8xm6h {
16
+ } .calendar-input__component_k1elp {
17
17
  display: inline-block;
18
18
  outline: none;
19
19
  position: relative;
20
- } .calendar-input__block_8xm6h {
20
+ } .calendar-input__block_k1elp {
21
21
  width: 100%;
22
- } .calendar-input__calendarContainer_8xm6h {
22
+ } .calendar-input__calendarContainer_k1elp {
23
23
  display: inline-block;
24
24
  box-sizing: border-box;
25
25
  border-radius: var(--calendar-input-popover-border-radius);
26
26
  border: 1px solid var(--color-light-neutral-300)
27
- } @media (max-width: 374px) { .calendar-input__calendarContainer_8xm6h {
27
+ } @media (max-width: 374px) { .calendar-input__calendarContainer_k1elp {
28
28
  width: 100%;
29
29
  min-width: 288px
30
30
  }
31
- } .calendar-input__calendarResponsive_8xm6h {
31
+ } .calendar-input__calendarResponsive_k1elp {
32
32
  width: var(--calendar-width);
33
- } .calendar-input__calendarIcon_8xm6h {
33
+ } .calendar-input__calendarIcon_k1elp {
34
34
  width: 24px;
35
35
  height: 24px;
36
36
  display: block;
37
37
  color: var(--calendar-input-icon-color)
38
- } .calendar-input__calendarIcon_8xm6h:not(:only-child) {
38
+ } .calendar-input__calendarIcon_k1elp:not(:only-child) {
39
39
  margin-right: var(--gap-4);
40
- } .calendar-input__nativeInput_8xm6h {
40
+ } .calendar-input__nativeInput_k1elp {
41
41
  opacity: 0;
42
42
  position: absolute;
43
43
  top: var(--gap-0);
@@ -48,8 +48,8 @@
48
48
  -moz-appearance: none;
49
49
  appearance: none;
50
50
  z-index: 1
51
- } .calendar-input__nativeInput_8xm6h::-webkit-calendar-picker-indicator {
51
+ } .calendar-input__nativeInput_k1elp::-webkit-calendar-picker-indicator {
52
52
  display: none;
53
- } .calendar-input__nativeInput_8xm6h::-webkit-inner-spin-button {
53
+ } .calendar-input__nativeInput_k1elp::-webkit-inner-spin-button {
54
54
  display: none;
55
55
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"component":"calendar-input__component_8xm6h","block":"calendar-input__block_8xm6h","calendarContainer":"calendar-input__calendarContainer_8xm6h","calendarResponsive":"calendar-input__calendarResponsive_8xm6h","calendarIcon":"calendar-input__calendarIcon_8xm6h"};
3
+ var styles = {"component":"calendar-input__component_k1elp","block":"calendar-input__block_k1elp","calendarContainer":"calendar-input__calendarContainer_k1elp","calendarResponsive":"calendar-input__calendarResponsive_k1elp","calendarIcon":"calendar-input__calendarIcon_k1elp"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/calendar-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-input-icon-color: var(--color-light-neutral-translucent-700);\n --calendar-input-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.block {\n width: 100%;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-input-popover-border-radius);\n border: 1px solid var(--color-light-neutral-300);\n\n @media (max-width: 374px) {\n width: 100%;\n min-width: 288px;\n }\n}\n\n.calendarResponsive {\n width: var(--calendar-width);\n}\n\n.calendarIcon {\n width: 24px;\n height: 24px;\n display: block;\n color: var(--calendar-input-icon-color);\n\n &:not(:only-child) {\n margin-right: var(--gap-4);\n }\n}\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,iCAAiC,CAAC,OAAO,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,cAAc,CAAC,oCAAsF,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/calendar-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-input-icon-color: var(--color-light-neutral-translucent-700);\n --calendar-input-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.block {\n width: 100%;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-input-popover-border-radius);\n border: 1px solid var(--color-light-neutral-300);\n\n @media (max-width: 374px) {\n width: 100%;\n min-width: 288px;\n }\n}\n\n.calendarResponsive {\n width: var(--calendar-width);\n}\n\n.calendarIcon {\n width: 24px;\n height: 24px;\n display: block;\n color: var(--calendar-input-icon-color);\n\n &:not(:only-child) {\n margin-right: var(--gap-4);\n }\n}\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,iCAAiC,CAAC,OAAO,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,cAAc,CAAC,oCAAsF,CAAC;;;;"}
@@ -13,31 +13,31 @@
13
13
  } :root {
14
14
  --calendar-input-icon-color: var(--color-light-neutral-translucent-700);
15
15
  --calendar-input-popover-border-radius: var(--border-radius-8);
16
- } .calendar-input__component_8xm6h {
16
+ } .calendar-input__component_k1elp {
17
17
  display: inline-block;
18
18
  outline: none;
19
19
  position: relative;
20
- } .calendar-input__block_8xm6h {
20
+ } .calendar-input__block_k1elp {
21
21
  width: 100%;
22
- } .calendar-input__calendarContainer_8xm6h {
22
+ } .calendar-input__calendarContainer_k1elp {
23
23
  display: inline-block;
24
24
  box-sizing: border-box;
25
25
  border-radius: var(--calendar-input-popover-border-radius);
26
26
  border: 1px solid var(--color-light-neutral-300)
27
- } @media (max-width: 374px) { .calendar-input__calendarContainer_8xm6h {
27
+ } @media (max-width: 374px) { .calendar-input__calendarContainer_k1elp {
28
28
  width: 100%;
29
29
  min-width: 288px
30
30
  }
31
- } .calendar-input__calendarResponsive_8xm6h {
31
+ } .calendar-input__calendarResponsive_k1elp {
32
32
  width: var(--calendar-width);
33
- } .calendar-input__calendarIcon_8xm6h {
33
+ } .calendar-input__calendarIcon_k1elp {
34
34
  width: 24px;
35
35
  height: 24px;
36
36
  display: block;
37
37
  color: var(--calendar-input-icon-color)
38
- } .calendar-input__calendarIcon_8xm6h:not(:only-child) {
38
+ } .calendar-input__calendarIcon_k1elp:not(:only-child) {
39
39
  margin-right: var(--gap-4);
40
- } .calendar-input__nativeInput_8xm6h {
40
+ } .calendar-input__nativeInput_k1elp {
41
41
  opacity: 0;
42
42
  position: absolute;
43
43
  top: var(--gap-0);
@@ -48,8 +48,8 @@
48
48
  -moz-appearance: none;
49
49
  appearance: none;
50
50
  z-index: 1
51
- } .calendar-input__nativeInput_8xm6h::-webkit-calendar-picker-indicator {
51
+ } .calendar-input__nativeInput_k1elp::-webkit-calendar-picker-indicator {
52
52
  display: none;
53
- } .calendar-input__nativeInput_8xm6h::-webkit-inner-spin-button {
53
+ } .calendar-input__nativeInput_k1elp::-webkit-inner-spin-button {
54
54
  display: none;
55
55
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"calendar-input__component_8xm6h","block":"calendar-input__block_8xm6h","calendarContainer":"calendar-input__calendarContainer_8xm6h","calendarResponsive":"calendar-input__calendarResponsive_8xm6h","calendarIcon":"calendar-input__calendarIcon_8xm6h"};
3
+ const styles = {"component":"calendar-input__component_k1elp","block":"calendar-input__block_k1elp","calendarContainer":"calendar-input__calendarContainer_k1elp","calendarResponsive":"calendar-input__calendarResponsive_k1elp","calendarIcon":"calendar-input__calendarIcon_k1elp"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/calendar-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-input-icon-color: var(--color-light-neutral-translucent-700);\n --calendar-input-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.block {\n width: 100%;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-input-popover-border-radius);\n border: 1px solid var(--color-light-neutral-300);\n\n @media (max-width: 374px) {\n width: 100%;\n min-width: 288px;\n }\n}\n\n.calendarResponsive {\n width: var(--calendar-width);\n}\n\n.calendarIcon {\n width: 24px;\n height: 24px;\n display: block;\n color: var(--calendar-input-icon-color);\n\n &:not(:only-child) {\n margin-right: var(--gap-4);\n }\n}\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,iCAAiC,CAAC,OAAO,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,cAAc,CAAC,oCAAsF,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/calendar-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-input-icon-color: var(--color-light-neutral-translucent-700);\n --calendar-input-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.block {\n width: 100%;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-input-popover-border-radius);\n border: 1px solid var(--color-light-neutral-300);\n\n @media (max-width: 374px) {\n width: 100%;\n min-width: 288px;\n }\n}\n\n.calendarResponsive {\n width: var(--calendar-width);\n}\n\n.calendarIcon {\n width: 24px;\n height: 24px;\n display: block;\n color: var(--calendar-input-icon-color);\n\n &:not(:only-child) {\n margin-right: var(--gap-4);\n }\n}\n\n.nativeInput {\n opacity: 0;\n position: absolute;\n top: var(--gap-0);\n left: var(--gap-0);\n width: 100%;\n height: 100%;\n appearance: none;\n z-index: 1;\n\n &::-webkit-calendar-picker-indicator {\n display: none;\n }\n &::-webkit-inner-spin-button {\n display: none;\n }\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,iCAAiC,CAAC,OAAO,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,oBAAoB,CAAC,0CAA0C,CAAC,cAAc,CAAC,oCAAsF,CAAC;;;;"}
@@ -1,42 +1,52 @@
1
1
  :root {
2
2
  --calendar-width: 344px;
3
3
  }
4
+
4
5
  :root {
5
6
  --calendar-input-icon-color: var(--color-light-neutral-translucent-700);
6
7
  --calendar-input-popover-border-radius: var(--border-radius-8);
7
8
  }
9
+
8
10
  .component {
9
11
  display: inline-block;
10
12
  outline: none;
11
13
  position: relative;
12
14
  }
15
+
13
16
  .block {
14
17
  width: 100%;
15
18
  }
19
+
16
20
  .calendarContainer {
17
21
  display: inline-block;
18
22
  box-sizing: border-box;
19
23
  border-radius: var(--calendar-input-popover-border-radius);
20
24
  border: 1px solid var(--color-light-neutral-300)
21
25
  }
26
+
22
27
  @media (max-width: 374px) {
28
+
23
29
  .calendarContainer {
24
30
  width: 100%;
25
31
  min-width: 288px
26
32
  }
27
33
  }
34
+
28
35
  .calendarResponsive {
29
36
  width: var(--calendar-width);
30
37
  }
38
+
31
39
  .calendarIcon {
32
40
  width: 24px;
33
41
  height: 24px;
34
42
  display: block;
35
43
  color: var(--calendar-input-icon-color)
36
44
  }
45
+
37
46
  .calendarIcon:not(:only-child) {
38
47
  margin-right: var(--gap-4);
39
48
  }
49
+
40
50
  .nativeInput {
41
51
  opacity: 0;
42
52
  position: absolute;
@@ -49,9 +59,11 @@
49
59
  appearance: none;
50
60
  z-index: 1
51
61
  }
62
+
52
63
  .nativeInput::-webkit-calendar-picker-indicator {
53
64
  display: none;
54
65
  }
66
+
55
67
  .nativeInput::-webkit-inner-spin-button {
56
68
  display: none;
57
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-calendar-input",
3
- "version": "11.0.0",
3
+ "version": "11.1.0-snapshot-92b8690",
4
4
  "description": "Calendar input component",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,10 +10,10 @@
10
10
  "main": "index.js",
11
11
  "module": "./esm/index.js",
12
12
  "dependencies": {
13
- "@alfalab/core-components-calendar": "^8.0.0",
14
- "@alfalab/core-components-date-input": "^5.0.0",
15
- "@alfalab/core-components-mq": "^5.0.0",
16
- "@alfalab/core-components-popover": "^7.0.0",
13
+ "@alfalab/core-components-calendar": "8.1.0-snapshot-92b8690",
14
+ "@alfalab/core-components-date-input": "5.1.0-snapshot-92b8690",
15
+ "@alfalab/core-components-mq": "5.1.0-snapshot-92b8690",
16
+ "@alfalab/core-components-popover": "7.1.0-snapshot-92b8690",
17
17
  "@alfalab/icons-glyph": "^2.210.0",
18
18
  "classnames": "^2.5.1",
19
19
  "date-fns": "^2.16.1",
@@ -28,6 +28,6 @@
28
28
  "access": "public",
29
29
  "directory": "dist"
30
30
  },
31
- "themesVersion": "14.0.0",
32
- "varsVersion": "10.0.0"
31
+ "themesVersion": "14.1.0-snapshot-92b8690",
32
+ "varsVersion": "10.1.0-snapshot-92b8690"
33
33
  }
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/index.css';
1
+ @import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';
2
2
  @import '../../../../calendar/src/vars.css';
3
3
 
4
4
  :root {