@alfalab/core-components-date-time-input 5.0.0 → 5.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/date-time-input/index.css +6 -6
  2. package/components/date-time-input/index.module.css.js +1 -1
  3. package/components/date-time-input/index.module.css.js.map +1 -1
  4. package/dynamic-mixins/Component.responsive.d.ts +25 -0
  5. package/dynamic-mixins/Component.responsive.js +22 -0
  6. package/dynamic-mixins/Component.responsive.js.map +1 -0
  7. package/dynamic-mixins/components/date-time-input/Component.d.ts +216 -0
  8. package/dynamic-mixins/components/date-time-input/Component.js +156 -0
  9. package/dynamic-mixins/components/date-time-input/Component.js.map +1 -0
  10. package/dynamic-mixins/components/date-time-input/index.css +33 -0
  11. package/dynamic-mixins/components/date-time-input/index.d.ts +1 -0
  12. package/dynamic-mixins/components/date-time-input/index.js +10 -0
  13. package/dynamic-mixins/components/date-time-input/index.js.map +1 -0
  14. package/dynamic-mixins/components/date-time-input/index.module.css.js +8 -0
  15. package/dynamic-mixins/components/date-time-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 +22 -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 +4 -0
  26. package/dynamic-mixins/mobile/Component.mobile.js +18 -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/utils/format.d.ts +12 -0
  32. package/dynamic-mixins/utils/format.js +160 -0
  33. package/dynamic-mixins/utils/format.js.map +1 -0
  34. package/dynamic-mixins/utils/index.d.ts +1 -0
  35. package/dynamic-mixins/utils/index.js +21 -0
  36. package/dynamic-mixins/utils/index.js.map +1 -0
  37. package/esm/components/date-time-input/index.css +6 -6
  38. package/esm/components/date-time-input/index.module.css.js +1 -1
  39. package/esm/components/date-time-input/index.module.css.js.map +1 -1
  40. package/modern/components/date-time-input/index.css +6 -6
  41. package/modern/components/date-time-input/index.module.css.js +1 -1
  42. package/modern/components/date-time-input/index.module.css.js.map +1 -1
  43. package/moderncssm/components/date-time-input/index.module.css +8 -0
  44. package/package.json +8 -8
  45. package/src/components/date-time-input/index.module.css +1 -1
@@ -10,24 +10,24 @@
10
10
  --calendar-width: 344px;
11
11
  } :root {
12
12
  --calendar-popover-border-radius: var(--border-radius-8);
13
- } .date-time-input__component_j9zca {
13
+ } .date-time-input__component_r3w6m {
14
14
  display: inline-block;
15
15
  outline: none;
16
16
  position: relative;
17
- } .date-time-input__calendarContainer_j9zca {
17
+ } .date-time-input__calendarContainer_r3w6m {
18
18
  display: inline-block;
19
19
  box-sizing: border-box;
20
20
  border-radius: var(--calendar-popover-border-radius);
21
21
  border: 1px solid var(--color-light-neutral-300)
22
- } @media (max-width: 374px) { .date-time-input__calendarContainer_j9zca {
22
+ } @media (max-width: 374px) { .date-time-input__calendarContainer_r3w6m {
23
23
  width: 100%;
24
24
  min-width: 288px
25
25
  }
26
- } .date-time-input__calendarResponsive_j9zca {
26
+ } .date-time-input__calendarResponsive_r3w6m {
27
27
  width: var(--calendar-width);
28
- } .date-time-input__block_j9zca {
28
+ } .date-time-input__block_r3w6m {
29
29
  width: 100%;
30
- } .date-time-input__calendarIcon_j9zca {
30
+ } .date-time-input__calendarIcon_r3w6m {
31
31
  margin-right: var(--gap-12-neg);
32
32
  height: 100%;
33
33
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"date-time-input__component_j9zca","calendarContainer":"date-time-input__calendarContainer_j9zca","calendarResponsive":"date-time-input__calendarResponsive_j9zca","block":"date-time-input__block_j9zca","calendarIcon":"date-time-input__calendarIcon_j9zca"};
5
+ var styles = {"component":"date-time-input__component_r3w6m","calendarContainer":"date-time-input__calendarContainer_r3w6m","calendarResponsive":"date-time-input__calendarResponsive_r3w6m","block":"date-time-input__block_r3w6m","calendarIcon":"date-time-input__calendarIcon_r3w6m"};
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/date-time-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-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.block {\n width: 100%;\n}\n\n.calendarIcon {\n margin-right: var(--gap-12-neg);\n height: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,oBAAoB,CAAC,2CAA2C,CAAC,OAAO,CAAC,8BAA8B,CAAC,cAAc,CAAC,qCAAqC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/date-time-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-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-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.block {\n width: 100%;\n}\n\n.calendarIcon {\n margin-right: var(--gap-12-neg);\n height: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,oBAAoB,CAAC,2CAA2C,CAAC,OAAO,CAAC,8BAA8B,CAAC,cAAc,CAAC,qCAAqC,CAAC;;;;"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { DateTimeInputProps } from './components/date-time-input/Component';
3
+ export declare type DateTimeInputResponsiveProps = Omit<DateTimeInputProps, 'view' | 'InputComponent'> & {
4
+ /**
5
+ * Контрольная точка, с нее начинается desktop версия
6
+ * @default 1024
7
+ */
8
+ breakpoint?: number;
9
+ /**
10
+ * Версия, которая будет использоваться при серверном рендеринге
11
+ */
12
+ client?: 'desktop' | 'mobile';
13
+ };
14
+ export declare type DateTimeInputMedia = 'desktop' | 'mobile';
15
+ export declare const DateTimeInputResponsive: React.ForwardRefExoticComponent<Omit<DateTimeInputProps, "view" | "InputComponent"> & {
16
+ /**
17
+ * Контрольная точка, с нее начинается desktop версия
18
+ * @default 1024
19
+ */
20
+ breakpoint?: number | undefined;
21
+ /**
22
+ * Версия, которая будет использоваться при серверном рендеринге
23
+ */
24
+ client?: "mobile" | "desktop" | undefined;
25
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,22 @@
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
+ var DateTimeInputResponsive = React.forwardRef(function (_a, ref) {
16
+ var breakpoint = _a.breakpoint, client = _a.client, restProps = tslib.__rest(_a, ["breakpoint", "client"]);
17
+ var isDesktop = dynamicMixins.useIsDesktop(breakpoint, client === 'desktop');
18
+ return isDesktop ? (React__default.default.createElement(Component_desktop.DateTimeInputDesktop, tslib.__assign({}, restProps, { ref: ref }))) : (React__default.default.createElement(Component_mobile.DateTimeInputMobile, tslib.__assign({}, restProps, { ref: ref })));
19
+ });
20
+
21
+ exports.DateTimeInputResponsive = DateTimeInputResponsive;
22
+ //# sourceMappingURL=Component.responsive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.responsive.js","sources":["../src/Component.responsive.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { InputProps } from '@alfalab/core-components-input';\nimport { useIsDesktop } from '@alfalab/core-components-mq';\n\nimport { DateTimeInputProps } from './components/date-time-input/Component';\nimport { DateTimeInputDesktop } from './desktop';\nimport { DateTimeInputMobile } from './mobile';\n\nexport type DateTimeInputResponsiveProps = Omit<DateTimeInputProps, 'view' | 'InputComponent'> & {\n /**\n * Контрольная точка, с нее начинается desktop версия\n * @default 1024\n */\n breakpoint?: number;\n\n /**\n * Версия, которая будет использоваться при серверном рендеринге\n */\n client?: 'desktop' | 'mobile';\n};\n\nexport type DateTimeInputMedia = 'desktop' | 'mobile';\n\nexport const DateTimeInputResponsive = forwardRef<HTMLInputElement, DateTimeInputResponsiveProps>(\n ({ breakpoint, client, ...restProps }, ref) => {\n const isDesktop = useIsDesktop(breakpoint, client === 'desktop');\n\n return isDesktop ? (\n <DateTimeInputDesktop {...restProps} ref={ref} />\n ) : (\n <DateTimeInputMobile {...restProps} ref={ref} />\n );\n },\n);\n"],"names":["forwardRef","__rest","useIsDesktop","React","DateTimeInputDesktop","__assign","DateTimeInputMobile"],"mappings":";;;;;;;;;;;;;;IAyBa,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,216 @@
1
+ import React, { ChangeEvent, ElementType } from 'react';
2
+ import type { CalendarDesktopProps } from '@alfalab/core-components-calendar/desktop';
3
+ import type { CalendarMobileProps } from '@alfalab/core-components-calendar/mobile';
4
+ import { InputProps } from '@alfalab/core-components-input';
5
+ import { PopoverProps } from '@alfalab/core-components-popover';
6
+ export declare type DateTimeInputProps = Omit<InputProps, 'onChange'> & {
7
+ /**
8
+ * Дополнительный класс
9
+ */
10
+ className?: string;
11
+ /**
12
+ * Дополнительный класс для инпута
13
+ */
14
+ inputClassName?: string;
15
+ /**
16
+ * Дополнительный класс для поповера
17
+ */
18
+ popoverClassName?: string;
19
+ /**
20
+ * Обработчик изменения значения
21
+ */
22
+ picker?: boolean;
23
+ /**
24
+ * Обработчик изменения значения
25
+ */
26
+ onChange?: (event: ChangeEvent<HTMLInputElement> | null, payload: {
27
+ date: Date;
28
+ value: string;
29
+ }) => void;
30
+ /**
31
+ * Обработчик окончания ввода
32
+ */
33
+ onComplete?: (event: ChangeEvent<HTMLInputElement> | null, payload: {
34
+ date: Date;
35
+ value: string;
36
+ }) => void;
37
+ /**
38
+ * Компонент календаря
39
+ */
40
+ Calendar?: ElementType;
41
+ /**
42
+ * Доп. пропсы для календаря
43
+ */
44
+ calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | (CalendarMobileProps & Record<string, unknown>);
45
+ /**
46
+ * Месяц в календаре по умолчанию (timestamp)
47
+ */
48
+ defaultMonth?: number;
49
+ /**
50
+ * Минимальная дата, доступная для выбора (timestamp)
51
+ */
52
+ minDate?: number;
53
+ /**
54
+ * Максимальная дата, доступная для выбора (timestamp)
55
+ */
56
+ maxDate?: number;
57
+ /**
58
+ * Список событий
59
+ */
60
+ events?: Array<Date | number>;
61
+ /**
62
+ * Список выходных
63
+ */
64
+ offDays?: Array<Date | number>;
65
+ /**
66
+ * Состояние открытия по умолчанию
67
+ */
68
+ defaultOpen?: boolean;
69
+ /**
70
+ * Позиционирование поповера с календарем
71
+ */
72
+ popoverPosition?: PopoverProps['position'];
73
+ /**
74
+ * z-index Popover
75
+ */
76
+ zIndexPopover?: PopoverProps['zIndex'];
77
+ /**
78
+ * Запрещает поповеру менять свою позицию.
79
+ * Например, если места снизу недостаточно,то он все равно будет показан снизу
80
+ */
81
+ preventFlip?: boolean;
82
+ /**
83
+ * Календарь будет принимать ширину инпута
84
+ */
85
+ useAnchorWidth?: boolean;
86
+ /**
87
+ * Растягивает компонент на ширину контейнера
88
+ */
89
+ block?: boolean;
90
+ /**
91
+ * Отображение компонента в мобильном или десктопном виде
92
+ */
93
+ view?: 'desktop' | 'mobile';
94
+ /**
95
+ * Компонент инпута
96
+ */
97
+ InputComponent?: ElementType;
98
+ /**
99
+ * Запретить ввод с клавиатуры
100
+ */
101
+ disableUserInput?: boolean;
102
+ };
103
+ export declare const DateTimeInput: React.ForwardRefExoticComponent<Omit<InputProps, "onChange"> & {
104
+ /**
105
+ * Дополнительный класс
106
+ */
107
+ className?: string | undefined;
108
+ /**
109
+ * Дополнительный класс для инпута
110
+ */
111
+ inputClassName?: string | undefined;
112
+ /**
113
+ * Дополнительный класс для поповера
114
+ */
115
+ popoverClassName?: string | undefined;
116
+ /**
117
+ * Обработчик изменения значения
118
+ */
119
+ picker?: boolean | undefined;
120
+ /**
121
+ * Обработчик изменения значения
122
+ */
123
+ onChange?: ((event: ChangeEvent<HTMLInputElement> | null, payload: {
124
+ date: Date;
125
+ value: string;
126
+ }) => void) | undefined;
127
+ /**
128
+ * Обработчик окончания ввода
129
+ */
130
+ onComplete?: ((event: ChangeEvent<HTMLInputElement> | null, payload: {
131
+ date: Date;
132
+ value: string;
133
+ }) => void) | undefined;
134
+ /**
135
+ * Компонент календаря
136
+ */
137
+ Calendar?: React.ElementType<any> | undefined;
138
+ /**
139
+ * Доп. пропсы для календаря
140
+ */
141
+ calendarProps?: (CalendarDesktopProps & Record<string, unknown>) | ({
142
+ title?: string | undefined;
143
+ open: boolean;
144
+ onClose?: (() => void) | undefined;
145
+ allowSelectionFromEmptyRange?: boolean | undefined;
146
+ hasHeader?: boolean | undefined;
147
+ onApply?: (() => void) | undefined;
148
+ clickableMonth?: boolean | undefined;
149
+ cancelButtonContent?: string | undefined;
150
+ selectButtonContent?: string | undefined;
151
+ resetButtonContent?: string | undefined; /**
152
+ * Доп. пропсы для календаря
153
+ */
154
+ } & {
155
+ onMonthTitleClick?: ((event: React.MouseEvent<HTMLSpanElement, globalThis.MouseEvent>) => void) | undefined;
156
+ yearsAmount?: number | undefined;
157
+ scrollableContainer?: HTMLElement | undefined;
158
+ } & 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;
159
+ /**
160
+ * Месяц в календаре по умолчанию (timestamp)
161
+ */
162
+ defaultMonth?: number | undefined;
163
+ /**
164
+ * Минимальная дата, доступная для выбора (timestamp)
165
+ */
166
+ minDate?: number | undefined;
167
+ /**
168
+ * Максимальная дата, доступная для выбора (timestamp)
169
+ */
170
+ maxDate?: number | undefined;
171
+ /**
172
+ * Список событий
173
+ */
174
+ events?: (number | Date)[] | undefined;
175
+ /**
176
+ * Список выходных
177
+ */
178
+ offDays?: (number | Date)[] | undefined;
179
+ /**
180
+ * Состояние открытия по умолчанию
181
+ */
182
+ defaultOpen?: boolean | undefined;
183
+ /**
184
+ * Позиционирование поповера с календарем
185
+ */
186
+ popoverPosition?: PopoverProps['position'];
187
+ /**
188
+ * z-index Popover
189
+ */
190
+ zIndexPopover?: PopoverProps['zIndex'];
191
+ /**
192
+ * Запрещает поповеру менять свою позицию.
193
+ * Например, если места снизу недостаточно,то он все равно будет показан снизу
194
+ */
195
+ preventFlip?: boolean | undefined;
196
+ /**
197
+ * Календарь будет принимать ширину инпута
198
+ */
199
+ useAnchorWidth?: boolean | undefined;
200
+ /**
201
+ * Растягивает компонент на ширину контейнера
202
+ */
203
+ block?: boolean | undefined;
204
+ /**
205
+ * Отображение компонента в мобильном или десктопном виде
206
+ */
207
+ view?: "mobile" | "desktop" | undefined;
208
+ /**
209
+ * Компонент инпута
210
+ */
211
+ InputComponent?: React.ElementType<any> | undefined;
212
+ /**
213
+ * Запретить ввод с клавиатуры
214
+ */
215
+ disableUserInput?: boolean | undefined;
216
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,156 @@
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-icon-button/dynamic-mixins');
11
+ var dynamicMixins$1 = require('@alfalab/core-components-popover/dynamic-mixins');
12
+ var hooks = require('@alfalab/hooks');
13
+ var CalendarMIcon = require('@alfalab/icons-glyph/CalendarMIcon');
14
+ var format = require('../../utils/format.js');
15
+ var index_module = require('./index.module.css.js');
16
+
17
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
18
+
19
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
20
+ var mergeRefs__default = /*#__PURE__*/_interopDefaultCompat(mergeRefs);
21
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
22
+
23
+ /* eslint-disable no-useless-escape, jsx-a11y/click-events-have-key-events */
24
+ var DateTimeInput = React__default.default.forwardRef(function (_a, ref) {
25
+ var _b, _c;
26
+ var _d;
27
+ 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, 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, error = _a.error, _p = _a.view, view = _p === void 0 ? 'desktop' : _p, restProps = tslib.__rest(_a, ["className", "inputClassName", "popoverClassName", "disabled", "readOnly", "disableUserInput", "picker", "defaultValue", "value", "onChange", "onComplete", "rightAddons", "useAnchorWidth", "block", "popoverPosition", "zIndexPopover", "preventFlip", "InputComponent", "Calendar", "calendarProps", "defaultMonth", "minDate", "maxDate", "offDays", "events", "defaultOpen", "error", "view"]);
28
+ var inputRef = React.useRef(null);
29
+ var calendarRef = React.useRef(null);
30
+ var _q = React.useState(propValue || defaultValue), value = _q[0], setValue = _q[1];
31
+ var _r = React.useState(false), open = _r[0], setOpen = _r[1];
32
+ var calendarValue = value ? format.getDateWithoutTime(value).getTime() : undefined;
33
+ var inputDisabled = disabled || readOnly;
34
+ var calendarResponsive = (_d = calendarProps === null || calendarProps === void 0 ? void 0 : calendarProps.responsive) !== null && _d !== void 0 ? _d : true;
35
+ React.useEffect(function () {
36
+ setOpen(defaultOpen);
37
+ }, [defaultOpen]);
38
+ hooks.useDidUpdateEffect(function () {
39
+ var newPropValue = propValue || '';
40
+ setValue(function (prevValue) { return (prevValue === propValue ? prevValue : newPropValue); });
41
+ }, [propValue]);
42
+ var checkInputValueIsValid = function (newInputValue) {
43
+ if (!newInputValue || error)
44
+ return false;
45
+ var dateValue = format.getDateWithoutTime(newInputValue).getTime();
46
+ return (dateValue &&
47
+ shared.dateInLimits(dateValue, minDate, maxDate) &&
48
+ !offDays.includes(dateValue));
49
+ };
50
+ var setTimeToDate = function () {
51
+ setValue(function (prevValue) {
52
+ var dateWithTime = format.addTimeToDate(prevValue);
53
+ if (dateWithTime !== prevValue && dateWithTime.length === format.DATE_WITH_TIME_LENGTH) {
54
+ onComplete === null || onComplete === void 0 ? void 0 : onComplete(null, {
55
+ date: format.getFullDateTime(dateWithTime),
56
+ value: dateWithTime,
57
+ });
58
+ }
59
+ return dateWithTime;
60
+ });
61
+ };
62
+ var handleInputWrapperFocus = function (event) {
63
+ if (view === 'desktop') {
64
+ if (picker) {
65
+ setOpen(true);
66
+ }
67
+ if (!open && event.target.tagName !== 'INPUT' && calendarRef.current) {
68
+ calendarRef.current.focus();
69
+ }
70
+ }
71
+ };
72
+ var handleBlur = function (event) {
73
+ if (view === 'desktop') {
74
+ var target = (event.relatedTarget || document.activeElement);
75
+ if (calendarRef.current && calendarRef.current.contains(target) === false) {
76
+ setOpen(false);
77
+ setTimeToDate();
78
+ }
79
+ }
80
+ };
81
+ var handleChange = function (event) {
82
+ var newValue = event.target.value;
83
+ if (newValue.length > format.DATE_WITH_TIME_LENGTH)
84
+ return;
85
+ // Позволяем вводить только цифры, точки, запятую, двоеточие и пробел
86
+ if (/[^\d., :]/.test(newValue)) {
87
+ return;
88
+ }
89
+ var dots = newValue.match(/\./g);
90
+ var colon = newValue.match(/:/g);
91
+ var comma = newValue.match(/,/g);
92
+ // Не даем вводить больше, чем 2 точки, 1 двоеточие и 1 запятую
93
+ if ((dots && dots.length > 2) ||
94
+ (colon && colon.length > 1) ||
95
+ (comma && comma.length > 1)) {
96
+ return;
97
+ }
98
+ var formattedValue = format.format(newValue);
99
+ var date = format.getFullDateTime(formattedValue);
100
+ setValue(formattedValue);
101
+ if (onChange)
102
+ onChange(event, { date: date, value: formattedValue });
103
+ if (format.isCompleteDateInput(formattedValue)) {
104
+ var valid = format.isValid(formattedValue);
105
+ if (!valid)
106
+ return;
107
+ if (onComplete) {
108
+ onComplete(event, { date: date, value: formattedValue });
109
+ }
110
+ }
111
+ };
112
+ var handleMobileCalendarClose = function () {
113
+ setOpen(false);
114
+ setTimeToDate();
115
+ };
116
+ var handleClear = function () {
117
+ setValue('');
118
+ };
119
+ var handleCalendarChange = function (date) {
120
+ if (date) {
121
+ var newValue = format.parseTimestampToDate(date);
122
+ setValue(newValue);
123
+ onChange === null || onChange === void 0 ? void 0 : onChange(null, { date: format.getFullDateTime(newValue), value: newValue });
124
+ }
125
+ };
126
+ var handleCalendarWrapperMouseDown = function (event) {
127
+ // Не дает инпуту терять фокус при выборе даты
128
+ event.preventDefault();
129
+ };
130
+ var handleIconButtonClick = function () {
131
+ if (!open)
132
+ setOpen(true);
133
+ if (view === 'desktop' && inputRef.current) {
134
+ inputRef.current.focus();
135
+ }
136
+ };
137
+ var renderCalendar = function () {
138
+ return Calendar ? (
139
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
140
+ React__default.default.createElement("div", { onMouseDown: handleCalendarWrapperMouseDown },
141
+ React__default.default.createElement(Calendar, tslib.__assign({}, calendarProps, { responsive: calendarResponsive, open: open, onClose: handleMobileCalendarClose, ref: calendarRef, defaultMonth: defaultMonth, value: checkInputValueIsValid(value) ? calendarValue : undefined, onChange: handleCalendarChange, minDate: minDate, maxDate: maxDate, offDays: offDays, events: events })))) : null;
142
+ };
143
+ return (React__default.default.createElement("div", { className: cn__default.default(index_module.component, className, (_b = {},
144
+ _b[index_module.block] = block,
145
+ _b)), onFocus: inputDisabled ? undefined : handleInputWrapperFocus, onBlur: handleBlur },
146
+ InputComponent ? (React__default.default.createElement(InputComponent, tslib.__assign({ autoComplete: picker ? 'off' : undefined }, restProps, { block: block, ref: mergeRefs__default.default([ref, inputRef]), value: value, onChange: handleChange, disabled: disabled, readOnly: readOnly, className: inputClassName, onClear: handleClear, disableUserInput: disableUserInput, error: error, rightAddons: React__default.default.createElement(React__default.default.Fragment, null,
147
+ rightAddons,
148
+ picker && (React__default.default.createElement(dynamicMixins.IconButton, { className: index_module.calendarIcon, onClick: inputDisabled ? undefined : handleIconButtonClick, icon: CalendarMIcon.CalendarMIcon, size: 's' }))) }))) : null,
149
+ picker &&
150
+ (view === 'desktop' ? (React__default.default.createElement(dynamicMixins$1.Popover, { open: open, useAnchorWidth: useAnchorWidth, anchorElement: inputRef.current, popperClassName: cn__default.default(index_module.calendarContainer, (_c = {},
151
+ _c[index_module.calendarResponsive] = calendarResponsive,
152
+ _c)), className: popoverClassName, position: popoverPosition, offset: [0, 8], withTransition: false, preventFlip: preventFlip, zIndex: zIndexPopover }, renderCalendar())) : (renderCalendar()))));
153
+ });
154
+
155
+ exports.DateTimeInput = DateTimeInput;
156
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/date-time-input/Component.tsx"],"sourcesContent":["/* eslint-disable no-useless-escape, jsx-a11y/click-events-have-key-events */\n\nimport React, {\n ChangeEvent,\n ElementType,\n FocusEvent,\n MouseEvent,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\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 { IconButton } from '@alfalab/core-components-icon-button';\nimport { InputProps } from '@alfalab/core-components-input';\nimport { Popover, PopoverProps } from '@alfalab/core-components-popover';\nimport { useDidUpdateEffect } from '@alfalab/hooks';\nimport { CalendarMIcon } from '@alfalab/icons-glyph/CalendarMIcon';\n\nimport {\n addTimeToDate,\n DATE_WITH_TIME_LENGTH,\n format,\n getDateWithoutTime,\n getFullDateTime,\n isCompleteDateInput,\n isValid,\n parseTimestampToDate,\n} from '../../utils';\n\nimport styles from './index.module.css';\n\nexport type DateTimeInputProps = Omit<InputProps, 'onChange'> & {\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 picker?: boolean;\n\n /**\n * Обработчик изменения значения\n */\n onChange?: (\n event: ChangeEvent<HTMLInputElement> | null,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Обработчик окончания ввода\n */\n onComplete?: (\n event: ChangeEvent<HTMLInputElement> | null,\n payload: { date: Date; value: string },\n ) => void;\n\n /**\n * Компонент календаря\n */\n Calendar?: ElementType;\n\n /**\n * Доп. пропсы для календаря\n */\n calendarProps?:\n | (CalendarDesktopProps & Record<string, unknown>)\n | (CalendarMobileProps & Record<string, unknown>);\n\n /**\n * Месяц в календаре по умолчанию (timestamp)\n */\n defaultMonth?: number;\n\n /**\n * Минимальная дата, доступная для выбора (timestamp)\n */\n minDate?: number;\n\n /**\n * Максимальная дата, доступная для выбора (timestamp)\n */\n maxDate?: number;\n\n /**\n * Список событий\n */\n events?: Array<Date | number>;\n\n /**\n * Список выходных\n */\n offDays?: Array<Date | number>;\n\n /**\n * Состояние открытия по умолчанию\n */\n defaultOpen?: boolean;\n\n /**\n * Позиционирование поповера с календарем\n */\n popoverPosition?: PopoverProps['position'];\n\n /**\n * z-index Popover\n */\n zIndexPopover?: PopoverProps['zIndex'];\n\n /**\n * Запрещает поповеру менять свою позицию.\n * Например, если места снизу недостаточно,то он все равно будет показан снизу\n */\n preventFlip?: boolean;\n\n /**\n * Календарь будет принимать ширину инпута\n */\n useAnchorWidth?: boolean;\n\n /**\n * Растягивает компонент на ширину контейнера\n */\n block?: boolean;\n\n /**\n * Отображение компонента в мобильном или десктопном виде\n */\n view?: 'desktop' | 'mobile';\n\n /**\n * Компонент инпута\n */\n InputComponent?: ElementType;\n\n /**\n * Запретить ввод с клавиатуры\n */\n disableUserInput?: boolean;\n};\n\nexport const DateTimeInput = React.forwardRef<HTMLInputElement, DateTimeInputProps>(\n (\n {\n className,\n inputClassName,\n popoverClassName,\n disabled,\n readOnly,\n disableUserInput = false,\n picker,\n defaultValue = '',\n value: propValue,\n onChange,\n onComplete,\n rightAddons,\n useAnchorWidth,\n block,\n popoverPosition = 'bottom-start',\n zIndexPopover,\n preventFlip,\n InputComponent,\n Calendar,\n calendarProps = {},\n defaultMonth,\n minDate = calendarProps.minDate,\n maxDate = calendarProps.maxDate,\n offDays = calendarProps.offDays || [],\n events = calendarProps.events || [],\n defaultOpen = false,\n error,\n view = 'desktop',\n ...restProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const [value, setValue] = useState(propValue || defaultValue);\n const [open, setOpen] = useState(false);\n\n const calendarValue = value ? getDateWithoutTime(value).getTime() : undefined;\n\n const inputDisabled = disabled || readOnly;\n\n const calendarResponsive = calendarProps?.responsive ?? true;\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useDidUpdateEffect(() => {\n const newPropValue = propValue || '';\n\n setValue((prevValue) => (prevValue === propValue ? prevValue : newPropValue));\n }, [propValue]);\n\n const checkInputValueIsValid = (newInputValue?: string) => {\n if (!newInputValue || error) return false;\n\n const dateValue = getDateWithoutTime(newInputValue).getTime();\n\n return (\n dateValue &&\n dateInLimits(dateValue, minDate, maxDate) &&\n !offDays.includes(dateValue)\n );\n };\n\n const setTimeToDate = () => {\n setValue((prevValue) => {\n const dateWithTime = addTimeToDate(prevValue);\n\n if (dateWithTime !== prevValue && dateWithTime.length === DATE_WITH_TIME_LENGTH) {\n onComplete?.(null, {\n date: getFullDateTime(dateWithTime),\n value: dateWithTime,\n });\n }\n\n return dateWithTime;\n });\n };\n\n const handleInputWrapperFocus = (event: FocusEvent<HTMLDivElement>) => {\n if (view === 'desktop') {\n if (picker) {\n setOpen(true);\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 (calendarRef.current && calendarRef.current.contains(target) === false) {\n setOpen(false);\n setTimeToDate();\n }\n }\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const { value: newValue } = event.target;\n\n if (newValue.length > DATE_WITH_TIME_LENGTH) return;\n\n // Позволяем вводить только цифры, точки, запятую, двоеточие и пробел\n if (/[^\\d., :]/.test(newValue)) {\n return;\n }\n\n const dots = newValue.match(/\\./g);\n const colon = newValue.match(/:/g);\n const comma = newValue.match(/,/g);\n\n // Не даем вводить больше, чем 2 точки, 1 двоеточие и 1 запятую\n if (\n (dots && dots.length > 2) ||\n (colon && colon.length > 1) ||\n (comma && comma.length > 1)\n ) {\n return;\n }\n\n const formattedValue = format(newValue);\n const date = getFullDateTime(formattedValue);\n\n setValue(formattedValue);\n\n if (onChange) onChange(event, { date, value: formattedValue });\n\n if (isCompleteDateInput(formattedValue)) {\n const valid = isValid(formattedValue);\n\n if (!valid) return;\n\n if (onComplete) {\n onComplete(event, { date, value: formattedValue });\n }\n }\n };\n\n const handleMobileCalendarClose = () => {\n setOpen(false);\n setTimeToDate();\n };\n\n const handleClear = () => {\n setValue('');\n };\n\n const handleCalendarChange = (date?: number) => {\n if (date) {\n const newValue = parseTimestampToDate(date);\n\n setValue(newValue);\n onChange?.(null, { date: getFullDateTime(newValue), value: newValue });\n }\n };\n\n const handleCalendarWrapperMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n // Не дает инпуту терять фокус при выборе даты\n event.preventDefault();\n };\n\n const handleIconButtonClick = () => {\n if (!open) setOpen(true);\n\n if (view === 'desktop' && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n const renderCalendar = () =>\n Calendar ? (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onMouseDown={handleCalendarWrapperMouseDown}>\n <Calendar\n {...calendarProps}\n responsive={calendarResponsive}\n open={open}\n onClose={handleMobileCalendarClose}\n ref={calendarRef}\n defaultMonth={defaultMonth}\n value={checkInputValueIsValid(value) ? calendarValue : undefined}\n onChange={handleCalendarChange}\n minDate={minDate}\n maxDate={maxDate}\n offDays={offDays}\n events={events}\n />\n </div>\n ) : null;\n\n return (\n <div\n className={cn(styles.component, className, {\n [styles.block]: block,\n })}\n onFocus={inputDisabled ? undefined : handleInputWrapperFocus}\n onBlur={handleBlur}\n >\n {InputComponent ? (\n <InputComponent\n autoComplete={picker ? 'off' : undefined}\n {...restProps}\n block={block}\n ref={mergeRefs([ref, inputRef])}\n value={value}\n onChange={handleChange}\n disabled={disabled}\n readOnly={readOnly}\n className={inputClassName}\n onClear={handleClear}\n disableUserInput={disableUserInput}\n error={error}\n rightAddons={\n <React.Fragment>\n {rightAddons}\n {picker && (\n <IconButton\n className={styles.calendarIcon}\n onClick={inputDisabled ? undefined : handleIconButtonClick}\n icon={CalendarMIcon}\n size='s'\n />\n )}\n </React.Fragment>\n }\n />\n ) : null}\n {picker &&\n (view === 'desktop' ? (\n <Popover\n open={open}\n useAnchorWidth={useAnchorWidth}\n anchorElement={inputRef.current as HTMLElement}\n popperClassName={cn(styles.calendarContainer, {\n [styles.calendarResponsive]: calendarResponsive,\n })}\n className={popoverClassName}\n position={popoverPosition}\n offset={[0, 8]}\n withTransition={false}\n preventFlip={preventFlip}\n zIndex={zIndexPopover}\n >\n {renderCalendar()}\n </Popover>\n ) : (\n renderCalendar()\n ))}\n </div>\n );\n },\n);\n"],"names":["React","__rest","useRef","useState","getDateWithoutTime","useEffect","useDidUpdateEffect","dateInLimits","addTimeToDate","DATE_WITH_TIME_LENGTH","getFullDateTime","format","isCompleteDateInput","isValid","parseTimestampToDate","__assign","cn","styles","mergeRefs","IconButton","CalendarMIcon","Popover"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ :root {
2
+ --color-light-neutral-300: #e7e8eb;
3
+ } :root {
4
+ --border-radius-m: 8px;
5
+ --border-radius-8: var(--border-radius-m);
6
+ } :root {
7
+ --gap-s-neg: -12px;
8
+ --gap-12-neg: var(--gap-s-neg);
9
+ } :root {
10
+ --calendar-width: 344px;
11
+ } :root {
12
+ --calendar-popover-border-radius: var(--border-radius-8);
13
+ } .date-time-input__component_r3w6m {
14
+ display: inline-block;
15
+ outline: none;
16
+ position: relative;
17
+ } .date-time-input__calendarContainer_r3w6m {
18
+ display: inline-block;
19
+ box-sizing: border-box;
20
+ border-radius: var(--calendar-popover-border-radius);
21
+ border: 1px solid var(--color-light-neutral-300)
22
+ } @media (max-width: 374px) { .date-time-input__calendarContainer_r3w6m {
23
+ width: 100%;
24
+ min-width: 288px
25
+ }
26
+ } .date-time-input__calendarResponsive_r3w6m {
27
+ width: var(--calendar-width);
28
+ } .date-time-input__block_r3w6m {
29
+ width: 100%;
30
+ } .date-time-input__calendarIcon_r3w6m {
31
+ margin-right: var(--gap-12-neg);
32
+ height: 100%;
33
+ }
@@ -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.DateTimeInput = Component.DateTimeInput;
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":"date-time-input__component_r3w6m","calendarContainer":"date-time-input__calendarContainer_r3w6m","calendarResponsive":"date-time-input__calendarResponsive_r3w6m","block":"date-time-input__block_r3w6m","calendarIcon":"date-time-input__calendarIcon_r3w6m"};
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/date-time-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-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-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.block {\n width: 100%;\n}\n\n.calendarIcon {\n margin-right: var(--gap-12-neg);\n height: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,oBAAoB,CAAC,2CAA2C,CAAC,OAAO,CAAC,8BAA8B,CAAC,cAAc,CAAC,qCAAqC,CAAC;;;;"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { DateTimeInputProps } from '../components/date-time-input/Component';
3
+ export declare type DateTimeInputDesktopProps = Omit<DateTimeInputProps, 'view' | 'InputComponent'>;
4
+ /**
5
+ * @deprecated
6
+ * use UniversalDateInput instead
7
+ */
8
+ export declare const DateTimeInputDesktop: React.ForwardRefExoticComponent<DateTimeInputDesktopProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,22 @@
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$1 = require('@alfalab/core-components-calendar/dynamic-mixins/desktop');
8
+ var desktop = require('@alfalab/core-components-input/dynamic-mixins/desktop');
9
+ var Component = require('../components/date-time-input/Component.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 DateTimeInputDesktop = React.forwardRef(function (props, ref) { return (React__default.default.createElement(Component.DateTimeInput, tslib.__assign({ Calendar: desktop$1.CalendarDesktop, InputComponent: desktop.InputDesktop }, props, { ref: ref }))); });
20
+
21
+ exports.DateTimeInputDesktop = DateTimeInputDesktop;
22
+ //# 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 { InputProps } from '@alfalab/core-components-input';\nimport { InputDesktop } from '@alfalab/core-components-input/desktop';\n\nimport { DateTimeInput, DateTimeInputProps } from '../components/date-time-input/Component';\n\nexport type DateTimeInputDesktopProps = Omit<DateTimeInputProps, 'view' | 'InputComponent'>;\n\n/**\n * @deprecated\n * use UniversalDateInput instead\n */\nexport const DateTimeInputDesktop = forwardRef<HTMLInputElement, DateTimeInputDesktopProps>(\n (props, ref) => (\n <DateTimeInput\n Calendar={CalendarDesktop}\n InputComponent={InputDesktop}\n {...props}\n ref={ref}\n />\n ),\n);\n"],"names":["forwardRef","React","DateTimeInput","__assign","CalendarDesktop","InputDesktop"],"mappings":";;;;;;;;;;;;;;AAWA;;;AAGG;AACI,IAAM,oBAAoB,GAAGA,gBAAU,CAC1C,UAAC,KAAK,EAAE,GAAG,EAAK,EAAA,QACZC,sBAAA,CAAA,aAAA,CAACC,uBAAa,EACVC,cAAA,CAAA,EAAA,QAAQ,EAAEC,yBAAe,EACzB,cAAc,EAAEC,oBAAY,IACxB,KAAK,EAAA,EACT,GAAG,EAAE,GAAG,EACV,CAAA,CAAA,EANU,EAOf;;;;"}
@@ -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.DateTimeInputDesktop = Component_desktop.DateTimeInputDesktop;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { DateTimeInputResponsive as DateTimeInput } from './Component.responsive';
2
+ export type { DateTimeInputResponsiveProps as DateTimeInputProps } 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.DateTimeInput = Component_responsive.DateTimeInputResponsive;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { DateTimeInputProps } from '../components/date-time-input/Component';
3
+ export declare type DateTimeInputMobileProps = Omit<DateTimeInputProps, 'view' | 'InputComponent'>;
4
+ export declare const DateTimeInputMobile: React.ForwardRefExoticComponent<DateTimeInputMobileProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,18 @@
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 mobile$1 = require('@alfalab/core-components-input/dynamic-mixins/mobile');
9
+ var Component = require('../components/date-time-input/Component.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
+ var DateTimeInputMobile = React.forwardRef(function (props, ref) { return (React__default.default.createElement(Component.DateTimeInput, tslib.__assign({ InputComponent: mobile$1.InputMobile, Calendar: mobile.CalendarMobile, view: 'mobile' }, props, { ref: ref }))); });
16
+
17
+ exports.DateTimeInputMobile = DateTimeInputMobile;
18
+ //# 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 { InputProps } from '@alfalab/core-components-input';\nimport { InputMobile } from '@alfalab/core-components-input/mobile';\n\nimport { DateTimeInput, DateTimeInputProps } from '../components/date-time-input/Component';\n\nexport type DateTimeInputMobileProps = Omit<DateTimeInputProps, 'view' | 'InputComponent'>;\n\nexport const DateTimeInputMobile = forwardRef<HTMLInputElement, DateTimeInputMobileProps>(\n (props, ref) => (\n <DateTimeInput\n InputComponent={InputMobile}\n Calendar={CalendarMobile}\n view='mobile'\n {...props}\n ref={ref}\n />\n ),\n);\n"],"names":["forwardRef","React","DateTimeInput","__assign","InputMobile","CalendarMobile"],"mappings":";;;;;;;;;;;;;;AAWa,IAAA,mBAAmB,GAAGA,gBAAU,CACzC,UAAC,KAAK,EAAE,GAAG,IAAK,QACZC,qCAACC,uBAAa,EAAAC,cAAA,CAAA,EACV,cAAc,EAAEC,oBAAW,EAC3B,QAAQ,EAAEC,qBAAc,EACxB,IAAI,EAAC,QAAQ,EACT,EAAA,KAAK,EACT,EAAA,GAAG,EAAE,GAAG,EAAA,CAAA,CACV,EAPU,EAQf;;;;"}
@@ -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.DateTimeInputMobile = Component_mobile.DateTimeInputMobile;
10
+ //# 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 DATE_MASK: (string | RegExp)[];
3
+ export declare const DATE_WITH_TIME_LENGTH: number;
4
+ export declare const isCompleteDateInput: (input: string) => boolean;
5
+ export declare const parseDateString: (value: string, dateFormat?: string) => Date;
6
+ export declare const isValidTimeFormat: (value: string) => boolean;
7
+ export declare const isValid: (inputValue: string) => boolean;
8
+ export declare const format: (value: string) => string;
9
+ export declare const parseTimestampToDate: (timestamp: number) => string;
10
+ export declare const getDateWithoutTime: (value: string) => Date;
11
+ export declare const getFullDateTime: (value: string) => Date;
12
+ export declare const addTimeToDate: (value: string) => string;
@@ -0,0 +1,160 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var dateFnsIsValid = require('date-fns/isValid');
6
+ var parse = require('date-fns/parse');
7
+
8
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
9
+
10
+ var dateFnsIsValid__default = /*#__PURE__*/_interopDefaultCompat(dateFnsIsValid);
11
+ var parse__default = /*#__PURE__*/_interopDefaultCompat(parse);
12
+
13
+ /* eslint-disable no-useless-escape */
14
+ var DATE_FORMAT = 'dd.MM.yyyy';
15
+ var DATE_MASK = [
16
+ /\d/,
17
+ /\d/,
18
+ '.',
19
+ /\d/,
20
+ /\d/,
21
+ '.',
22
+ /\d/,
23
+ /\d/,
24
+ /\d/,
25
+ /\d/,
26
+ ',',
27
+ ' ',
28
+ /\d/,
29
+ /\d/,
30
+ ':',
31
+ /\d/,
32
+ /\d/,
33
+ ];
34
+ var DATE_WITH_TIME_LENGTH = DATE_MASK.length;
35
+ var isCompleteDateInput = function (input) { return input.length === DATE_WITH_TIME_LENGTH; };
36
+ var parseDateString = function (value, dateFormat) {
37
+ if (dateFormat === void 0) { dateFormat = DATE_FORMAT; }
38
+ return parse__default.default(value, dateFormat, new Date());
39
+ };
40
+ var isValidTimeFormat = function (value) {
41
+ var timeArr = value.split(':');
42
+ var hours = timeArr[0];
43
+ var mins = timeArr[1];
44
+ if (hours.length !== 2 || Number(hours) > 23) {
45
+ return false;
46
+ }
47
+ if (mins.length !== 2 || Number(mins) > 59) {
48
+ return false;
49
+ }
50
+ return true;
51
+ };
52
+ var isValid = function (inputValue) {
53
+ var inputValueArr = inputValue.split(', ');
54
+ var date = inputValueArr[0];
55
+ var time = inputValueArr[1];
56
+ return (!inputValue ||
57
+ (isCompleteDateInput(inputValue) &&
58
+ dateFnsIsValid__default.default(parseDateString(date)) &&
59
+ isValidTimeFormat(time)));
60
+ };
61
+ var format = function (value) {
62
+ return value
63
+ .replace(/^(\d\d)(\d)$/, '$1.$2') // 121 => 12.1
64
+ .replace(/^(\d\d)\.(\d\d)(\d)$/, '$1.$2.$3') // 12.122 => 12.12.2
65
+ .replace(/^(\d\d)\d\.(.*)/, '$1.$2') // 123.12.2005 => 12.12.2005
66
+ .replace(/^(\d\d\.\d\d)\d\.(.*)/, '$1.$2') // 12.123.2005 => 12.12.2005
67
+ .replace(/\.$/, '') // 12. => 12
68
+ .replace(/\ $/, '') // 1 2 => 12
69
+ .replace(/\:$/, '') // 1:2 => 12
70
+ .replace(/^(\d\d)(\d.*)/, '$1.$2') // 1212 => 12.12
71
+ .replace(/^(\d\d.\d\d)(\d.*)/, '$1.$2') // 12.122 => 12.12.2
72
+ .replace(/^(\d\d\.\d\d)(\d\d\d\d)/, '$1.$2') // 12.122005 => 12.12.2005
73
+ .replace(/^(\d\d)(\d\d\.\d\d\d\d)/, '$1.$2') // 1212.2005 => 12.12.2005
74
+ .replace(/^(\d\d.\d\d\.\d\d\d\d),/, '$1') // 12.12.2005 => 12.12.2005
75
+ .replace(/^(\d\d.\d\d\.\d\d\d\d)(\d)/, '$1, $2') // 12.12.20050 => 12.12.2005, 0
76
+ .replace(/^(\d\d.\d\d\.\d\d\d\d),(\d.*)/, '$1, $2') // 12.12.2005,00:00 => 12.12.2005, 00:00
77
+ .replace(/^(\d\d.\d\d\.\d\d\d\d) (\d.*)/, '$1, $2') // 12.12.2005 00:00 => 12.12.2005, 00:00
78
+ .replace(/^(\d\d.\d\d\.\d\d\d\d)(\d.*)/, '$1, $2') // 12.12.200500:00=> 12.12.2005, 00:00
79
+ .replace(/^(\d\d.\d\d\.\d\d\d\d), (\d\d):/, '$1, $2') // 12.12.2005, 00: => 12.12.2005, 00
80
+ .replace(/^(\d\d.\d\d\.\d\d\d\d), (\d\d)(\d)/, '$1, $2:$3') // 12.12.2005, 000 => 12.12.2005, 00:0
81
+ .replace(/^(\d\.\d\d\.\d\d\d\d)([0-9]*)/, '$1') // 1.12.2005123123 => 1.12.2005
82
+ .replace(/^(\d\d\.\d\.\d\d\d\d)([0-9]*)/, '$1') // 01.2.20055125125 => 01.2.2005
83
+ .replace(/^(\d)\.(\d\d)([0-9]*)\.(\d\d\d\d)/, '$1.$2.$4') // 1.123123.2005 => 1.12.2005
84
+ .replace(/^(\d\.\d\.\d\d\d\d)([0-9]*)/, '$1') // 1.2.20055125125 => 1.2.2005
85
+ .replace(/^(\d\d)\.()\.(\d\d\d\d)([0-9]*)/, '$1.$2.$3') // 01..2005123123 => 01..2005
86
+ .replace(/^(\d)\.()\.(\d\d\d\d)([0-9]*)/, '$1.$2.$3') // 1..2005123123 => 1..2005
87
+ .replace(/^()\.()\.(\d\d\d\d)([0-9]*)/, '$1.$2.$3') // ..2005123123 => ..2005
88
+ .replace(/^()\.(\d)\.(\d\d\d\d)([0-9]*)/, '$1.$2.$3');
89
+ }; // .2.2005123123 => .2.2005
90
+ var parseTimestampToDate = function (timestamp) {
91
+ var date = new Date(timestamp);
92
+ var year = date.getFullYear();
93
+ var month = date.getMonth() + 1;
94
+ var day = date.getDate();
95
+ if (month < 10) {
96
+ month = "0".concat(month);
97
+ }
98
+ if (day < 10) {
99
+ day = "0".concat(day);
100
+ }
101
+ return "".concat(day, ".").concat(month, ".").concat(year);
102
+ };
103
+ var getDateWithoutTime = function (value) {
104
+ var valueArr = value.split(', ');
105
+ var day;
106
+ var month;
107
+ var year;
108
+ if (valueArr[0]) {
109
+ var date_1 = valueArr[0].split('.');
110
+ day = date_1[0], month = date_1[1], year = date_1[2];
111
+ }
112
+ var date = new Date();
113
+ date.setFullYear(Number(year), Number(month) - 1, Number(day));
114
+ date.setHours(0, 0, 0, 0);
115
+ return date;
116
+ };
117
+ var getFullDateTime = function (value) {
118
+ var valueArr = value.split(', ');
119
+ var day;
120
+ var month;
121
+ var year;
122
+ var hours;
123
+ var mins;
124
+ if (valueArr[0]) {
125
+ var date = valueArr[0].split('.');
126
+ day = date[0], month = date[1], year = date[2];
127
+ }
128
+ if (valueArr[1]) {
129
+ var time = valueArr[1].split(':');
130
+ hours = Number(time[0]);
131
+ mins = Number(time[1]);
132
+ }
133
+ var fullDate = new Date();
134
+ fullDate.setFullYear(Number(year), Number(month) - 1, Number(day));
135
+ fullDate.setHours(Number(hours) || 0);
136
+ fullDate.setMinutes(Number(mins) || 0);
137
+ fullDate.setSeconds(0);
138
+ fullDate.setMilliseconds(0);
139
+ return fullDate;
140
+ };
141
+ var addTimeToDate = function (value) {
142
+ if (value.length === 10 && dateFnsIsValid__default.default(parseDateString(value))) {
143
+ return "".concat(value, ", 00:00");
144
+ }
145
+ return value;
146
+ };
147
+
148
+ exports.DATE_FORMAT = DATE_FORMAT;
149
+ exports.DATE_MASK = DATE_MASK;
150
+ exports.DATE_WITH_TIME_LENGTH = DATE_WITH_TIME_LENGTH;
151
+ exports.addTimeToDate = addTimeToDate;
152
+ exports.format = format;
153
+ exports.getDateWithoutTime = getDateWithoutTime;
154
+ exports.getFullDateTime = getFullDateTime;
155
+ exports.isCompleteDateInput = isCompleteDateInput;
156
+ exports.isValid = isValid;
157
+ exports.isValidTimeFormat = isValidTimeFormat;
158
+ exports.parseDateString = parseDateString;
159
+ exports.parseTimestampToDate = parseTimestampToDate;
160
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sources":["../../src/utils/format.ts"],"sourcesContent":["/* eslint-disable no-useless-escape */\n\nimport dateFnsIsValid from 'date-fns/isValid';\nimport parse from 'date-fns/parse';\n\nexport const DATE_FORMAT = 'dd.MM.yyyy';\nexport const DATE_MASK = [\n /\\d/,\n /\\d/,\n '.',\n /\\d/,\n /\\d/,\n '.',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ',',\n ' ',\n /\\d/,\n /\\d/,\n ':',\n /\\d/,\n /\\d/,\n];\n\nexport const DATE_WITH_TIME_LENGTH = DATE_MASK.length;\nexport const isCompleteDateInput = (input: string) => input.length === DATE_WITH_TIME_LENGTH;\nexport const parseDateString = (value: string, dateFormat = DATE_FORMAT) =>\n parse(value, dateFormat, new Date());\nexport const isValidTimeFormat = (value: string): boolean => {\n const timeArr = value.split(':');\n const hours = timeArr[0];\n const mins = timeArr[1];\n\n if (hours.length !== 2 || Number(hours) > 23) {\n return false;\n }\n\n if (mins.length !== 2 || Number(mins) > 59) {\n return false;\n }\n\n return true;\n};\n\nexport const isValid = (inputValue: string) => {\n const inputValueArr = inputValue.split(', ');\n const date = inputValueArr[0];\n const time = inputValueArr[1];\n\n return (\n !inputValue ||\n (isCompleteDateInput(inputValue) &&\n dateFnsIsValid(parseDateString(date)) &&\n isValidTimeFormat(time))\n );\n};\n\nexport const format = (value: string): string =>\n value\n .replace(/^(\\d\\d)(\\d)$/, '$1.$2') // 121 => 12.1\n .replace(/^(\\d\\d)\\.(\\d\\d)(\\d)$/, '$1.$2.$3') // 12.122 => 12.12.2\n .replace(/^(\\d\\d)\\d\\.(.*)/, '$1.$2') // 123.12.2005 => 12.12.2005\n .replace(/^(\\d\\d\\.\\d\\d)\\d\\.(.*)/, '$1.$2') // 12.123.2005 => 12.12.2005\n .replace(/\\.$/, '') // 12. => 12\n .replace(/\\ $/, '') // 1 2 => 12\n .replace(/\\:$/, '') // 1:2 => 12\n .replace(/^(\\d\\d)(\\d.*)/, '$1.$2') // 1212 => 12.12\n .replace(/^(\\d\\d.\\d\\d)(\\d.*)/, '$1.$2') // 12.122 => 12.12.2\n .replace(/^(\\d\\d\\.\\d\\d)(\\d\\d\\d\\d)/, '$1.$2') // 12.122005 => 12.12.2005\n .replace(/^(\\d\\d)(\\d\\d\\.\\d\\d\\d\\d)/, '$1.$2') // 1212.2005 => 12.12.2005\n .replace(/^(\\d\\d.\\d\\d\\.\\d\\d\\d\\d),/, '$1') // 12.12.2005 => 12.12.2005\n .replace(/^(\\d\\d.\\d\\d\\.\\d\\d\\d\\d)(\\d)/, '$1, $2') // 12.12.20050 => 12.12.2005, 0\n .replace(/^(\\d\\d.\\d\\d\\.\\d\\d\\d\\d),(\\d.*)/, '$1, $2') // 12.12.2005,00:00 => 12.12.2005, 00:00\n .replace(/^(\\d\\d.\\d\\d\\.\\d\\d\\d\\d) (\\d.*)/, '$1, $2') // 12.12.2005 00:00 => 12.12.2005, 00:00\n .replace(/^(\\d\\d.\\d\\d\\.\\d\\d\\d\\d)(\\d.*)/, '$1, $2') // 12.12.200500:00=> 12.12.2005, 00:00\n .replace(/^(\\d\\d.\\d\\d\\.\\d\\d\\d\\d), (\\d\\d):/, '$1, $2') // 12.12.2005, 00: => 12.12.2005, 00\n .replace(/^(\\d\\d.\\d\\d\\.\\d\\d\\d\\d), (\\d\\d)(\\d)/, '$1, $2:$3') // 12.12.2005, 000 => 12.12.2005, 00:0\n .replace(/^(\\d\\.\\d\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 1.12.2005123123 => 1.12.2005\n .replace(/^(\\d\\d\\.\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 01.2.20055125125 => 01.2.2005\n .replace(/^(\\d)\\.(\\d\\d)([0-9]*)\\.(\\d\\d\\d\\d)/, '$1.$2.$4') // 1.123123.2005 => 1.12.2005\n .replace(/^(\\d\\.\\d\\.\\d\\d\\d\\d)([0-9]*)/, '$1') // 1.2.20055125125 => 1.2.2005\n .replace(/^(\\d\\d)\\.()\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3') // 01..2005123123 => 01..2005\n .replace(/^(\\d)\\.()\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3') // 1..2005123123 => 1..2005\n .replace(/^()\\.()\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3') // ..2005123123 => ..2005\n .replace(/^()\\.(\\d)\\.(\\d\\d\\d\\d)([0-9]*)/, '$1.$2.$3'); // .2.2005123123 => .2.2005\n\nexport const parseTimestampToDate = (timestamp: number): string => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n\n let month: number | string = date.getMonth() + 1;\n let day: number | string = date.getDate();\n\n if (month < 10) {\n month = `0${month}`;\n }\n if (day < 10) {\n day = `0${day}`;\n }\n\n return `${day}.${month}.${year}`;\n};\n\nexport const getDateWithoutTime = (value: string): Date => {\n const valueArr = value.split(', ');\n\n let day;\n let month;\n let year;\n\n if (valueArr[0]) {\n const date = valueArr[0].split('.');\n\n [day, month, year] = date;\n }\n\n const date = new Date();\n\n date.setFullYear(Number(year), Number(month) - 1, Number(day));\n date.setHours(0, 0, 0, 0);\n\n return date;\n};\n\nexport const getFullDateTime = (value: string): Date => {\n const valueArr = value.split(', ');\n\n let day;\n let month;\n let year;\n let hours;\n let mins;\n\n if (valueArr[0]) {\n const date = valueArr[0].split('.');\n\n [day, month, year] = date;\n }\n if (valueArr[1]) {\n const time = valueArr[1].split(':');\n\n hours = Number(time[0]);\n mins = Number(time[1]);\n }\n\n const fullDate = new Date();\n\n fullDate.setFullYear(Number(year), Number(month) - 1, Number(day));\n fullDate.setHours(Number(hours) || 0);\n fullDate.setMinutes(Number(mins) || 0);\n fullDate.setSeconds(0);\n fullDate.setMilliseconds(0);\n\n return fullDate;\n};\n\nexport const addTimeToDate = (value: string): string => {\n if (value.length === 10 && dateFnsIsValid(parseDateString(value))) {\n return `${value}, 00:00`;\n }\n\n return value;\n};\n"],"names":["parse","dateFnsIsValid"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './format';
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var format = require('./format.js');
6
+
7
+
8
+
9
+ exports.DATE_FORMAT = format.DATE_FORMAT;
10
+ exports.DATE_MASK = format.DATE_MASK;
11
+ exports.DATE_WITH_TIME_LENGTH = format.DATE_WITH_TIME_LENGTH;
12
+ exports.addTimeToDate = format.addTimeToDate;
13
+ exports.format = format.format;
14
+ exports.getDateWithoutTime = format.getDateWithoutTime;
15
+ exports.getFullDateTime = format.getFullDateTime;
16
+ exports.isCompleteDateInput = format.isCompleteDateInput;
17
+ exports.isValid = format.isValid;
18
+ exports.isValidTimeFormat = format.isValidTimeFormat;
19
+ exports.parseDateString = format.parseDateString;
20
+ exports.parseTimestampToDate = format.parseTimestampToDate;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -10,24 +10,24 @@
10
10
  --calendar-width: 344px;
11
11
  } :root {
12
12
  --calendar-popover-border-radius: var(--border-radius-8);
13
- } .date-time-input__component_j9zca {
13
+ } .date-time-input__component_r3w6m {
14
14
  display: inline-block;
15
15
  outline: none;
16
16
  position: relative;
17
- } .date-time-input__calendarContainer_j9zca {
17
+ } .date-time-input__calendarContainer_r3w6m {
18
18
  display: inline-block;
19
19
  box-sizing: border-box;
20
20
  border-radius: var(--calendar-popover-border-radius);
21
21
  border: 1px solid var(--color-light-neutral-300)
22
- } @media (max-width: 374px) { .date-time-input__calendarContainer_j9zca {
22
+ } @media (max-width: 374px) { .date-time-input__calendarContainer_r3w6m {
23
23
  width: 100%;
24
24
  min-width: 288px
25
25
  }
26
- } .date-time-input__calendarResponsive_j9zca {
26
+ } .date-time-input__calendarResponsive_r3w6m {
27
27
  width: var(--calendar-width);
28
- } .date-time-input__block_j9zca {
28
+ } .date-time-input__block_r3w6m {
29
29
  width: 100%;
30
- } .date-time-input__calendarIcon_j9zca {
30
+ } .date-time-input__calendarIcon_r3w6m {
31
31
  margin-right: var(--gap-12-neg);
32
32
  height: 100%;
33
33
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"component":"date-time-input__component_j9zca","calendarContainer":"date-time-input__calendarContainer_j9zca","calendarResponsive":"date-time-input__calendarResponsive_j9zca","block":"date-time-input__block_j9zca","calendarIcon":"date-time-input__calendarIcon_j9zca"};
3
+ var styles = {"component":"date-time-input__component_r3w6m","calendarContainer":"date-time-input__calendarContainer_r3w6m","calendarResponsive":"date-time-input__calendarResponsive_r3w6m","block":"date-time-input__block_r3w6m","calendarIcon":"date-time-input__calendarIcon_r3w6m"};
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/date-time-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-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.block {\n width: 100%;\n}\n\n.calendarIcon {\n margin-right: var(--gap-12-neg);\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,oBAAoB,CAAC,2CAA2C,CAAC,OAAO,CAAC,8BAA8B,CAAC,cAAc,CAAC,qCAAqC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/date-time-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-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-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.block {\n width: 100%;\n}\n\n.calendarIcon {\n margin-right: var(--gap-12-neg);\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,oBAAoB,CAAC,2CAA2C,CAAC,OAAO,CAAC,8BAA8B,CAAC,cAAc,CAAC,qCAAqC,CAAC;;;;"}
@@ -10,24 +10,24 @@
10
10
  --calendar-width: 344px;
11
11
  } :root {
12
12
  --calendar-popover-border-radius: var(--border-radius-8);
13
- } .date-time-input__component_j9zca {
13
+ } .date-time-input__component_r3w6m {
14
14
  display: inline-block;
15
15
  outline: none;
16
16
  position: relative;
17
- } .date-time-input__calendarContainer_j9zca {
17
+ } .date-time-input__calendarContainer_r3w6m {
18
18
  display: inline-block;
19
19
  box-sizing: border-box;
20
20
  border-radius: var(--calendar-popover-border-radius);
21
21
  border: 1px solid var(--color-light-neutral-300)
22
- } @media (max-width: 374px) { .date-time-input__calendarContainer_j9zca {
22
+ } @media (max-width: 374px) { .date-time-input__calendarContainer_r3w6m {
23
23
  width: 100%;
24
24
  min-width: 288px
25
25
  }
26
- } .date-time-input__calendarResponsive_j9zca {
26
+ } .date-time-input__calendarResponsive_r3w6m {
27
27
  width: var(--calendar-width);
28
- } .date-time-input__block_j9zca {
28
+ } .date-time-input__block_r3w6m {
29
29
  width: 100%;
30
- } .date-time-input__calendarIcon_j9zca {
30
+ } .date-time-input__calendarIcon_r3w6m {
31
31
  margin-right: var(--gap-12-neg);
32
32
  height: 100%;
33
33
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"date-time-input__component_j9zca","calendarContainer":"date-time-input__calendarContainer_j9zca","calendarResponsive":"date-time-input__calendarResponsive_j9zca","block":"date-time-input__block_j9zca","calendarIcon":"date-time-input__calendarIcon_j9zca"};
3
+ const styles = {"component":"date-time-input__component_r3w6m","calendarContainer":"date-time-input__calendarContainer_r3w6m","calendarResponsive":"date-time-input__calendarResponsive_r3w6m","block":"date-time-input__block_r3w6m","calendarIcon":"date-time-input__calendarIcon_r3w6m"};
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/date-time-input/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../../../calendar/src/vars.css';\n\n:root {\n --calendar-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-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.block {\n width: 100%;\n}\n\n.calendarIcon {\n margin-right: var(--gap-12-neg);\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,oBAAoB,CAAC,2CAA2C,CAAC,OAAO,CAAC,8BAA8B,CAAC,cAAc,CAAC,qCAAqC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/date-time-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-popover-border-radius: var(--border-radius-8);\n}\n\n.component {\n display: inline-block;\n outline: none;\n position: relative;\n}\n\n.calendarContainer {\n display: inline-block;\n box-sizing: border-box;\n border-radius: var(--calendar-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.block {\n width: 100%;\n}\n\n.calendarIcon {\n margin-right: var(--gap-12-neg);\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,oBAAoB,CAAC,2CAA2C,CAAC,OAAO,CAAC,8BAA8B,CAAC,cAAc,CAAC,qCAAqC,CAAC;;;;"}
@@ -1,32 +1,40 @@
1
1
  :root {
2
2
  --calendar-width: 344px;
3
3
  }
4
+
4
5
  :root {
5
6
  --calendar-popover-border-radius: var(--border-radius-8);
6
7
  }
8
+
7
9
  .component {
8
10
  display: inline-block;
9
11
  outline: none;
10
12
  position: relative;
11
13
  }
14
+
12
15
  .calendarContainer {
13
16
  display: inline-block;
14
17
  box-sizing: border-box;
15
18
  border-radius: var(--calendar-popover-border-radius);
16
19
  border: 1px solid var(--color-light-neutral-300)
17
20
  }
21
+
18
22
  @media (max-width: 374px) {
23
+
19
24
  .calendarContainer {
20
25
  width: 100%;
21
26
  min-width: 288px
22
27
  }
23
28
  }
29
+
24
30
  .calendarResponsive {
25
31
  width: var(--calendar-width);
26
32
  }
33
+
27
34
  .block {
28
35
  width: 100%;
29
36
  }
37
+
30
38
  .calendarIcon {
31
39
  margin-right: var(--gap-12-neg);
32
40
  height: 100%;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-date-time-input",
3
- "version": "5.0.0",
3
+ "version": "5.1.0-snapshot-92b8690",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,11 +10,11 @@
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-icon-button": "^7.0.0",
15
- "@alfalab/core-components-input": "^16.0.0",
16
- "@alfalab/core-components-mq": "^5.0.0",
17
- "@alfalab/core-components-popover": "^7.0.0",
13
+ "@alfalab/core-components-calendar": "8.1.0-snapshot-92b8690",
14
+ "@alfalab/core-components-icon-button": "7.1.0-snapshot-92b8690",
15
+ "@alfalab/core-components-input": "16.1.0-snapshot-92b8690",
16
+ "@alfalab/core-components-mq": "5.1.0-snapshot-92b8690",
17
+ "@alfalab/core-components-popover": "7.1.0-snapshot-92b8690",
18
18
  "@alfalab/hooks": "^1.13.1",
19
19
  "@alfalab/icons-glyph": "^2.210.0",
20
20
  "classnames": "^2.5.1",
@@ -30,6 +30,6 @@
30
30
  "access": "public",
31
31
  "directory": "dist"
32
32
  },
33
- "themesVersion": "14.0.0",
34
- "varsVersion": "10.0.0"
33
+ "themesVersion": "14.1.0-snapshot-92b8690",
34
+ "varsVersion": "10.1.0-snapshot-92b8690"
35
35
  }
@@ -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 {