pne-ui 4.0.31 → 4.0.32
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 +6 -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 +33 -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 +6 -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 +33 -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,11 @@ export type DateRangeCriterionConfig = {
|
|
|
9
10
|
* Разрешает выбор времени вместе с датой.
|
|
10
11
|
*/
|
|
11
12
|
enableTimeSelection?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Таймзона для выбора дат без времени. По умолчанию используется Europe/Moscow.
|
|
15
|
+
* Значение "local" сохраняет старое поведение с локальной таймзоной браузера.
|
|
16
|
+
*/
|
|
17
|
+
dateOnlyTimeZone?: SearchUIDateOnlyTimeZone;
|
|
12
18
|
/**
|
|
13
19
|
* Ограничивает список доступных вариантов выбора диапазона дат.
|
|
14
20
|
*/
|
|
@@ -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_DATE_ONLY_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 filters represent business calendar days, not browser-local midnights.
|
|
9
|
+
*
|
|
10
|
+
* Paynet backend aggregates date-only reports by Moscow days, so the default
|
|
11
|
+
* date-only timezone is Europe/Moscow. Without this anchoring, a user outside
|
|
12
|
+
* Moscow can choose "May 14", receive a locally-normalized Date back through
|
|
13
|
+
* onFiltersUpdate, and then feed a different instant into controlled SearchUI
|
|
14
|
+
* state. That creates visible date shifts and can also trigger update loops.
|
|
15
|
+
*
|
|
16
|
+
* Consumers that really need the old browser-local behavior can set
|
|
17
|
+
* config.dateRange.dateOnlyTimeZone to "local".
|
|
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_DATE_ONLY_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_DATE_ONLY_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 filters represent business calendar days, not browser-local midnights.
|
|
16
|
+
*
|
|
17
|
+
* Paynet backend aggregates date-only reports by Moscow days, so the default
|
|
18
|
+
* date-only timezone is Europe/Moscow. Without this anchoring, a user outside
|
|
19
|
+
* Moscow can choose "May 14", receive a locally-normalized Date back through
|
|
20
|
+
* onFiltersUpdate, and then feed a different instant into controlled SearchUI
|
|
21
|
+
* state. That creates visible date shifts and can also trigger update loops.
|
|
22
|
+
*
|
|
23
|
+
* Consumers that really need the old browser-local behavior can set
|
|
24
|
+
* config.dateRange.dateOnlyTimeZone to "local".
|
|
25
|
+
*/
|
|
26
|
+
const resolveDateOnlyTimeZone = (dateOnlyTimeZone) => {
|
|
27
|
+
if (dateOnlyTimeZone === exports.SEARCH_UI_DATE_ONLY_LOCAL_TIME_ZONE) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return dateOnlyTimeZone ?? exports.SEARCH_UI_DATE_ONLY_DEFAULT_TIME_ZONE;
|
|
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,gBAAgB,KAAK,2CAAmC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,gBAAgB,IAAI,6CAAqC,CAAA;AACpE,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,31 @@ 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_DATE_ONLY_DEFAULT_TIME_ZONE;
|
|
733
|
+
}
|
|
734
|
+
return getConfiguredDateOnlyTimeZone(config);
|
|
735
|
+
};
|
|
736
|
+
const extractDateFrom = (dateRangeSpec, useTime, dateOnlyTimeZone) => {
|
|
723
737
|
if (dateRangeSpec.dateRangeSpecType === 'DATE_INDEPENDENT') {
|
|
724
738
|
return (0, dayjs_1.default)().year(2000).toDate();
|
|
725
739
|
}
|
|
726
740
|
if (dateRangeSpec.dateRangeSpecType === 'EXACTLY'
|
|
727
741
|
&& !useTime
|
|
728
742
|
&& dateRangeSpec.dateFrom) {
|
|
729
|
-
return (0,
|
|
743
|
+
return (0, dateRangeTimeZone_1.createDateOnlySearchDate)(dateRangeSpec.dateFrom, dateOnlyTimeZone);
|
|
730
744
|
}
|
|
731
745
|
return dateRangeSpec.dateFrom;
|
|
732
746
|
};
|
|
733
|
-
const extractDateTo = (dateRangeSpec, useTime) => {
|
|
747
|
+
const extractDateTo = (dateRangeSpec, useTime, dateOnlyTimeZone) => {
|
|
734
748
|
if (dateRangeSpec.dateRangeSpecType === 'DATE_INDEPENDENT') {
|
|
735
749
|
return (0, dayjs_1.default)().year(2999).toDate();
|
|
736
750
|
}
|
|
@@ -738,10 +752,10 @@ const extractDateTo = (dateRangeSpec, useTime) => {
|
|
|
738
752
|
if (useTime) {
|
|
739
753
|
return dateRangeSpec.dateTo;
|
|
740
754
|
}
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
755
|
+
if (!dateRangeSpec.dateTo) {
|
|
756
|
+
return null;
|
|
757
|
+
}
|
|
758
|
+
return (0, dateRangeTimeZone_1.createDateOnlySearchEndExclusiveDate)(dateRangeSpec.dateTo, dateOnlyTimeZone);
|
|
745
759
|
}
|
|
746
760
|
else {
|
|
747
761
|
return dateRangeSpec.dateTo;
|
|
@@ -892,8 +906,8 @@ const checkIfFiltersChanged = (set, get, options) => {
|
|
|
892
906
|
}
|
|
893
907
|
};
|
|
894
908
|
const extractSearchCriteriaFromState = (state) => {
|
|
895
|
-
const timeSelectionEnabled = state.criteria.
|
|
896
|
-
|
|
909
|
+
const timeSelectionEnabled = isDateRangeTimeSelectionEnabled(state.criteria, state.config);
|
|
910
|
+
const dateOnlyTimeZone = getConfiguredDateOnlyTimeZone(state.config);
|
|
897
911
|
return {
|
|
898
912
|
initialized: true,
|
|
899
913
|
exactSearchLabel: extractExactSearchLabel(state.exactSearchLabel),
|
|
@@ -904,8 +918,8 @@ const extractSearchCriteriaFromState = (state) => {
|
|
|
904
918
|
threeD: extract3D(state.threeD),
|
|
905
919
|
currencies: extractEntitiesIds(state.currencies),
|
|
906
920
|
countries: extractEntitiesIds(state.countries),
|
|
907
|
-
dateFrom: extractDateFrom(state.dateRangeSpec, timeSelectionEnabled),
|
|
908
|
-
dateTo: extractDateTo(state.dateRangeSpec, timeSelectionEnabled),
|
|
921
|
+
dateFrom: extractDateFrom(state.dateRangeSpec, timeSelectionEnabled, dateOnlyTimeZone),
|
|
922
|
+
dateTo: extractDateTo(state.dateRangeSpec, timeSelectionEnabled, dateOnlyTimeZone),
|
|
909
923
|
orderDateType: state.orderDateType,
|
|
910
924
|
cardTypes: extractEntitiesIds(state.cardTypes),
|
|
911
925
|
transactionTypes: extractEntitiesIds(state.transactionTypes),
|
|
@@ -955,9 +969,9 @@ const getTemplate = (templateName, store) => ({
|
|
|
955
969
|
errorCode: store.errorCode,
|
|
956
970
|
},
|
|
957
971
|
});
|
|
958
|
-
const calculateNonExactDates = (dateRangeSpec) => {
|
|
972
|
+
const calculateNonExactDates = (dateRangeSpec, timeZone = dateRangeTimeZone_1.SEARCH_UI_DATE_ONLY_DEFAULT_TIME_ZONE) => {
|
|
959
973
|
const nowLocal = (0, dayjs_1.default)();
|
|
960
|
-
const nowServer = (0, dayjs_1.default)().utc().tz(
|
|
974
|
+
const nowServer = timeZone ? (0, dayjs_1.default)().utc().tz(timeZone) : (0, dayjs_1.default)();
|
|
961
975
|
let from = dateRangeSpec.dateFrom ? (0, dayjs_1.default)(dateRangeSpec.dateFrom)
|
|
962
976
|
: (0, dayjs_1.default)(initial_1.searchUIInitialDateFrom);
|
|
963
977
|
let to = dateRangeSpec.dateTo ? (0, dayjs_1.default)(dateRangeSpec.dateTo)
|
|
@@ -1012,8 +1026,8 @@ const calculateNonExactDates = (dateRangeSpec) => {
|
|
|
1012
1026
|
}
|
|
1013
1027
|
return {
|
|
1014
1028
|
dateRangeSpecType: dateRangeSpec.dateRangeSpecType,
|
|
1015
|
-
dateFrom:
|
|
1016
|
-
dateTo:
|
|
1029
|
+
dateFrom: (0, dateRangeTimeZone_1.applyDateOnlyTimeZone)(from, timeZone).toDate(),
|
|
1030
|
+
dateTo: (0, dateRangeTimeZone_1.applyDateOnlyTimeZone)(to, timeZone).toDate(),
|
|
1017
1031
|
beforeCount: dateRangeSpec.beforeCount,
|
|
1018
1032
|
};
|
|
1019
1033
|
};
|