@synerise/ds-date-range-picker 2.0.3 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/CLAUDE.md +7 -4
- package/README.md +0 -1
- package/dist/DateRangePicker.types.d.ts +0 -4
- package/dist/Footer/Footer.d.ts +1 -1
- package/dist/Footer/Footer.js +6 -14
- package/dist/Footer/Footer.types.d.ts +0 -4
- package/dist/RangeFilter/constants.js +2 -21
- package/dist/RangePicker/RangePicker.js +32 -53
- package/dist/RangePicker/RangePicker.types.d.ts +0 -2
- package/dist/RangePicker/utils.js +19 -45
- package/dist/RangePickerInput/RangePickerInput.types.d.ts +0 -4
- package/dist/RawDateRangePicker.d.ts +1 -1
- package/dist/RawDateRangePicker.js +10 -11
- package/dist/RelativeRangePicker/RelativeRangePicker.js +2 -21
- package/dist/dateUtils/add.d.ts +1 -7
- package/dist/dateUtils/add.js +8 -14
- package/dist/dateUtils/difference.d.ts +1 -7
- package/dist/dateUtils/difference.js +1 -7
- package/dist/dateUtils/endOf.d.ts +1 -7
- package/dist/dateUtils/endOf.js +8 -14
- package/dist/dateUtils/get.d.ts +1 -3
- package/dist/dateUtils/get.js +4 -6
- package/dist/dateUtils/relativeToAbsolute.js +8 -9
- package/dist/dateUtils/set.d.ts +1 -3
- package/dist/dateUtils/set.js +4 -6
- package/dist/dateUtils/startOf.d.ts +1 -7
- package/dist/dateUtils/startOf.js +8 -14
- package/dist/dateUtils/sub.d.ts +1 -7
- package/dist/dateUtils/sub.js +8 -14
- package/dist/dateUtils/toDateValue.d.ts +16 -0
- package/dist/dateUtils/toDateValue.js +14 -0
- package/dist/fns.d.ts +1 -20
- package/dist/fns.js +21 -40
- package/dist/index.js +2 -21
- package/dist/utils.d.ts +10 -1
- package/dist/utils.js +4 -13
- package/package.json +20 -22
- package/dist/dateUtils/format.d.ts +0 -2
- package/dist/dateUtils/format.js +0 -21
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import fnsStartOfSecond from "date-fns/startOfSecond";
|
|
2
|
+
import { isValid, startOfSecond } from "date-fns";
|
|
4
3
|
import isUndefined from "lodash.isundefined";
|
|
5
4
|
import omitBy from "lodash.omitby";
|
|
6
5
|
import { useState, useEffect, useMemo, useCallback } from "react";
|
|
7
6
|
import { useIntl } from "react-intl";
|
|
8
|
-
import { legacyParse } from "@date-fns/upgrade/v2";
|
|
9
7
|
import AddonCollapse from "./AddonCollapse/AddonCollapse.js";
|
|
10
8
|
import { Container, Separator, Addon, DateRangePickerWrapper } from "./DateRangePicker.styles.js";
|
|
11
9
|
import Footer from "./Footer/Footer.js";
|
|
@@ -16,7 +14,9 @@ import { isLifetime } from "./RelativeRangePicker/Elements/RangeDropdown/RangeDr
|
|
|
16
14
|
import RelativeRangePicker from "./RelativeRangePicker/RelativeRangePicker.js";
|
|
17
15
|
import { MODES, ALL_TIME, RELATIVE, ABSOLUTE, RELATIVE_PRESETS, ABSOLUTE_PRESETS, CUSTOM_RANGE_KEY } from "./constants.js";
|
|
18
16
|
import relativeToAbsolute from "./dateUtils/relativeToAbsolute.js";
|
|
19
|
-
import
|
|
17
|
+
import toDateValue from "./dateUtils/toDateValue.js";
|
|
18
|
+
import { normalizeRange, getDefaultTexts } from "./utils.js";
|
|
19
|
+
import { toIsoString } from "@synerise/ds-core";
|
|
20
20
|
const isRelative = (dateRange) => {
|
|
21
21
|
const isLegacyCustom = Object.keys(dateRange).includes("key") && dateRange.key === void 0;
|
|
22
22
|
return dateRange.key && (RELATIVE_PRESETS.map((preset) => preset.key).includes(dateRange.key) || dateRange.key === CUSTOM_RANGE_KEY) || isLegacyCustom;
|
|
@@ -80,7 +80,6 @@ const RawDateRangePicker = ({
|
|
|
80
80
|
showRelativePicker = true,
|
|
81
81
|
showFilter,
|
|
82
82
|
showTime,
|
|
83
|
-
format,
|
|
84
83
|
valueFormatOptions,
|
|
85
84
|
disabledDate,
|
|
86
85
|
validate = () => ({
|
|
@@ -127,7 +126,7 @@ const RawDateRangePicker = ({
|
|
|
127
126
|
if (!range) {
|
|
128
127
|
return;
|
|
129
128
|
}
|
|
130
|
-
if (range.from && !
|
|
129
|
+
if (range.from && !isValid(range?.from)) {
|
|
131
130
|
return;
|
|
132
131
|
}
|
|
133
132
|
const newValue = normalizeRange({
|
|
@@ -136,10 +135,10 @@ const RawDateRangePicker = ({
|
|
|
136
135
|
});
|
|
137
136
|
if (isTruncateMs) {
|
|
138
137
|
if (newValue.from !== void 0) {
|
|
139
|
-
newValue.from =
|
|
138
|
+
newValue.from = startOfSecond(toDateValue(newValue.from));
|
|
140
139
|
}
|
|
141
140
|
if (newValue.to !== void 0) {
|
|
142
|
-
newValue.to =
|
|
141
|
+
newValue.to = startOfSecond(toDateValue(newValue.to));
|
|
143
142
|
}
|
|
144
143
|
}
|
|
145
144
|
if ((newValue.type === "RELATIVE" || newValue.key === ALL_TIME) && mode === MODES.TIME) {
|
|
@@ -250,13 +249,13 @@ const RawDateRangePicker = ({
|
|
|
250
249
|
const isValidAbsolute = !Object.keys(localValue).includes("key") && Boolean(from && to);
|
|
251
250
|
const isValidRelative = isRelative(localValue) && Boolean(localValue.offset && localValue.duration);
|
|
252
251
|
const isValidSince = localValue.type === "SINCE" && Boolean(localValue.offset && localValue.duration);
|
|
253
|
-
const
|
|
254
|
-
const canSwitchToTimePicker =
|
|
252
|
+
const isValid2 = (isValidAbsolute || isValidRelative || isValidSince || key === ALL_TIME) && validator.valid;
|
|
253
|
+
const canSwitchToTimePicker = isValid2 && !isLifetime(localValue) && (!disableAbsoluteTimepickerInRelative || localValue.type === "ABSOLUTE");
|
|
255
254
|
content = /* @__PURE__ */ jsxs(Container, { className: containerClass, children: [
|
|
256
255
|
/* @__PURE__ */ jsx(RangePicker, { showNowButton, value: normalizeRange(localValue), onChange: handleRangeChange, mode, disabledDate, onSwitchMode: handleSwitchMode, dateOnly: !showTime, canSwitchMode: canSwitchToTimePicker, texts: allTexts, forceAdjacentMonths, intl }),
|
|
257
256
|
addons.length > 0 && /* @__PURE__ */ jsx(Separator, {}),
|
|
258
257
|
addons.map((addon, index) => /* @__PURE__ */ jsx(Addon, { last: addons.length === index + 1, className: "addon-wrapper", children: addon.content }, addon.key)),
|
|
259
|
-
/* @__PURE__ */ jsx(Footer, { canApply:
|
|
258
|
+
/* @__PURE__ */ jsx(Footer, { canApply: isValid2 || isLifetime(localValue), onApply: handleApply, dateOnly: !showTime, mode, canSwitchMode: isValid2, message: !validator.valid ? validator.message : null, onSwitchMode: handleSwitchMode, texts: allTexts, value: fullValue, showTime, valueFormatOptions, ...footerProps })
|
|
260
259
|
] });
|
|
261
260
|
}
|
|
262
261
|
return /* @__PURE__ */ jsx(DateRangePickerWrapper, { "data-testid": "date-range-picker-container", children: content });
|
|
@@ -3,26 +3,7 @@ import React from "react";
|
|
|
3
3
|
import { injectIntl } from "react-intl";
|
|
4
4
|
import { CUSTOM_RANGE_KEY, RANGES_MODE, RELATIVE_UNITS, RELATIVE_PRESETS, ABSOLUTE_PRESETS, RELATIVE_SECTION_BUTTON_KEYS_ORDER, RELATIVE } from "../constants.js";
|
|
5
5
|
import getRelativePresetForRange from "../dateUtils/getRelativePresetForRange.js";
|
|
6
|
-
import "date-fns
|
|
7
|
-
import "date-fns/addHours";
|
|
8
|
-
import "date-fns/addMinutes";
|
|
9
|
-
import "date-fns/addMonths";
|
|
10
|
-
import "date-fns/addSeconds";
|
|
11
|
-
import "date-fns/addWeeks";
|
|
12
|
-
import "date-fns/addYears";
|
|
13
|
-
import "date-fns/endOfDay";
|
|
14
|
-
import "date-fns/endOfMonth";
|
|
15
|
-
import "date-fns/format";
|
|
16
|
-
import "date-fns/getYear";
|
|
17
|
-
import fnsIsAfter from "date-fns/isAfter";
|
|
18
|
-
import "date-fns/isBefore";
|
|
19
|
-
import "date-fns/isSameMonth";
|
|
20
|
-
import "date-fns/isSameYear";
|
|
21
|
-
import "date-fns/setDate";
|
|
22
|
-
import "date-fns/setMonth";
|
|
23
|
-
import "date-fns/setYear";
|
|
24
|
-
import "date-fns/startOfDay";
|
|
25
|
-
import "date-fns/startOfMonth";
|
|
6
|
+
import { isAfter } from "date-fns";
|
|
26
7
|
import { DEFAULT_RANGE, normalizeRange } from "../utils.js";
|
|
27
8
|
import CustomRangeForm from "./Elements/CustomRangeForm/CustomRangeForm.js";
|
|
28
9
|
import RangeButtons from "./Elements/RangeButtons/RangeButtons.js";
|
|
@@ -99,7 +80,7 @@ const _RelativeRangePicker = class _RelativeRangePicker extends React.PureCompon
|
|
|
99
80
|
onChange
|
|
100
81
|
} = this.props;
|
|
101
82
|
const isSince = currentGroup === RANGES_MODE.SINCE;
|
|
102
|
-
const isFuture = isSince ? value.future : value.timestamp &&
|
|
83
|
+
const isFuture = isSince ? value.future : value.timestamp && isAfter(value.timestamp, /* @__PURE__ */ new Date());
|
|
103
84
|
const changes = {
|
|
104
85
|
...setFuture(currentGroup === RANGES_MODE.FUTURE || isFuture, value),
|
|
105
86
|
type: "RELATIVE"
|
package/dist/dateUtils/add.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as fnsAddHours } from 'date-fns/addHours';
|
|
3
|
-
import { default as fnsAddMinutes } from 'date-fns/addMinutes';
|
|
4
|
-
import { default as fnsAddMonths } from 'date-fns/addMonths';
|
|
5
|
-
import { default as fnsAddSeconds } from 'date-fns/addSeconds';
|
|
6
|
-
import { default as fnsAddWeeks } from 'date-fns/addWeeks';
|
|
7
|
-
import { default as fnsAddYears } from 'date-fns/addYears';
|
|
1
|
+
import { addDays as fnsAddDays, addHours as fnsAddHours, addMinutes as fnsAddMinutes, addMonths as fnsAddMonths, addSeconds as fnsAddSeconds, addWeeks as fnsAddWeeks, addYears as fnsAddYears } from 'date-fns';
|
|
8
2
|
declare const _default: {
|
|
9
3
|
HOURS: typeof fnsAddHours;
|
|
10
4
|
MINUTES: typeof fnsAddMinutes;
|
package/dist/dateUtils/add.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fnsAddHours from "date-fns/addHours";
|
|
3
|
-
import fnsAddMinutes from "date-fns/addMinutes";
|
|
4
|
-
import fnsAddMonths from "date-fns/addMonths";
|
|
5
|
-
import fnsAddSeconds from "date-fns/addSeconds";
|
|
6
|
-
import fnsAddWeeks from "date-fns/addWeeks";
|
|
7
|
-
import fnsAddYears from "date-fns/addYears";
|
|
1
|
+
import { addYears, addMonths, addWeeks, addDays, addSeconds, addMinutes, addHours } from "date-fns";
|
|
8
2
|
const ADD = {
|
|
9
|
-
HOURS:
|
|
10
|
-
MINUTES:
|
|
11
|
-
SECONDS:
|
|
12
|
-
DAYS:
|
|
13
|
-
WEEKS:
|
|
14
|
-
MONTHS:
|
|
15
|
-
YEARS:
|
|
3
|
+
HOURS: addHours,
|
|
4
|
+
MINUTES: addMinutes,
|
|
5
|
+
SECONDS: addSeconds,
|
|
6
|
+
DAYS: addDays,
|
|
7
|
+
WEEKS: addWeeks,
|
|
8
|
+
MONTHS: addMonths,
|
|
9
|
+
YEARS: addYears
|
|
16
10
|
};
|
|
17
11
|
export {
|
|
18
12
|
ADD as default
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as differenceInHours } from 'date-fns/differenceInHours';
|
|
3
|
-
import { default as differenceInMinutes } from 'date-fns/differenceInMinutes';
|
|
4
|
-
import { default as differenceInMonths } from 'date-fns/differenceInMonths';
|
|
5
|
-
import { default as differenceInSeconds } from 'date-fns/differenceInSeconds';
|
|
6
|
-
import { default as differenceInWeeks } from 'date-fns/differenceInWeeks';
|
|
7
|
-
import { default as differenceInYears } from 'date-fns/differenceInYears';
|
|
1
|
+
import { differenceInDays, differenceInHours, differenceInMinutes, differenceInMonths, differenceInSeconds, differenceInWeeks, differenceInYears } from 'date-fns';
|
|
8
2
|
declare const _default: {
|
|
9
3
|
HOURS: typeof differenceInHours;
|
|
10
4
|
MINUTES: typeof differenceInMinutes;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import differenceInDays from "date-fns
|
|
2
|
-
import differenceInHours from "date-fns/differenceInHours";
|
|
3
|
-
import differenceInMinutes from "date-fns/differenceInMinutes";
|
|
4
|
-
import differenceInMonths from "date-fns/differenceInMonths";
|
|
5
|
-
import differenceInSeconds from "date-fns/differenceInSeconds";
|
|
6
|
-
import differenceInWeeks from "date-fns/differenceInWeeks";
|
|
7
|
-
import differenceInYears from "date-fns/differenceInYears";
|
|
1
|
+
import { differenceInYears, differenceInMonths, differenceInWeeks, differenceInDays, differenceInSeconds, differenceInMinutes, differenceInHours } from "date-fns";
|
|
8
2
|
const difference = {
|
|
9
3
|
HOURS: differenceInHours,
|
|
10
4
|
MINUTES: differenceInMinutes,
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as fnsEndOfHour } from 'date-fns/endOfHour';
|
|
3
|
-
import { default as fnsEndOfISOWeek } from 'date-fns/endOfISOWeek';
|
|
4
|
-
import { default as fnsEndOfMinute } from 'date-fns/endOfMinute';
|
|
5
|
-
import { default as fnsEndOfMonth } from 'date-fns/endOfMonth';
|
|
6
|
-
import { default as fnsEndOfSecond } from 'date-fns/endOfSecond';
|
|
7
|
-
import { default as fnsEndOfYear } from 'date-fns/endOfYear';
|
|
1
|
+
import { endOfDay as fnsEndOfDay, endOfHour as fnsEndOfHour, endOfISOWeek as fnsEndOfISOWeek, endOfMinute as fnsEndOfMinute, endOfMonth as fnsEndOfMonth, endOfSecond as fnsEndOfSecond, endOfYear as fnsEndOfYear } from 'date-fns';
|
|
8
2
|
declare const _default: {
|
|
9
3
|
HOURS: typeof fnsEndOfHour;
|
|
10
4
|
MINUTES: typeof fnsEndOfMinute;
|
package/dist/dateUtils/endOf.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fnsEndOfHour from "date-fns/endOfHour";
|
|
3
|
-
import fnsEndOfISOWeek from "date-fns/endOfISOWeek";
|
|
4
|
-
import fnsEndOfMinute from "date-fns/endOfMinute";
|
|
5
|
-
import fnsEndOfMonth from "date-fns/endOfMonth";
|
|
6
|
-
import fnsEndOfSecond from "date-fns/endOfSecond";
|
|
7
|
-
import fnsEndOfYear from "date-fns/endOfYear";
|
|
1
|
+
import { endOfYear, endOfMonth, endOfISOWeek, endOfDay, endOfSecond, endOfMinute, endOfHour } from "date-fns";
|
|
8
2
|
const END_OF = {
|
|
9
|
-
HOURS:
|
|
10
|
-
MINUTES:
|
|
11
|
-
SECONDS:
|
|
12
|
-
DAYS:
|
|
13
|
-
WEEKS:
|
|
14
|
-
MONTHS:
|
|
15
|
-
YEARS:
|
|
3
|
+
HOURS: endOfHour,
|
|
4
|
+
MINUTES: endOfMinute,
|
|
5
|
+
SECONDS: endOfSecond,
|
|
6
|
+
DAYS: endOfDay,
|
|
7
|
+
WEEKS: endOfISOWeek,
|
|
8
|
+
MONTHS: endOfMonth,
|
|
9
|
+
YEARS: endOfYear
|
|
16
10
|
};
|
|
17
11
|
export {
|
|
18
12
|
END_OF as default
|
package/dist/dateUtils/get.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as fnsGetMinutes } from 'date-fns/getMinutes';
|
|
3
|
-
import { default as fnsGetSeconds } from 'date-fns/getSeconds';
|
|
1
|
+
import { getHours as fnsGetHours, getMinutes as fnsGetMinutes, getSeconds as fnsGetSeconds } from 'date-fns';
|
|
4
2
|
declare const _default: {
|
|
5
3
|
HOURS: typeof fnsGetHours;
|
|
6
4
|
MINUTES: typeof fnsGetMinutes;
|
package/dist/dateUtils/get.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fnsGetMinutes from "date-fns/getMinutes";
|
|
3
|
-
import fnsGetSeconds from "date-fns/getSeconds";
|
|
1
|
+
import { getSeconds, getMinutes, getHours } from "date-fns";
|
|
4
2
|
const GET = {
|
|
5
|
-
HOURS:
|
|
6
|
-
MINUTES:
|
|
7
|
-
SECONDS:
|
|
3
|
+
HOURS: getHours,
|
|
4
|
+
MINUTES: getMinutes,
|
|
5
|
+
SECONDS: getSeconds
|
|
8
6
|
};
|
|
9
7
|
export {
|
|
10
8
|
GET as default
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fnsMin from "date-fns/min";
|
|
3
|
-
import { legacyParse } from "@date-fns/upgrade/v2";
|
|
1
|
+
import { min, max } from "date-fns";
|
|
4
2
|
import ADD from "./add.js";
|
|
5
3
|
import END_OF from "./endOf.js";
|
|
6
4
|
import START_OF from "./startOf.js";
|
|
5
|
+
import toDateValue from "./toDateValue.js";
|
|
7
6
|
const relativeToAbsolute = (range) => {
|
|
8
7
|
const {
|
|
9
8
|
future,
|
|
@@ -14,26 +13,26 @@ const relativeToAbsolute = (range) => {
|
|
|
14
13
|
let left;
|
|
15
14
|
let right;
|
|
16
15
|
if (future) {
|
|
17
|
-
left =
|
|
16
|
+
left = toDateValue(
|
|
18
17
|
// @ts-expect-error - requires type refactor
|
|
19
18
|
ADD[offset.type](START_OF[offset.type](now), offset.value)
|
|
20
19
|
);
|
|
21
|
-
right =
|
|
20
|
+
right = toDateValue(
|
|
22
21
|
// @ts-expect-error - requires type refactor
|
|
23
22
|
ADD[duration.type](END_OF[duration.type](left), duration.value - 1)
|
|
24
23
|
);
|
|
25
24
|
} else {
|
|
26
|
-
right =
|
|
25
|
+
right = toDateValue(
|
|
27
26
|
// @ts-expect-error - requires type refactor
|
|
28
27
|
ADD[offset.type](END_OF[offset.type](now), -offset.value)
|
|
29
28
|
);
|
|
30
|
-
left =
|
|
29
|
+
left = toDateValue(
|
|
31
30
|
// @ts-expect-error - requires type refactor
|
|
32
31
|
ADD[duration.type](START_OF[duration.type](right), 1 - duration.value)
|
|
33
32
|
);
|
|
34
33
|
}
|
|
35
|
-
const from =
|
|
36
|
-
const to =
|
|
34
|
+
const from = min([left, right]);
|
|
35
|
+
const to = max([left, right]);
|
|
37
36
|
return {
|
|
38
37
|
from,
|
|
39
38
|
to,
|
package/dist/dateUtils/set.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as fnsSetMinutes } from 'date-fns/setMinutes';
|
|
3
|
-
import { default as fnsSetSeconds } from 'date-fns/setSeconds';
|
|
1
|
+
import { setHours as fnsSetHours, setMinutes as fnsSetMinutes, setSeconds as fnsSetSeconds } from 'date-fns';
|
|
4
2
|
declare const _default: {
|
|
5
3
|
HOURS: typeof fnsSetHours;
|
|
6
4
|
MINUTES: typeof fnsSetMinutes;
|
package/dist/dateUtils/set.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fnsSetMinutes from "date-fns/setMinutes";
|
|
3
|
-
import fnsSetSeconds from "date-fns/setSeconds";
|
|
1
|
+
import { setSeconds, setMinutes, setHours } from "date-fns";
|
|
4
2
|
const SET = {
|
|
5
|
-
HOURS:
|
|
6
|
-
MINUTES:
|
|
7
|
-
SECONDS:
|
|
3
|
+
HOURS: setHours,
|
|
4
|
+
MINUTES: setMinutes,
|
|
5
|
+
SECONDS: setSeconds
|
|
8
6
|
};
|
|
9
7
|
export {
|
|
10
8
|
SET as default
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as fnsStartOfHour } from 'date-fns/startOfHour';
|
|
3
|
-
import { default as fnsStartOfISOWeek } from 'date-fns/startOfISOWeek';
|
|
4
|
-
import { default as fnsStartOfMinute } from 'date-fns/startOfMinute';
|
|
5
|
-
import { default as fnsStartOfMonth } from 'date-fns/startOfMonth';
|
|
6
|
-
import { default as fnsStartOfSecond } from 'date-fns/startOfSecond';
|
|
7
|
-
import { default as fnsStartOfYear } from 'date-fns/startOfYear';
|
|
1
|
+
import { startOfDay as fnsStartOfDay, startOfHour as fnsStartOfHour, startOfISOWeek as fnsStartOfISOWeek, startOfMinute as fnsStartOfMinute, startOfMonth as fnsStartOfMonth, startOfSecond as fnsStartOfSecond, startOfYear as fnsStartOfYear } from 'date-fns';
|
|
8
2
|
declare const _default: {
|
|
9
3
|
HOURS: typeof fnsStartOfHour;
|
|
10
4
|
MINUTES: typeof fnsStartOfMinute;
|
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fnsStartOfHour from "date-fns/startOfHour";
|
|
3
|
-
import fnsStartOfISOWeek from "date-fns/startOfISOWeek";
|
|
4
|
-
import fnsStartOfMinute from "date-fns/startOfMinute";
|
|
5
|
-
import fnsStartOfMonth from "date-fns/startOfMonth";
|
|
6
|
-
import fnsStartOfSecond from "date-fns/startOfSecond";
|
|
7
|
-
import fnsStartOfYear from "date-fns/startOfYear";
|
|
1
|
+
import { startOfYear, startOfMonth, startOfISOWeek, startOfDay, startOfSecond, startOfMinute, startOfHour } from "date-fns";
|
|
8
2
|
const START_OF = {
|
|
9
|
-
HOURS:
|
|
10
|
-
MINUTES:
|
|
11
|
-
SECONDS:
|
|
12
|
-
DAYS:
|
|
13
|
-
WEEKS:
|
|
14
|
-
MONTHS:
|
|
15
|
-
YEARS:
|
|
3
|
+
HOURS: startOfHour,
|
|
4
|
+
MINUTES: startOfMinute,
|
|
5
|
+
SECONDS: startOfSecond,
|
|
6
|
+
DAYS: startOfDay,
|
|
7
|
+
WEEKS: startOfISOWeek,
|
|
8
|
+
MONTHS: startOfMonth,
|
|
9
|
+
YEARS: startOfYear
|
|
16
10
|
};
|
|
17
11
|
export {
|
|
18
12
|
START_OF as default
|
package/dist/dateUtils/sub.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as subHour } from 'date-fns/subHours';
|
|
3
|
-
import { default as subMinute } from 'date-fns/subMinutes';
|
|
4
|
-
import { default as subMonth } from 'date-fns/subMonths';
|
|
5
|
-
import { default as subSecond } from 'date-fns/subSeconds';
|
|
6
|
-
import { default as subWeek } from 'date-fns/subWeeks';
|
|
7
|
-
import { default as subYear } from 'date-fns/subYears';
|
|
1
|
+
import { subDays as subDay, subHours as subHour, subMinutes as subMinute, subMonths as subMonth, subSeconds as subSecond, subWeeks as subWeek, subYears as subYear } from 'date-fns';
|
|
8
2
|
declare const _default: {
|
|
9
3
|
SECONDS: typeof subSecond;
|
|
10
4
|
MINUTES: typeof subMinute;
|
package/dist/dateUtils/sub.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import subHour from "date-fns/subHours";
|
|
3
|
-
import subMinute from "date-fns/subMinutes";
|
|
4
|
-
import subMonth from "date-fns/subMonths";
|
|
5
|
-
import subSecond from "date-fns/subSeconds";
|
|
6
|
-
import subWeek from "date-fns/subWeeks";
|
|
7
|
-
import subYear from "date-fns/subYears";
|
|
1
|
+
import { subYears, subMonths, subWeeks, subDays, subHours, subMinutes, subSeconds } from "date-fns";
|
|
8
2
|
const sub = {
|
|
9
|
-
SECONDS:
|
|
10
|
-
MINUTES:
|
|
11
|
-
HOURS:
|
|
12
|
-
DAYS:
|
|
13
|
-
WEEKS:
|
|
14
|
-
MONTHS:
|
|
15
|
-
YEARS:
|
|
3
|
+
SECONDS: subSeconds,
|
|
4
|
+
MINUTES: subMinutes,
|
|
5
|
+
HOURS: subHours,
|
|
6
|
+
DAYS: subDays,
|
|
7
|
+
WEEKS: subWeeks,
|
|
8
|
+
MONTHS: subMonths,
|
|
9
|
+
YEARS: subYears
|
|
16
10
|
};
|
|
17
11
|
export {
|
|
18
12
|
sub as default
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalises the loosely-typed date values this package accepts into a `Date`.
|
|
3
|
+
*
|
|
4
|
+
* Replaces `legacyParse` from `@date-fns/upgrade`, a shim reimplementing date-fns v1's `parse()`,
|
|
5
|
+
* and reproduces its branches exactly — verified identical across every input kind the call sites
|
|
6
|
+
* reach, including the two that surprise:
|
|
7
|
+
*
|
|
8
|
+
* - `null` yields the **epoch**, which `isValid` reports as a valid date, not a rejected one.
|
|
9
|
+
* - `undefined`, `''` and unparseable strings yield an `Invalid Date`.
|
|
10
|
+
*
|
|
11
|
+
* The string branch is load-bearing. `legacyParse` reads a naive string as *local* time, including
|
|
12
|
+
* date-only forms where the ECMAScript spec says UTC. `parseISO` agrees; `toDate` and `new Date`
|
|
13
|
+
* do not, and would shift `'2024-01-15'` by the local offset — a whole day either side of UTC.
|
|
14
|
+
*/
|
|
15
|
+
export declare const toDateValue: (value: Date | string | number | null | undefined) => Date;
|
|
16
|
+
export default toDateValue;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { parseISO } from "date-fns";
|
|
2
|
+
const toDateValue = (value) => {
|
|
3
|
+
if (value instanceof Date) {
|
|
4
|
+
return new Date(value.getTime());
|
|
5
|
+
}
|
|
6
|
+
if (typeof value === "string") {
|
|
7
|
+
return parseISO(value);
|
|
8
|
+
}
|
|
9
|
+
return new Date(value);
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
toDateValue as default,
|
|
13
|
+
toDateValue
|
|
14
|
+
};
|
package/dist/fns.d.ts
CHANGED
|
@@ -1,23 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as fnsAddHours } from 'date-fns/addHours';
|
|
3
|
-
import { default as fnsAddMinutes } from 'date-fns/addMinutes';
|
|
4
|
-
import { default as fnsAddMonths } from 'date-fns/addMonths';
|
|
5
|
-
import { default as fnsAddSeconds } from 'date-fns/addSeconds';
|
|
6
|
-
import { default as fnsAddWeeks } from 'date-fns/addWeeks';
|
|
7
|
-
import { default as fnsAddYears } from 'date-fns/addYears';
|
|
8
|
-
import { default as fnsEndOfDay } from 'date-fns/endOfDay';
|
|
9
|
-
import { default as fnsEndOfMonth } from 'date-fns/endOfMonth';
|
|
10
|
-
import { default as fnsFormat } from 'date-fns/format';
|
|
11
|
-
import { default as fnsGetYear } from 'date-fns/getYear';
|
|
12
|
-
import { default as fnsIsAfter } from 'date-fns/isAfter';
|
|
13
|
-
import { default as fnsIsBefore } from 'date-fns/isBefore';
|
|
14
|
-
import { default as fnsIsSameMonth } from 'date-fns/isSameMonth';
|
|
15
|
-
import { default as fnsIsSameYear } from 'date-fns/isSameYear';
|
|
16
|
-
import { default as fnsSetDate } from 'date-fns/setDate';
|
|
17
|
-
import { default as fnsSetMonth } from 'date-fns/setMonth';
|
|
18
|
-
import { default as fnsSetYear } from 'date-fns/setYear';
|
|
19
|
-
import { default as fnsStartOfDay } from 'date-fns/startOfDay';
|
|
20
|
-
import { default as fnsStartOfMonth } from 'date-fns/startOfMonth';
|
|
1
|
+
import { addDays as fnsAddDays, addHours as fnsAddHours, addMinutes as fnsAddMinutes, addMonths as fnsAddMonths, addSeconds as fnsAddSeconds, addWeeks as fnsAddWeeks, addYears as fnsAddYears, endOfDay as fnsEndOfDay, endOfMonth as fnsEndOfMonth, format as fnsFormat, getYear as fnsGetYear, isAfter as fnsIsAfter, isBefore as fnsIsBefore, isSameMonth as fnsIsSameMonth, isSameYear as fnsIsSameYear, setDate as fnsSetDate, setMonth as fnsSetMonth, setYear as fnsSetYear, startOfDay as fnsStartOfDay, startOfMonth as fnsStartOfMonth } from 'date-fns';
|
|
21
2
|
export { fnsAddSeconds };
|
|
22
3
|
export { fnsAddMinutes };
|
|
23
4
|
export { fnsAddWeeks };
|
package/dist/fns.js
CHANGED
|
@@ -1,42 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as default3 } from "date-fns/addHours";
|
|
3
|
-
import { default as default4 } from "date-fns/addMinutes";
|
|
4
|
-
import { default as default5 } from "date-fns/addMonths";
|
|
5
|
-
import { default as default6 } from "date-fns/addSeconds";
|
|
6
|
-
import { default as default7 } from "date-fns/addWeeks";
|
|
7
|
-
import { default as default8 } from "date-fns/addYears";
|
|
8
|
-
import { default as default9 } from "date-fns/endOfDay";
|
|
9
|
-
import { default as default10 } from "date-fns/endOfMonth";
|
|
10
|
-
import { default as default11 } from "date-fns/format";
|
|
11
|
-
import { default as default12 } from "date-fns/getYear";
|
|
12
|
-
import { default as default13 } from "date-fns/isAfter";
|
|
13
|
-
import { default as default14 } from "date-fns/isBefore";
|
|
14
|
-
import { default as default15 } from "date-fns/isSameMonth";
|
|
15
|
-
import { default as default16 } from "date-fns/isSameYear";
|
|
16
|
-
import { default as default17 } from "date-fns/setDate";
|
|
17
|
-
import { default as default18 } from "date-fns/setMonth";
|
|
18
|
-
import { default as default19 } from "date-fns/setYear";
|
|
19
|
-
import { default as default20 } from "date-fns/startOfDay";
|
|
20
|
-
import { default as default21 } from "date-fns/startOfMonth";
|
|
1
|
+
import { addDays, addHours, addMinutes, addMonths, addSeconds, addWeeks, addYears, endOfDay, endOfMonth, format, getYear, isAfter, isBefore, isSameMonth, isSameYear, setDate, setMonth, setYear, startOfDay, startOfMonth } from "date-fns";
|
|
21
2
|
export {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
3
|
+
addDays as fnsAddDays,
|
|
4
|
+
addHours as fnsAddHours,
|
|
5
|
+
addMinutes as fnsAddMinutes,
|
|
6
|
+
addMonths as fnsAddMonths,
|
|
7
|
+
addSeconds as fnsAddSeconds,
|
|
8
|
+
addWeeks as fnsAddWeeks,
|
|
9
|
+
addYears as fnsAddYears,
|
|
10
|
+
endOfDay as fnsEndOfDay,
|
|
11
|
+
endOfMonth as fnsEndOfMonth,
|
|
12
|
+
format as fnsFormat,
|
|
13
|
+
getYear as fnsGetYear,
|
|
14
|
+
isAfter as fnsIsAfter,
|
|
15
|
+
isBefore as fnsIsBefore,
|
|
16
|
+
isSameMonth as fnsIsSameMonth,
|
|
17
|
+
isSameYear as fnsIsSameYear,
|
|
18
|
+
setDate as fnsSetDate,
|
|
19
|
+
setMonth as fnsSetMonth,
|
|
20
|
+
setYear as fnsSetYear,
|
|
21
|
+
startOfDay as fnsStartOfDay,
|
|
22
|
+
startOfMonth as fnsStartOfMonth
|
|
42
23
|
};
|
package/dist/index.js
CHANGED
|
@@ -6,26 +6,7 @@ import { RawDateRangePicker } from "./RawDateRangePicker.js";
|
|
|
6
6
|
import * as utils from "./utils.js";
|
|
7
7
|
import * as constants from "./constants.js";
|
|
8
8
|
import { default as default6 } from "./DateRangePicker.js";
|
|
9
|
-
import "date-fns
|
|
10
|
-
import "date-fns/addHours";
|
|
11
|
-
import "date-fns/addMinutes";
|
|
12
|
-
import "date-fns/addMonths";
|
|
13
|
-
import "date-fns/addSeconds";
|
|
14
|
-
import "date-fns/addWeeks";
|
|
15
|
-
import "date-fns/addYears";
|
|
16
|
-
import "date-fns/endOfDay";
|
|
17
|
-
import "date-fns/endOfMonth";
|
|
18
|
-
import { default as default7 } from "date-fns/format";
|
|
19
|
-
import "date-fns/getYear";
|
|
20
|
-
import "date-fns/isAfter";
|
|
21
|
-
import "date-fns/isBefore";
|
|
22
|
-
import "date-fns/isSameMonth";
|
|
23
|
-
import "date-fns/isSameYear";
|
|
24
|
-
import "date-fns/setDate";
|
|
25
|
-
import "date-fns/setMonth";
|
|
26
|
-
import "date-fns/setYear";
|
|
27
|
-
import "date-fns/startOfDay";
|
|
28
|
-
import "date-fns/startOfMonth";
|
|
9
|
+
import { format } from "date-fns";
|
|
29
10
|
import { getDisabledTimeOptions } from "./RangePicker/utils.js";
|
|
30
11
|
import { DEFAULT_RANGE_END, DEFAULT_RANGE_START } from "./RangeFilter/constants.js";
|
|
31
12
|
export {
|
|
@@ -38,7 +19,7 @@ export {
|
|
|
38
19
|
default5 as TimeWindow,
|
|
39
20
|
default3 as WeeklyDateFilter,
|
|
40
21
|
default6 as default,
|
|
41
|
-
|
|
22
|
+
format as fnsFormat,
|
|
42
23
|
getDisabledTimeOptions,
|
|
43
24
|
utils
|
|
44
25
|
};
|
package/dist/utils.d.ts
CHANGED
|
@@ -4,7 +4,16 @@ import { DateRange } from './date.types';
|
|
|
4
4
|
import { default as END_OF } from './dateUtils/endOf';
|
|
5
5
|
import { default as START_OF } from './dateUtils/startOf';
|
|
6
6
|
export { START_OF, END_OF };
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Re-exported rather than implemented here. This package used to carry its own copy, which took
|
|
9
|
+
* `Math.abs(offset) % 60` of an offset in *milliseconds* — so every zone that is not a whole number
|
|
10
|
+
* of hours ahead of UTC (India, Adelaide, Kathmandu, Chatham, Newfoundland) encoded as `:00`
|
|
11
|
+
* minutes. It also looked the offset up against the date's UTC fields rather than the wall clock it
|
|
12
|
+
* carries, which picked the wrong side of a DST transition.
|
|
13
|
+
*
|
|
14
|
+
* Kept exported because `utils` is part of this package's public surface (`export * as utils`).
|
|
15
|
+
*/
|
|
16
|
+
export { toIsoString } from '@synerise/ds-core';
|
|
8
17
|
export declare function toIsoStringWithoutZone(date: Date): string;
|
|
9
18
|
export declare const normalizeRange: (range: DateRange) => DateRange;
|
|
10
19
|
export declare const getDefaultTexts: (intl: IntlShape, disableDefault?: boolean, texts?: Partial<Texts>) => Texts;
|
package/dist/utils.js
CHANGED
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import fnsMax from "date-fns/max";
|
|
3
|
-
import fnsMin from "date-fns/min";
|
|
1
|
+
import { min, max } from "date-fns";
|
|
4
2
|
import omit from "lodash.omit";
|
|
5
3
|
import { ABSOLUTE, RELATIVE, CUSTOM_RANGE_KEY } from "./constants.js";
|
|
6
4
|
import ADD from "./dateUtils/add.js";
|
|
7
5
|
import END_OF from "./dateUtils/endOf.js";
|
|
8
6
|
import START_OF from "./dateUtils/startOf.js";
|
|
7
|
+
import { toIsoString } from "@synerise/ds-core";
|
|
9
8
|
const rmvTZOffset = (dateString) => {
|
|
10
9
|
const date = dateString.toString();
|
|
11
10
|
const finalDate = date.replace(/[+-]\d\d:\d\d$/, "");
|
|
12
11
|
return finalDate;
|
|
13
12
|
};
|
|
14
13
|
const pad = (num) => (num < 10 ? "0" : "") + num;
|
|
15
|
-
function toIsoString(date, timeZone = "UTC") {
|
|
16
|
-
if (!timeZone) {
|
|
17
|
-
return new Date(date).toISOString();
|
|
18
|
-
}
|
|
19
|
-
const timeZoneOffset = getTimezoneOffset(timeZone, date);
|
|
20
|
-
const dif = timeZoneOffset >= 0 ? "+" : "-";
|
|
21
|
-
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}${dif}${pad(Math.floor(Math.abs(timeZoneOffset) / 60 / 60 / 1e3))}:${pad(Math.abs(timeZoneOffset) % 60)}`;
|
|
22
|
-
}
|
|
23
14
|
function toIsoStringWithoutZone(date) {
|
|
24
15
|
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
|
|
25
16
|
}
|
|
@@ -61,8 +52,8 @@ const normalizeRange = (range) => {
|
|
|
61
52
|
left = ADD[duration.type](START_OF[duration.type](right), 1 - duration.value);
|
|
62
53
|
}
|
|
63
54
|
}
|
|
64
|
-
const from =
|
|
65
|
-
const to =
|
|
55
|
+
const from = min([left, right]);
|
|
56
|
+
const to = max([left, right]);
|
|
66
57
|
const normalizedRange = {
|
|
67
58
|
...range,
|
|
68
59
|
type: RELATIVE,
|