@gravity-ui/date-components 2.10.2 → 2.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/DateField/hooks/useDateFieldState.js +2 -3
- package/dist/cjs/components/DateField/utils.js +2 -2
- package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js +3 -4
- package/dist/cjs/components/RangeDateField/utils/isValidRange.js +1 -2
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js +1 -1
- package/dist/esm/components/DateField/hooks/useDateFieldState.js +2 -3
- package/dist/esm/components/DateField/utils.js +3 -3
- package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js +3 -4
- package/dist/esm/components/RangeDateField/utils/isValidRange.js +1 -2
- package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js +2 -2
- package/package.json +1 -1
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useDateFieldState = useDateFieldState;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const date_utils_1 = require("@gravity-ui/date-utils");
|
|
9
8
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
10
9
|
const dates_1 = require("../../utils/dates");
|
|
11
10
|
const useDefaultTimeZone_1 = require("../../utils/useDefaultTimeZone");
|
|
@@ -47,7 +46,7 @@ function useDateFieldState(props) {
|
|
|
47
46
|
timeZone,
|
|
48
47
|
}));
|
|
49
48
|
}
|
|
50
|
-
const displayValue = value &&
|
|
49
|
+
const displayValue = value && value.isValid() && (0, utils_1.isAllSegmentsValid)(allSegments, validSegments)
|
|
51
50
|
? value.timeZone(timeZone)
|
|
52
51
|
: placeholderDate.timeZone(timeZone);
|
|
53
52
|
const sectionsState = useSectionsState(sections, displayValue, validSegments);
|
|
@@ -143,7 +142,7 @@ function useDateFieldState(props) {
|
|
|
143
142
|
}
|
|
144
143
|
function setValueFromString(str) {
|
|
145
144
|
const date = (0, utils_1.parseDateFromString)(str, format, timeZone);
|
|
146
|
-
if (
|
|
145
|
+
if (date.isValid()) {
|
|
147
146
|
handleUpdateDate(date);
|
|
148
147
|
return true;
|
|
149
148
|
}
|
|
@@ -492,7 +492,7 @@ function formatSections(sections) {
|
|
|
492
492
|
}
|
|
493
493
|
function parseDate(options) {
|
|
494
494
|
let date = (0, date_utils_1.dateTime)(options);
|
|
495
|
-
if (!
|
|
495
|
+
if (!date.isValid()) {
|
|
496
496
|
date = (0, date_utils_1.dateTime)(Object.assign(Object.assign({}, options), { format: undefined }));
|
|
497
497
|
}
|
|
498
498
|
return date;
|
|
@@ -502,7 +502,7 @@ function isDateStringWithTimeZone(str) {
|
|
|
502
502
|
}
|
|
503
503
|
function parseDateFromString(str, format, timeZone) {
|
|
504
504
|
let date = parseDate({ input: str, format, timeZone });
|
|
505
|
-
if (
|
|
505
|
+
if (date.isValid()) {
|
|
506
506
|
if (timeZone && !isDateStringWithTimeZone(str)) {
|
|
507
507
|
const time = parseDate({ input: str, format });
|
|
508
508
|
date = (0, dates_1.mergeDateTime)(date, time);
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.useRangeDateFieldState = useRangeDateFieldState;
|
|
7
7
|
/* eslint-disable complexity */
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
|
-
const date_utils_1 = require("@gravity-ui/date-utils");
|
|
10
9
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
11
10
|
const DateField_1 = require("../../DateField");
|
|
12
11
|
const utils_1 = require("../../DateField/utils");
|
|
@@ -57,8 +56,8 @@ function useRangeDateFieldState(props) {
|
|
|
57
56
|
}));
|
|
58
57
|
}
|
|
59
58
|
const displayValue = value &&
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
value.start.isValid() &&
|
|
60
|
+
value.end.isValid() &&
|
|
62
61
|
Object.keys(validSegments.start).length >= Object.keys(allSegments).length &&
|
|
63
62
|
Object.keys(validSegments.end).length >= Object.keys(allSegments).length
|
|
64
63
|
? { start: value.start.timeZone(timeZone), end: value.end.timeZone(timeZone) }
|
|
@@ -165,7 +164,7 @@ function useRangeDateFieldState(props) {
|
|
|
165
164
|
const start = (0, utils_1.parseDateFromString)((_a = list === null || list === void 0 ? void 0 : list[0]) === null || _a === void 0 ? void 0 : _a.trim(), format, timeZone);
|
|
166
165
|
const end = (0, utils_1.parseDateFromString)((_b = list === null || list === void 0 ? void 0 : list[1]) === null || _b === void 0 ? void 0 : _b.trim(), format, timeZone);
|
|
167
166
|
const range = { start, end };
|
|
168
|
-
if (
|
|
167
|
+
if (range.start.isValid() && range.end.isValid()) {
|
|
169
168
|
handleUpdateRange(range);
|
|
170
169
|
return true;
|
|
171
170
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isValidRange = isValidRange;
|
|
4
|
-
const date_utils_1 = require("@gravity-ui/date-utils");
|
|
5
4
|
function isValidRange({ start, end }) {
|
|
6
|
-
return
|
|
5
|
+
return start.isValid() && end.isValid() && (start.isSame(end) || start.isBefore(end));
|
|
7
6
|
}
|
|
@@ -21,7 +21,7 @@ function useRelativeDateFieldState(props) {
|
|
|
21
21
|
setText(t);
|
|
22
22
|
if ((0, date_utils_1.isLikeRelative)(t)) {
|
|
23
23
|
const date = (0, date_utils_1.dateTimeParse)(t);
|
|
24
|
-
if (date &&
|
|
24
|
+
if (date && date.isValid()) {
|
|
25
25
|
setValue(t);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { isValid } from '@gravity-ui/date-utils';
|
|
3
2
|
import { useControlledState } from '@gravity-ui/uikit';
|
|
4
3
|
import { createPlaceholderValue, isInvalid } from '../../utils/dates';
|
|
5
4
|
import { useDefaultTimeZone } from '../../utils/useDefaultTimeZone';
|
|
@@ -41,7 +40,7 @@ export function useDateFieldState(props) {
|
|
|
41
40
|
timeZone,
|
|
42
41
|
}));
|
|
43
42
|
}
|
|
44
|
-
const displayValue = value && isValid(
|
|
43
|
+
const displayValue = value && value.isValid() && isAllSegmentsValid(allSegments, validSegments)
|
|
45
44
|
? value.timeZone(timeZone)
|
|
46
45
|
: placeholderDate.timeZone(timeZone);
|
|
47
46
|
const sectionsState = useSectionsState(sections, displayValue, validSegments);
|
|
@@ -137,7 +136,7 @@ export function useDateFieldState(props) {
|
|
|
137
136
|
}
|
|
138
137
|
function setValueFromString(str) {
|
|
139
138
|
const date = parseDateFromString(str, format, timeZone);
|
|
140
|
-
if (isValid(
|
|
139
|
+
if (date.isValid()) {
|
|
141
140
|
handleUpdateDate(date);
|
|
142
141
|
return true;
|
|
143
142
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { dateTime, expandFormat
|
|
2
|
+
import { dateTime, expandFormat } from '@gravity-ui/date-utils';
|
|
3
3
|
import { mergeDateTime } from '../utils/dates';
|
|
4
4
|
import { i18n } from './i18n';
|
|
5
5
|
export const EDITABLE_SEGMENTS = {
|
|
@@ -471,7 +471,7 @@ export function formatSections(sections) {
|
|
|
471
471
|
}
|
|
472
472
|
function parseDate(options) {
|
|
473
473
|
let date = dateTime(options);
|
|
474
|
-
if (!isValid(
|
|
474
|
+
if (!date.isValid()) {
|
|
475
475
|
date = dateTime(Object.assign(Object.assign({}, options), { format: undefined }));
|
|
476
476
|
}
|
|
477
477
|
return date;
|
|
@@ -481,7 +481,7 @@ function isDateStringWithTimeZone(str) {
|
|
|
481
481
|
}
|
|
482
482
|
export function parseDateFromString(str, format, timeZone) {
|
|
483
483
|
let date = parseDate({ input: str, format, timeZone });
|
|
484
|
-
if (isValid(
|
|
484
|
+
if (date.isValid()) {
|
|
485
485
|
if (timeZone && !isDateStringWithTimeZone(str)) {
|
|
486
486
|
const time = parseDate({ input: str, format });
|
|
487
487
|
date = mergeDateTime(date, time);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* eslint-disable complexity */
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { isValid } from '@gravity-ui/date-utils';
|
|
4
3
|
import { useControlledState } from '@gravity-ui/uikit';
|
|
5
4
|
import { useBaseDateFieldState } from '../../DateField';
|
|
6
5
|
import { EDITABLE_SEGMENTS, addSegment, isAllSegmentsValid, parseDateFromString, setSegment, useFormatSections, } from '../../DateField/utils';
|
|
@@ -51,8 +50,8 @@ export function useRangeDateFieldState(props) {
|
|
|
51
50
|
}));
|
|
52
51
|
}
|
|
53
52
|
const displayValue = value &&
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
value.start.isValid() &&
|
|
54
|
+
value.end.isValid() &&
|
|
56
55
|
Object.keys(validSegments.start).length >= Object.keys(allSegments).length &&
|
|
57
56
|
Object.keys(validSegments.end).length >= Object.keys(allSegments).length
|
|
58
57
|
? { start: value.start.timeZone(timeZone), end: value.end.timeZone(timeZone) }
|
|
@@ -159,7 +158,7 @@ export function useRangeDateFieldState(props) {
|
|
|
159
158
|
const start = parseDateFromString((_a = list === null || list === void 0 ? void 0 : list[0]) === null || _a === void 0 ? void 0 : _a.trim(), format, timeZone);
|
|
160
159
|
const end = parseDateFromString((_b = list === null || list === void 0 ? void 0 : list[1]) === null || _b === void 0 ? void 0 : _b.trim(), format, timeZone);
|
|
161
160
|
const range = { start, end };
|
|
162
|
-
if (
|
|
161
|
+
if (range.start.isValid() && range.end.isValid()) {
|
|
163
162
|
handleUpdateRange(range);
|
|
164
163
|
return true;
|
|
165
164
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isValid } from '@gravity-ui/date-utils';
|
|
2
1
|
export function isValidRange({ start, end }) {
|
|
3
|
-
return isValid(
|
|
2
|
+
return start.isValid() && end.isValid() && (start.isSame(end) || start.isBefore(end));
|
|
4
3
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { dateTimeParse, isLikeRelative
|
|
2
|
+
import { dateTimeParse, isLikeRelative } from '@gravity-ui/date-utils';
|
|
3
3
|
import { useControlledState } from '@gravity-ui/uikit';
|
|
4
4
|
export function useRelativeDateFieldState(props) {
|
|
5
5
|
var _a;
|
|
@@ -15,7 +15,7 @@ export function useRelativeDateFieldState(props) {
|
|
|
15
15
|
setText(t);
|
|
16
16
|
if (isLikeRelative(t)) {
|
|
17
17
|
const date = dateTimeParse(t);
|
|
18
|
-
if (date && isValid(
|
|
18
|
+
if (date && date.isValid()) {
|
|
19
19
|
setValue(t);
|
|
20
20
|
}
|
|
21
21
|
else {
|