pne-ui 4.0.31 → 4.0.33
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/cjs/component/search-ui/filters/SearchUIFilters.d.ts +7 -0
- package/cjs/component/search-ui/filters/SearchUIFilters.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js +23 -11
- package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/dateRangeTimeZone.d.ts +48 -0
- package/cjs/component/search-ui/filters/dateRangeTimeZone.js +102 -0
- package/cjs/component/search-ui/filters/dateRangeTimeZone.js.map +1 -0
- package/cjs/component/search-ui/filters/state/actions.js +36 -19
- package/cjs/component/search-ui/filters/state/actions.js.map +1 -1
- package/cjs/component/search-ui/filters/state/initial.js +3 -2
- package/cjs/component/search-ui/filters/state/initial.js.map +1 -1
- package/cjs/component/search-ui/filters/state/store.d.ts +2 -0
- package/esm/component/search-ui/filters/SearchUIFilters.d.ts +7 -0
- package/esm/component/search-ui/filters/SearchUIFilters.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js +23 -11
- package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/dateRangeTimeZone.d.ts +48 -0
- package/esm/component/search-ui/filters/dateRangeTimeZone.js +92 -0
- package/esm/component/search-ui/filters/dateRangeTimeZone.js.map +1 -0
- package/esm/component/search-ui/filters/state/actions.js +36 -19
- package/esm/component/search-ui/filters/state/actions.js.map +1 -1
- package/esm/component/search-ui/filters/state/initial.js +3 -2
- package/esm/component/search-ui/filters/state/initial.js.map +1 -1
- package/esm/component/search-ui/filters/state/store.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CriterionTypeEnum, DateRangeSpecType, ExactCriterionSearchLabelEnum, SearchCriteria, SearchUICriterionAvailabilityRule, SearchUIConditions } from './types';
|
|
3
3
|
import { SearchUIDefaults } from '../../..';
|
|
4
|
+
import type { SearchUIDateOnlyTimeZone } from './dateRangeTimeZone';
|
|
4
5
|
/**
|
|
5
6
|
* Дополнительные настройки критерия диапазона дат.
|
|
6
7
|
*/
|
|
@@ -9,6 +10,12 @@ export type DateRangeCriterionConfig = {
|
|
|
9
10
|
* Разрешает выбор времени вместе с датой.
|
|
10
11
|
*/
|
|
11
12
|
enableTimeSelection?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Таймзона для выбора дат без времени в режиме EXACTLY.
|
|
15
|
+
* По умолчанию сохраняется старое поведение с локальной таймзоной браузера.
|
|
16
|
+
* Укажите Europe/Moscow для экранов, где date-only диапазон должен быть московскими бизнес-сутками.
|
|
17
|
+
*/
|
|
18
|
+
dateOnlyTimeZone?: SearchUIDateOnlyTimeZone;
|
|
12
19
|
/**
|
|
13
20
|
* Ограничивает список доступных вариантов выбора диапазона дат.
|
|
14
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchUIFilters.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/SearchUIFilters.tsx"],"names":[],"mappings":";;;;AAAA,uDAAqE;AACrE,qCAMkB;AAClB,mCAOiB;AACjB,+GAA+E;AAC/E,iDAA6C;AAC7C,yCAAsD;AACtD,4CAA6D;AAC7D,wFAA4D;AAC5D,qEAAqC;AACrC,qGAAqE;AACrE,6DAAwD;AACxD,gCAAqE;AACrE,0DAA4D;AAC5D,uCAA6D;AAC7D,mEAA6D;
|
|
1
|
+
{"version":3,"file":"SearchUIFilters.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/SearchUIFilters.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,24 +5,22 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
6
|
const SearchUIDateRangeSpecTypeSelect_1 = tslib_1.__importDefault(require("../select/SearchUIDateRangeSpecTypeSelect"));
|
|
7
7
|
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
8
|
-
const utc_1 = tslib_1.__importDefault(require("dayjs/plugin/utc"));
|
|
9
8
|
const material_1 = require("@mui/material");
|
|
10
9
|
const x_date_pickers_pro_1 = require("@mui/x-date-pickers-pro");
|
|
11
10
|
const DateTimePicker_1 = require("@mui/x-date-pickers/DateTimePicker");
|
|
12
11
|
const AdapterDayjs_1 = require("@mui/x-date-pickers/AdapterDayjs");
|
|
13
12
|
const store_1 = require("../../state/store");
|
|
14
|
-
const timezone_1 = tslib_1.__importDefault(require("dayjs/plugin/timezone"));
|
|
15
13
|
const __1 = require("../../../../..");
|
|
16
14
|
const SearchUIOrderDateTypeSelect_1 = require("../select/SearchUIOrderDateTypeSelect");
|
|
17
15
|
const style_1 = require("./style");
|
|
18
|
-
|
|
19
|
-
dayjs_1.default.extend(timezone_1.default);
|
|
16
|
+
const dateRangeTimeZone_1 = require("../../dateRangeTimeZone");
|
|
20
17
|
const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
|
|
21
18
|
const DateRangeCriterion = (props) => {
|
|
22
19
|
const { showOrdersDateType } = props;
|
|
23
20
|
const dateRangeSpec = (0, store_1.useSearchUIFiltersStore)(s => s.dateRangeSpec);
|
|
24
21
|
const setDateRangeCriterion = (0, store_1.useSearchUIFiltersStore)(s => s.setDateRangeCriterion);
|
|
25
22
|
const timeSelectionEnabledInConfig = (0, store_1.useSearchUIFiltersStore)(s => !!s.config?.dateRange?.enableTimeSelection);
|
|
23
|
+
const dateOnlyTimeZone = (0, store_1.useSearchUIFiltersStore)(s => (0, dateRangeTimeZone_1.resolveDateOnlyTimeZone)(s.config?.dateRange?.dateOnlyTimeZone));
|
|
26
24
|
const changeBeforeCount = (event) => {
|
|
27
25
|
const value = event.target.value;
|
|
28
26
|
let beforeCount = 0;
|
|
@@ -38,11 +36,21 @@ const DateRangeCriterion = (props) => {
|
|
|
38
36
|
const daysOrHoursBefore = dateRangeSpec.dateRangeSpecType === 'DAYS_BEFORE'
|
|
39
37
|
|| dateRangeSpec.dateRangeSpecType === 'HOURS_BEFORE';
|
|
40
38
|
const withInputNear = exactDates || daysOrHoursBefore;
|
|
39
|
+
const enableTimeSelection = !!showOrdersDateType || timeSelectionEnabledInConfig;
|
|
40
|
+
const createExactDate = (date) => {
|
|
41
|
+
if (!date) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
if (enableTimeSelection) {
|
|
45
|
+
return (0, dayjs_1.default)(date).toDate();
|
|
46
|
+
}
|
|
47
|
+
return (0, dateRangeTimeZone_1.createDateOnlyPickerDate)(date, dateOnlyTimeZone);
|
|
48
|
+
};
|
|
41
49
|
const setExactDate = (from, to) => {
|
|
42
50
|
setDateRangeCriterion({
|
|
43
51
|
...dateRangeSpec,
|
|
44
|
-
dateFrom:
|
|
45
|
-
dateTo:
|
|
52
|
+
dateFrom: createExactDate(from),
|
|
53
|
+
dateTo: createExactDate(to),
|
|
46
54
|
});
|
|
47
55
|
};
|
|
48
56
|
const handleSetDateRange = (dateRange) => {
|
|
@@ -59,11 +67,15 @@ const DateRangeCriterion = (props) => {
|
|
|
59
67
|
dateRangeSpecType: dateRangeSpecType,
|
|
60
68
|
});
|
|
61
69
|
};
|
|
62
|
-
const dateRange =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
70
|
+
const dateRange = enableTimeSelection
|
|
71
|
+
? [
|
|
72
|
+
dateRangeSpec.dateFrom ? (0, dayjs_1.default)(dateRangeSpec.dateFrom) : null,
|
|
73
|
+
dateRangeSpec.dateTo ? (0, dayjs_1.default)(dateRangeSpec.dateTo) : null,
|
|
74
|
+
]
|
|
75
|
+
: [
|
|
76
|
+
(0, dateRangeTimeZone_1.createDateOnlyPickerValue)(dateRangeSpec.dateFrom, dateOnlyTimeZone),
|
|
77
|
+
(0, dateRangeTimeZone_1.createDateOnlyPickerValue)(dateRangeSpec.dateTo, dateOnlyTimeZone),
|
|
78
|
+
];
|
|
67
79
|
const isSmallScreen = (0, material_1.useMediaQuery)('(max-width:599px)');
|
|
68
80
|
const stackDateTimePickers = enableTimeSelection && isSmallScreen;
|
|
69
81
|
const dateTimePickerWrapperSx = stackDateTimePickers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/DateRangeCriterion.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0C;AAE1C,wHAAuF;AACvF,0DAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"DateRangeCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/DateRangeCriterion.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0C;AAE1C,wHAAuF;AACvF,0DAAoC;AACpC,4CAA2D;AAC3D,gEAA0F;AAC1F,uEAAmE;AACnE,mEAA+D;AAC/D,6CAA2D;AAC3D,sCAA6C;AAC7C,uFAAmF;AACnF,mCAAwC;AACxC,+DAIgC;AAMhC,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AAEvC,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE;IAC/C,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;IAEpC,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IACnE,MAAM,qBAAqB,GAAG,IAAA,+BAAuB,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;IACnF,MAAM,4BAA4B,GAAG,IAAA,+BAAuB,EACxD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAClD,CAAA;IACD,MAAM,gBAAgB,GAAG,IAAA,+BAAuB,EAC5C,CAAC,CAAC,EAAE,CAAC,IAAA,2CAAuB,EAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CACtE,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,KAA0D,EAAE,EAAE;QACrF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAChC,IAAI,WAAW,GAAG,CAAC,CAAA;QAEnB,IAAI,KAAK,EAAE,CAAC;YACR,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QAED,qBAAqB,CAAC;YAClB,GAAG,aAAa;YAChB,WAAW,EAAE,WAAW;SAC3B,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,KAAK,SAAS,CAAA;IAChE,MAAM,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,KAAK,aAAa;WACpE,aAAa,CAAC,iBAAiB,KAAK,cAAc,CAAA;IACzD,MAAM,aAAa,GAAG,UAAU,IAAI,iBAAiB,CAAA;IACrD,MAAM,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,IAAI,4BAA4B,CAAA;IAEhF,MAAM,eAAe,GAAG,CAAC,IAAkB,EAAe,EAAE;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,IAAI,CAAA;QACf,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACtB,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO,IAAA,4CAAwB,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAC3D,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,EAAgB,EAAE,EAAE;QAC1D,qBAAqB,CAAC;YAClB,GAAG,aAAa;YAChB,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,SAA2B,EAAE,EAAE;QACvD,IAAI,aAAa,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAChD,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;QACjC,CAAC;IACL,CAAC,CAAA;IAED,MAAM,0BAA0B,GAAG,CAAC,iBAAoC,EAAE,EAAE;QACxE,qBAAqB,CAAC;YAClB,GAAG,aAAa;YAChB,iBAAiB,EAAE,iBAAiB;SACvC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,SAAS,GAAqB,mBAAmB;QACnD,CAAC,CAAC;YACE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAC7D,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;SAC5D;QACD,CAAC,CAAC;YACE,IAAA,6CAAyB,EAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YACnE,IAAA,6CAAyB,EAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC;SACpE,CAAA;IAEL,MAAM,aAAa,GAAG,IAAA,wBAAa,EAAC,mBAAmB,CAAC,CAAA;IACxD,MAAM,oBAAoB,GAAG,mBAAmB,IAAI,aAAa,CAAA;IACjE,MAAM,uBAAuB,GAAY,oBAAoB;QACzD,CAAC,CAAE;YACC,GAAG,yBAAyB;YAC5B,GAAG,gCAAgC;SAC1B;QACb,CAAC,CAAC,yBAAyB,CAAA;IAE/B,OAAO;QACH,8BAAC,cAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;YAC9C,kBAAkB,CAAC,CAAC,CAAC,8BAAC,yDAA2B,OAAE,CAAC,CAAC,CAAC,IAAI;YAC3D,8BAAC,yCAA+B,OAAE,CAChC;QACN,8BAAC,cAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAClE,aAAa;YACV,CAAC,CAAC,UAAU;gBACR,CAAC,CAAC,8BAAC,yCAAoB,IAAC,WAAW,EAAE,2BAAY,IAC5C,mBAAmB;oBAChB,CAAC,CAAC,8BAAC,cAAG,IAAC,EAAE,EAAE,uBAAuB;wBAC9B,8BAAC,+BAAc,IACX,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAClD,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAC9D,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE;gCACP,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,CAAC;6BACb,EACD,SAAS,EAAE;gCACP,SAAS,EAAE;oCACP,IAAI,EAAE,OAAO;oCACb,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,sBAAc;oCAC1E,OAAO,EAAE,QAAQ;oCACjB,SAAS,EAAE;wCACP,SAAS,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE;wCAC5C,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;qCACpC;iCACJ;gCACD,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;6BAChC,GACH;wBACF,8BAAC,+BAAc,IACX,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAC9C,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAC9D,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE;gCACP,OAAO,EAAE,CAAC;gCACV,OAAO,EAAE,CAAC;6BACb,EACD,SAAS,EAAE;gCACP,SAAS,EAAE;oCACP,IAAI,EAAE,OAAO;oCACb,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,sBAAc;oCAC1E,OAAO,EAAE,QAAQ;oCACjB,SAAS,EAAE;wCACP,SAAS,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE;wCAC5C,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;qCACpC;iCACJ;gCACD,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;6BAChC,GACH,CACA;oBACN,CAAC,CAAC,8BAAC,oCAAe,IACd,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE;4BACP,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;yBAChC,GACH,CACa;gBACvB,CAAC,CAAC,8BAAC,gBAAY,IACX,KAAK,EAAE,aAAa,CAAC,WAAW,IAAI,EAAE,EACtC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE;wBACP,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;wBACrB,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;qBACpC,EACD,EAAE,EAAE;wBACA,GAAG,sBAAc;wBACjB,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,MAAM;qBAChB,EACD,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,GACnB;YACN,CAAC,CAAC,IAAI,CACR,CACP,CAAA;AACP,CAAC,CAAA;AA5KY,QAAA,kBAAkB,sBA4K9B;AAED,MAAM,iBAAiB,GAAY;IAC/B,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,MAAM,EAAE,MAAM;IACd,yCAAyC,EAAE;QACvC,OAAO,EAAE,MAAM;KAClB;IACD,8CAA8C,EAAE;QAC5C,CAAC,EAAE,WAAW;QACd,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM;KACnB;IACD,oCAAoC,EAAE;QAClC,YAAY,EAAE,GAAG;QACjB,MAAM,EAAE,wBAAwB;KACnC;IACD,0CAA0C,EAAE;QACxC,CAAC,EAAE,CAAC;KACP;CACJ,CAAA;AAED,MAAM,yBAAyB,GAAY;IACvC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,KAAK;CACnB,CAAA;AAED,MAAM,gCAAgC,GAAY;IAC9C,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,CAAC;CACf,CAAA;AAED,MAAM,8BAA8B,GAAY;IAC5C,GAAG,sBAAc;IACjB,KAAK,EAAE,MAAM;CAChB,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Dayjs } from 'dayjs';
|
|
2
|
+
export declare const SEARCH_UI_NON_EXACT_DEFAULT_TIME_ZONE = "Europe/Moscow";
|
|
3
|
+
export declare const SEARCH_UI_DATE_ONLY_LOCAL_TIME_ZONE = "local";
|
|
4
|
+
export type SearchUIDateOnlyTimeZone = string;
|
|
5
|
+
/**
|
|
6
|
+
* SearchUI has two different date contracts:
|
|
7
|
+
* - time-aware filters pass exact instants through without reinterpretation;
|
|
8
|
+
* - date-only EXACTLY filters keep the legacy browser-local behavior unless a
|
|
9
|
+
* business timezone is configured explicitly.
|
|
10
|
+
*
|
|
11
|
+
* Paynet backend aggregates date-only reports by Moscow days, but changing the
|
|
12
|
+
* library default would affect existing screens that historically expected
|
|
13
|
+
* browser-local EXACTLY dates. Screens that need Moscow business days must opt
|
|
14
|
+
* in with config.dateRange.dateOnlyTimeZone = "Europe/Moscow".
|
|
15
|
+
*
|
|
16
|
+
* Consumers can also set "local" explicitly, but leaving the option undefined
|
|
17
|
+
* already preserves the old browser-local behavior.
|
|
18
|
+
*/
|
|
19
|
+
export declare const resolveDateOnlyTimeZone: (dateOnlyTimeZone?: SearchUIDateOnlyTimeZone) => string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Re-anchor existing calendar fields to a timezone without changing the visible
|
|
22
|
+
* year/month/day. This is the same keep-local-time operation that non-exact
|
|
23
|
+
* presets already used for Moscow business days.
|
|
24
|
+
*/
|
|
25
|
+
export declare const applyDateOnlyTimeZone: (date: Dayjs, timeZone: string | null) => Dayjs;
|
|
26
|
+
/**
|
|
27
|
+
* Converts a day selected by MUI DateRangePicker into SearchUI state. The picker
|
|
28
|
+
* gives us a local Dayjs value; for date-only filters we store the same calendar
|
|
29
|
+
* day at midnight in the configured business timezone.
|
|
30
|
+
*/
|
|
31
|
+
export declare const createDateOnlyPickerDate: (date: Dayjs | Date, timeZone: string | null) => Date;
|
|
32
|
+
/**
|
|
33
|
+
* Converts the stored date-only value to an inclusive lower search boundary.
|
|
34
|
+
* For configured business timezones the stored instant is interpreted in that
|
|
35
|
+
* timezone, not in the browser timezone.
|
|
36
|
+
*/
|
|
37
|
+
export declare const createDateOnlySearchDate: (date: Date, timeZone: string | null) => Date;
|
|
38
|
+
/**
|
|
39
|
+
* SearchCriteria uses an exclusive upper boundary for date-only ranges. EXACTLY
|
|
40
|
+
* therefore sends the start of the next business day as dateTo.
|
|
41
|
+
*/
|
|
42
|
+
export declare const createDateOnlySearchEndExclusiveDate: (date: Date, timeZone: string | null) => Date;
|
|
43
|
+
/**
|
|
44
|
+
* Converts a stored business-day Date back to the picker value. The picker should
|
|
45
|
+
* display the business calendar day, even when the browser timezone would render
|
|
46
|
+
* the same instant as the previous or next local day.
|
|
47
|
+
*/
|
|
48
|
+
export declare const createDateOnlyPickerValue: (date: Date | null, timeZone: string | null) => Dayjs | null;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDateOnlyPickerValue = exports.createDateOnlySearchEndExclusiveDate = exports.createDateOnlySearchDate = exports.createDateOnlyPickerDate = exports.applyDateOnlyTimeZone = exports.resolveDateOnlyTimeZone = exports.SEARCH_UI_DATE_ONLY_LOCAL_TIME_ZONE = exports.SEARCH_UI_NON_EXACT_DEFAULT_TIME_ZONE = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
6
|
+
const utc_1 = tslib_1.__importDefault(require("dayjs/plugin/utc"));
|
|
7
|
+
const timezone_1 = tslib_1.__importDefault(require("dayjs/plugin/timezone"));
|
|
8
|
+
dayjs_1.default.extend(utc_1.default);
|
|
9
|
+
dayjs_1.default.extend(timezone_1.default);
|
|
10
|
+
exports.SEARCH_UI_NON_EXACT_DEFAULT_TIME_ZONE = 'Europe/Moscow';
|
|
11
|
+
exports.SEARCH_UI_DATE_ONLY_LOCAL_TIME_ZONE = 'local';
|
|
12
|
+
/**
|
|
13
|
+
* SearchUI has two different date contracts:
|
|
14
|
+
* - time-aware filters pass exact instants through without reinterpretation;
|
|
15
|
+
* - date-only EXACTLY filters keep the legacy browser-local behavior unless a
|
|
16
|
+
* business timezone is configured explicitly.
|
|
17
|
+
*
|
|
18
|
+
* Paynet backend aggregates date-only reports by Moscow days, but changing the
|
|
19
|
+
* library default would affect existing screens that historically expected
|
|
20
|
+
* browser-local EXACTLY dates. Screens that need Moscow business days must opt
|
|
21
|
+
* in with config.dateRange.dateOnlyTimeZone = "Europe/Moscow".
|
|
22
|
+
*
|
|
23
|
+
* Consumers can also set "local" explicitly, but leaving the option undefined
|
|
24
|
+
* already preserves the old browser-local behavior.
|
|
25
|
+
*/
|
|
26
|
+
const resolveDateOnlyTimeZone = (dateOnlyTimeZone) => {
|
|
27
|
+
if (!dateOnlyTimeZone || dateOnlyTimeZone === exports.SEARCH_UI_DATE_ONLY_LOCAL_TIME_ZONE) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return dateOnlyTimeZone;
|
|
31
|
+
};
|
|
32
|
+
exports.resolveDateOnlyTimeZone = resolveDateOnlyTimeZone;
|
|
33
|
+
/**
|
|
34
|
+
* Re-anchor existing calendar fields to a timezone without changing the visible
|
|
35
|
+
* year/month/day. This is the same keep-local-time operation that non-exact
|
|
36
|
+
* presets already used for Moscow business days.
|
|
37
|
+
*/
|
|
38
|
+
const applyDateOnlyTimeZone = (date, timeZone) => {
|
|
39
|
+
if (!timeZone) {
|
|
40
|
+
return date;
|
|
41
|
+
}
|
|
42
|
+
return date.tz(timeZone, true);
|
|
43
|
+
};
|
|
44
|
+
exports.applyDateOnlyTimeZone = applyDateOnlyTimeZone;
|
|
45
|
+
/**
|
|
46
|
+
* Converts a day selected by MUI DateRangePicker into SearchUI state. The picker
|
|
47
|
+
* gives us a local Dayjs value; for date-only filters we store the same calendar
|
|
48
|
+
* day at midnight in the configured business timezone.
|
|
49
|
+
*/
|
|
50
|
+
const createDateOnlyPickerDate = (date, timeZone) => {
|
|
51
|
+
return (0, exports.applyDateOnlyTimeZone)((0, dayjs_1.default)(date).startOf('day'), timeZone).toDate();
|
|
52
|
+
};
|
|
53
|
+
exports.createDateOnlyPickerDate = createDateOnlyPickerDate;
|
|
54
|
+
/**
|
|
55
|
+
* Converts the stored date-only value to an inclusive lower search boundary.
|
|
56
|
+
* For configured business timezones the stored instant is interpreted in that
|
|
57
|
+
* timezone, not in the browser timezone.
|
|
58
|
+
*/
|
|
59
|
+
const createDateOnlySearchDate = (date, timeZone) => {
|
|
60
|
+
if (!timeZone) {
|
|
61
|
+
return (0, dayjs_1.default)(date).startOf('day').toDate();
|
|
62
|
+
}
|
|
63
|
+
return (0, dayjs_1.default)(date)
|
|
64
|
+
.tz(timeZone)
|
|
65
|
+
.startOf('day')
|
|
66
|
+
.toDate();
|
|
67
|
+
};
|
|
68
|
+
exports.createDateOnlySearchDate = createDateOnlySearchDate;
|
|
69
|
+
/**
|
|
70
|
+
* SearchCriteria uses an exclusive upper boundary for date-only ranges. EXACTLY
|
|
71
|
+
* therefore sends the start of the next business day as dateTo.
|
|
72
|
+
*/
|
|
73
|
+
const createDateOnlySearchEndExclusiveDate = (date, timeZone) => {
|
|
74
|
+
if (!timeZone) {
|
|
75
|
+
return (0, dayjs_1.default)(date)
|
|
76
|
+
.startOf('day')
|
|
77
|
+
.add(1, 'day')
|
|
78
|
+
.toDate();
|
|
79
|
+
}
|
|
80
|
+
return (0, dayjs_1.default)(date)
|
|
81
|
+
.tz(timeZone)
|
|
82
|
+
.startOf('day')
|
|
83
|
+
.add(1, 'day')
|
|
84
|
+
.toDate();
|
|
85
|
+
};
|
|
86
|
+
exports.createDateOnlySearchEndExclusiveDate = createDateOnlySearchEndExclusiveDate;
|
|
87
|
+
/**
|
|
88
|
+
* Converts a stored business-day Date back to the picker value. The picker should
|
|
89
|
+
* display the business calendar day, even when the browser timezone would render
|
|
90
|
+
* the same instant as the previous or next local day.
|
|
91
|
+
*/
|
|
92
|
+
const createDateOnlyPickerValue = (date, timeZone) => {
|
|
93
|
+
if (!date) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
if (!timeZone) {
|
|
97
|
+
return (0, dayjs_1.default)(date);
|
|
98
|
+
}
|
|
99
|
+
return (0, dayjs_1.default)((0, dayjs_1.default)(date).tz(timeZone).format('YYYY-MM-DD'));
|
|
100
|
+
};
|
|
101
|
+
exports.createDateOnlyPickerValue = createDateOnlyPickerValue;
|
|
102
|
+
//# sourceMappingURL=dateRangeTimeZone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateRangeTimeZone.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/dateRangeTimeZone.ts"],"names":[],"mappings":";;;;AAAA,0DAAoC;AACpC,mEAAkC;AAClC,6EAA4C;AAE5C,eAAK,CAAC,MAAM,CAAC,aAAG,CAAC,CAAA;AACjB,eAAK,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAA;AAET,QAAA,qCAAqC,GAAG,eAAe,CAAA;AACvD,QAAA,mCAAmC,GAAG,OAAO,CAAA;AAI1D;;;;;;;;;;;;;GAaG;AACI,MAAM,uBAAuB,GAAG,CAAC,gBAA2C,EAAiB,EAAE;IAClG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,2CAAmC,EAAE,CAAC;QAChF,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,gBAAgB,CAAA;AAC3B,CAAC,CAAA;AANY,QAAA,uBAAuB,2BAMnC;AAED;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,CAAC,IAAW,EAAE,QAAuB,EAAS,EAAE;IACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC,CAAA;AANY,QAAA,qBAAqB,yBAMjC;AAED;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,CAAC,IAAkB,EAAE,QAAuB,EAAQ,EAAE;IAC1F,OAAO,IAAA,6BAAqB,EAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;AAC/E,CAAC,CAAA;AAFY,QAAA,wBAAwB,4BAEpC;AAED;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,CAAC,IAAU,EAAE,QAAuB,EAAQ,EAAE;IAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAA;IAC9C,CAAC;IAED,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC;SACb,EAAE,CAAC,QAAQ,CAAC;SACZ,OAAO,CAAC,KAAK,CAAC;SACd,MAAM,EAAE,CAAA;AACjB,CAAC,CAAA;AATY,QAAA,wBAAwB,4BASpC;AAED;;;GAGG;AACI,MAAM,oCAAoC,GAAG,CAAC,IAAU,EAAE,QAAuB,EAAQ,EAAE;IAC9F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC;aACb,OAAO,CAAC,KAAK,CAAC;aACd,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;aACb,MAAM,EAAE,CAAA;IACjB,CAAC;IAED,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC;SACb,EAAE,CAAC,QAAQ,CAAC;SACZ,OAAO,CAAC,KAAK,CAAC;SACd,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;SACb,MAAM,EAAE,CAAA;AACjB,CAAC,CAAA;AAbY,QAAA,oCAAoC,wCAahD;AAED;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,CAAC,IAAiB,EAAE,QAAuB,EAAgB,EAAE;IAClG,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,IAAA,eAAK,EAAC,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;AAC/D,CAAC,CAAA;AAVY,QAAA,yBAAyB,6BAUrC"}
|
|
@@ -13,6 +13,7 @@ const timezone_1 = tslib_1.__importDefault(require("dayjs/plugin/timezone"));
|
|
|
13
13
|
const isoWeek_1 = tslib_1.__importDefault(require("dayjs/plugin/isoWeek"));
|
|
14
14
|
const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
|
|
15
15
|
const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
|
|
16
|
+
const dateRangeTimeZone_1 = require("../dateRangeTimeZone");
|
|
16
17
|
dayjs_1.default.extend(utc_1.default);
|
|
17
18
|
dayjs_1.default.extend(timezone_1.default);
|
|
18
19
|
dayjs_1.default.extend(isoWeek_1.default);
|
|
@@ -259,7 +260,8 @@ const getSearchUIFiltersActions = (set, get) => ({
|
|
|
259
260
|
const conditions = { ...defaults, ...template.searchConditions };
|
|
260
261
|
conditions.multigetCriteria = (conditions.multigetCriteria ?? []).map(normalizeMultigetCriterion);
|
|
261
262
|
if (conditions.dateRangeSpec.dateRangeSpecType !== 'EXACTLY') {
|
|
262
|
-
|
|
263
|
+
const timeSelectionEnabled = isDateRangeTimeSelectionEnabled(conditions.criteria, get().config);
|
|
264
|
+
conditions.dateRangeSpec = calculateNonExactDates(conditions.dateRangeSpec, getNonExactDateRangeTimeZone(get().config, timeSelectionEnabled));
|
|
263
265
|
}
|
|
264
266
|
localStorage.setItem(LAST_TEMPLATE_NAME + get().settingsContextName, template.name);
|
|
265
267
|
set((draft) => {
|
|
@@ -363,8 +365,7 @@ const getSearchUIFiltersActions = (set, get) => ({
|
|
|
363
365
|
setDateRangeCriterion: (dateRangeSpec) => {
|
|
364
366
|
const prevDateRangeSpec = get().dateRangeSpec;
|
|
365
367
|
const prevDateRangeSpecType = prevDateRangeSpec.dateRangeSpecType;
|
|
366
|
-
const timeSelectionEnabled = get().criteria
|
|
367
|
-
|| !!get().config?.dateRange?.enableTimeSelection;
|
|
368
|
+
const timeSelectionEnabled = isDateRangeTimeSelectionEnabled(get().criteria, get().config);
|
|
368
369
|
const switchingToExact = dateRangeSpec.dateRangeSpecType === 'EXACTLY'
|
|
369
370
|
&& prevDateRangeSpecType !== 'EXACTLY'
|
|
370
371
|
&& timeSelectionEnabled
|
|
@@ -380,7 +381,7 @@ const getSearchUIFiltersActions = (set, get) => ({
|
|
|
380
381
|
};
|
|
381
382
|
}
|
|
382
383
|
else if (dateRangeSpec.dateRangeSpecType !== 'EXACTLY') {
|
|
383
|
-
spec = calculateNonExactDates(dateRangeSpec);
|
|
384
|
+
spec = calculateNonExactDates(dateRangeSpec, getNonExactDateRangeTimeZone(get().config, timeSelectionEnabled));
|
|
384
385
|
}
|
|
385
386
|
set((draft) => {
|
|
386
387
|
draft.dateRangeSpec = spec;
|
|
@@ -719,18 +720,34 @@ const extractGroupTypes = (grouping) => {
|
|
|
719
720
|
}
|
|
720
721
|
return groups;
|
|
721
722
|
};
|
|
722
|
-
const
|
|
723
|
+
const isDateRangeTimeSelectionEnabled = (criteria, config) => {
|
|
724
|
+
return criteria.includes(types_1.CriterionTypeEnum.DATE_RANGE_ORDERS)
|
|
725
|
+
|| !!config?.dateRange?.enableTimeSelection;
|
|
726
|
+
};
|
|
727
|
+
const getConfiguredDateOnlyTimeZone = (config) => {
|
|
728
|
+
return (0, dateRangeTimeZone_1.resolveDateOnlyTimeZone)(config?.dateRange?.dateOnlyTimeZone);
|
|
729
|
+
};
|
|
730
|
+
const getNonExactDateRangeTimeZone = (config, timeSelectionEnabled) => {
|
|
731
|
+
if (timeSelectionEnabled) {
|
|
732
|
+
return dateRangeTimeZone_1.SEARCH_UI_NON_EXACT_DEFAULT_TIME_ZONE;
|
|
733
|
+
}
|
|
734
|
+
if (config?.dateRange?.dateOnlyTimeZone !== undefined) {
|
|
735
|
+
return getConfiguredDateOnlyTimeZone(config);
|
|
736
|
+
}
|
|
737
|
+
return dateRangeTimeZone_1.SEARCH_UI_NON_EXACT_DEFAULT_TIME_ZONE;
|
|
738
|
+
};
|
|
739
|
+
const extractDateFrom = (dateRangeSpec, useTime, dateOnlyTimeZone) => {
|
|
723
740
|
if (dateRangeSpec.dateRangeSpecType === 'DATE_INDEPENDENT') {
|
|
724
741
|
return (0, dayjs_1.default)().year(2000).toDate();
|
|
725
742
|
}
|
|
726
743
|
if (dateRangeSpec.dateRangeSpecType === 'EXACTLY'
|
|
727
744
|
&& !useTime
|
|
728
745
|
&& dateRangeSpec.dateFrom) {
|
|
729
|
-
return (0,
|
|
746
|
+
return (0, dateRangeTimeZone_1.createDateOnlySearchDate)(dateRangeSpec.dateFrom, dateOnlyTimeZone);
|
|
730
747
|
}
|
|
731
748
|
return dateRangeSpec.dateFrom;
|
|
732
749
|
};
|
|
733
|
-
const extractDateTo = (dateRangeSpec, useTime) => {
|
|
750
|
+
const extractDateTo = (dateRangeSpec, useTime, dateOnlyTimeZone) => {
|
|
734
751
|
if (dateRangeSpec.dateRangeSpecType === 'DATE_INDEPENDENT') {
|
|
735
752
|
return (0, dayjs_1.default)().year(2999).toDate();
|
|
736
753
|
}
|
|
@@ -738,10 +755,10 @@ const extractDateTo = (dateRangeSpec, useTime) => {
|
|
|
738
755
|
if (useTime) {
|
|
739
756
|
return dateRangeSpec.dateTo;
|
|
740
757
|
}
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
758
|
+
if (!dateRangeSpec.dateTo) {
|
|
759
|
+
return null;
|
|
760
|
+
}
|
|
761
|
+
return (0, dateRangeTimeZone_1.createDateOnlySearchEndExclusiveDate)(dateRangeSpec.dateTo, dateOnlyTimeZone);
|
|
745
762
|
}
|
|
746
763
|
else {
|
|
747
764
|
return dateRangeSpec.dateTo;
|
|
@@ -892,8 +909,8 @@ const checkIfFiltersChanged = (set, get, options) => {
|
|
|
892
909
|
}
|
|
893
910
|
};
|
|
894
911
|
const extractSearchCriteriaFromState = (state) => {
|
|
895
|
-
const timeSelectionEnabled = state.criteria.
|
|
896
|
-
|
|
912
|
+
const timeSelectionEnabled = isDateRangeTimeSelectionEnabled(state.criteria, state.config);
|
|
913
|
+
const dateOnlyTimeZone = getConfiguredDateOnlyTimeZone(state.config);
|
|
897
914
|
return {
|
|
898
915
|
initialized: true,
|
|
899
916
|
exactSearchLabel: extractExactSearchLabel(state.exactSearchLabel),
|
|
@@ -904,8 +921,8 @@ const extractSearchCriteriaFromState = (state) => {
|
|
|
904
921
|
threeD: extract3D(state.threeD),
|
|
905
922
|
currencies: extractEntitiesIds(state.currencies),
|
|
906
923
|
countries: extractEntitiesIds(state.countries),
|
|
907
|
-
dateFrom: extractDateFrom(state.dateRangeSpec, timeSelectionEnabled),
|
|
908
|
-
dateTo: extractDateTo(state.dateRangeSpec, timeSelectionEnabled),
|
|
924
|
+
dateFrom: extractDateFrom(state.dateRangeSpec, timeSelectionEnabled, dateOnlyTimeZone),
|
|
925
|
+
dateTo: extractDateTo(state.dateRangeSpec, timeSelectionEnabled, dateOnlyTimeZone),
|
|
909
926
|
orderDateType: state.orderDateType,
|
|
910
927
|
cardTypes: extractEntitiesIds(state.cardTypes),
|
|
911
928
|
transactionTypes: extractEntitiesIds(state.transactionTypes),
|
|
@@ -955,9 +972,9 @@ const getTemplate = (templateName, store) => ({
|
|
|
955
972
|
errorCode: store.errorCode,
|
|
956
973
|
},
|
|
957
974
|
});
|
|
958
|
-
const calculateNonExactDates = (dateRangeSpec) => {
|
|
975
|
+
const calculateNonExactDates = (dateRangeSpec, timeZone = dateRangeTimeZone_1.SEARCH_UI_NON_EXACT_DEFAULT_TIME_ZONE) => {
|
|
959
976
|
const nowLocal = (0, dayjs_1.default)();
|
|
960
|
-
const nowServer = (0, dayjs_1.default)().utc().tz(
|
|
977
|
+
const nowServer = timeZone ? (0, dayjs_1.default)().utc().tz(timeZone) : (0, dayjs_1.default)();
|
|
961
978
|
let from = dateRangeSpec.dateFrom ? (0, dayjs_1.default)(dateRangeSpec.dateFrom)
|
|
962
979
|
: (0, dayjs_1.default)(initial_1.searchUIInitialDateFrom);
|
|
963
980
|
let to = dateRangeSpec.dateTo ? (0, dayjs_1.default)(dateRangeSpec.dateTo)
|
|
@@ -1012,8 +1029,8 @@ const calculateNonExactDates = (dateRangeSpec) => {
|
|
|
1012
1029
|
}
|
|
1013
1030
|
return {
|
|
1014
1031
|
dateRangeSpecType: dateRangeSpec.dateRangeSpecType,
|
|
1015
|
-
dateFrom:
|
|
1016
|
-
dateTo:
|
|
1032
|
+
dateFrom: (0, dateRangeTimeZone_1.applyDateOnlyTimeZone)(from, timeZone).toDate(),
|
|
1033
|
+
dateTo: (0, dateRangeTimeZone_1.applyDateOnlyTimeZone)(to, timeZone).toDate(),
|
|
1017
1034
|
beforeCount: dateRangeSpec.beforeCount,
|
|
1018
1035
|
};
|
|
1019
1036
|
};
|