pne-ui 4.2.8 → 4.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +158 -3
  2. package/cjs/component/search-ui/SearchUI.d.ts +5 -0
  3. package/cjs/component/search-ui/SearchUI.js +8 -2
  4. package/cjs/component/search-ui/SearchUI.js.map +1 -1
  5. package/cjs/component/search-ui/filters/CriterionContainer.js +15 -0
  6. package/cjs/component/search-ui/filters/CriterionContainer.js.map +1 -1
  7. package/cjs/component/search-ui/filters/SearchUIFilters.d.ts +11 -0
  8. package/cjs/component/search-ui/filters/SearchUIFilters.js +49 -31
  9. package/cjs/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  10. package/cjs/component/search-ui/filters/component/criterion/CsvCharsetCriterion.d.ts +2 -0
  11. package/cjs/component/search-ui/filters/component/criterion/CsvCharsetCriterion.js +22 -0
  12. package/cjs/component/search-ui/filters/component/criterion/CsvCharsetCriterion.js.map +1 -0
  13. package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js +15 -15
  14. package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
  15. package/cjs/component/search-ui/filters/component/criterion/TimeZoneCriterion.d.ts +2 -0
  16. package/cjs/component/search-ui/filters/component/criterion/TimeZoneCriterion.js +33 -0
  17. package/cjs/component/search-ui/filters/component/criterion/TimeZoneCriterion.js.map +1 -0
  18. package/cjs/component/search-ui/filters/component/criterion/TransactionDateTypeCriterion.d.ts +3 -0
  19. package/cjs/component/search-ui/filters/component/criterion/TransactionDateTypeCriterion.js +16 -0
  20. package/cjs/component/search-ui/filters/component/criterion/TransactionDateTypeCriterion.js.map +1 -0
  21. package/cjs/component/search-ui/filters/component/criterion/TransactionRecurrentFilterCriterion.d.ts +2 -0
  22. package/cjs/component/search-ui/filters/component/criterion/TransactionRecurrentFilterCriterion.js +17 -0
  23. package/cjs/component/search-ui/filters/component/criterion/TransactionRecurrentFilterCriterion.js.map +1 -0
  24. package/cjs/component/search-ui/filters/component/criterion/TransactionReportScopeCriterion.d.ts +2 -0
  25. package/cjs/component/search-ui/filters/component/criterion/TransactionReportScopeCriterion.js +43 -0
  26. package/cjs/component/search-ui/filters/component/criterion/TransactionReportScopeCriterion.js.map +1 -0
  27. package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.d.ts +11 -0
  28. package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js +19 -0
  29. package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js.map +1 -0
  30. package/cjs/component/search-ui/filters/publicConditions.js +56 -0
  31. package/cjs/component/search-ui/filters/publicConditions.js.map +1 -1
  32. package/cjs/component/search-ui/filters/state/actions.js +130 -5
  33. package/cjs/component/search-ui/filters/state/actions.js.map +1 -1
  34. package/cjs/component/search-ui/filters/state/initial.js +11 -0
  35. package/cjs/component/search-ui/filters/state/initial.js.map +1 -1
  36. package/cjs/component/search-ui/filters/state/retention.js +6 -0
  37. package/cjs/component/search-ui/filters/state/retention.js.map +1 -1
  38. package/cjs/component/search-ui/filters/state/type.d.ts +11 -1
  39. package/cjs/component/search-ui/filters/state/undo.js +6 -0
  40. package/cjs/component/search-ui/filters/state/undo.js.map +1 -1
  41. package/cjs/component/search-ui/filters/types.d.ts +34 -1
  42. package/cjs/component/search-ui/filters/types.js +36 -1
  43. package/cjs/component/search-ui/filters/types.js.map +1 -1
  44. package/cjs/component/search-ui/filters/validation.d.ts +17 -0
  45. package/cjs/component/search-ui/filters/validation.js +81 -0
  46. package/cjs/component/search-ui/filters/validation.js.map +1 -0
  47. package/cjs/component/search-ui/state/initial.js +6 -0
  48. package/cjs/component/search-ui/state/initial.js.map +1 -1
  49. package/cjs/component/search-ui/state/store.d.ts +12 -0
  50. package/cjs/exports/search.d.ts +2 -1
  51. package/cjs/exports/search.js +8 -1
  52. package/cjs/exports/search.js.map +1 -1
  53. package/esm/component/search-ui/SearchUI.d.ts +5 -0
  54. package/esm/component/search-ui/SearchUI.js +8 -2
  55. package/esm/component/search-ui/SearchUI.js.map +1 -1
  56. package/esm/component/search-ui/filters/CriterionContainer.js +15 -0
  57. package/esm/component/search-ui/filters/CriterionContainer.js.map +1 -1
  58. package/esm/component/search-ui/filters/SearchUIFilters.d.ts +11 -0
  59. package/esm/component/search-ui/filters/SearchUIFilters.js +49 -31
  60. package/esm/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  61. package/esm/component/search-ui/filters/component/criterion/CsvCharsetCriterion.d.ts +2 -0
  62. package/esm/component/search-ui/filters/component/criterion/CsvCharsetCriterion.js +17 -0
  63. package/esm/component/search-ui/filters/component/criterion/CsvCharsetCriterion.js.map +1 -0
  64. package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js +16 -16
  65. package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
  66. package/esm/component/search-ui/filters/component/criterion/TimeZoneCriterion.d.ts +2 -0
  67. package/esm/component/search-ui/filters/component/criterion/TimeZoneCriterion.js +28 -0
  68. package/esm/component/search-ui/filters/component/criterion/TimeZoneCriterion.js.map +1 -0
  69. package/esm/component/search-ui/filters/component/criterion/TransactionDateTypeCriterion.d.ts +3 -0
  70. package/esm/component/search-ui/filters/component/criterion/TransactionDateTypeCriterion.js +11 -0
  71. package/esm/component/search-ui/filters/component/criterion/TransactionDateTypeCriterion.js.map +1 -0
  72. package/esm/component/search-ui/filters/component/criterion/TransactionRecurrentFilterCriterion.d.ts +2 -0
  73. package/esm/component/search-ui/filters/component/criterion/TransactionRecurrentFilterCriterion.js +12 -0
  74. package/esm/component/search-ui/filters/component/criterion/TransactionRecurrentFilterCriterion.js.map +1 -0
  75. package/esm/component/search-ui/filters/component/criterion/TransactionReportScopeCriterion.d.ts +2 -0
  76. package/esm/component/search-ui/filters/component/criterion/TransactionReportScopeCriterion.js +38 -0
  77. package/esm/component/search-ui/filters/component/criterion/TransactionReportScopeCriterion.js.map +1 -0
  78. package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.d.ts +11 -0
  79. package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js +14 -0
  80. package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js.map +1 -0
  81. package/esm/component/search-ui/filters/publicConditions.js +57 -1
  82. package/esm/component/search-ui/filters/publicConditions.js.map +1 -1
  83. package/esm/component/search-ui/filters/state/actions.js +130 -5
  84. package/esm/component/search-ui/filters/state/actions.js.map +1 -1
  85. package/esm/component/search-ui/filters/state/initial.js +11 -0
  86. package/esm/component/search-ui/filters/state/initial.js.map +1 -1
  87. package/esm/component/search-ui/filters/state/retention.js +6 -0
  88. package/esm/component/search-ui/filters/state/retention.js.map +1 -1
  89. package/esm/component/search-ui/filters/state/type.d.ts +11 -1
  90. package/esm/component/search-ui/filters/state/undo.js +6 -0
  91. package/esm/component/search-ui/filters/state/undo.js.map +1 -1
  92. package/esm/component/search-ui/filters/types.d.ts +34 -1
  93. package/esm/component/search-ui/filters/types.js +35 -0
  94. package/esm/component/search-ui/filters/types.js.map +1 -1
  95. package/esm/component/search-ui/filters/validation.d.ts +17 -0
  96. package/esm/component/search-ui/filters/validation.js +75 -0
  97. package/esm/component/search-ui/filters/validation.js.map +1 -0
  98. package/esm/component/search-ui/state/initial.js +6 -0
  99. package/esm/component/search-ui/state/initial.js.map +1 -1
  100. package/esm/component/search-ui/state/store.d.ts +12 -0
  101. package/esm/exports/search.d.ts +2 -1
  102. package/esm/exports/search.js +2 -1
  103. package/esm/exports/search.js.map +1 -1
  104. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { CSV_CHARSETS } from '../../types';
4
+ import { useSearchUIFiltersStore } from '../../state/store';
5
+ import { SearchUIEnumChipSelect } from '../select/SearchUIEnumChipSelect';
6
+ const DEFAULT_OPTION = '__DEFAULT__';
7
+ const CSV_CHARSET_OPTIONS = [DEFAULT_OPTION, ...CSV_CHARSETS];
8
+ export const CsvCharsetCriterion = () => {
9
+ const { t } = useTranslation();
10
+ const csvCharset = useSearchUIFiltersStore(state => state.csvCharset);
11
+ const setCsvCharsetCriterion = useSearchUIFiltersStore(state => state.setCsvCharsetCriterion);
12
+ const selectedOption = csvCharset ?? DEFAULT_OPTION;
13
+ return React.createElement(SearchUIEnumChipSelect, { value: selectedOption, options: CSV_CHARSET_OPTIONS, onChange: value => setCsvCharsetCriterion(value === DEFAULT_OPTION ? null : value), getOptionLabel: value => value === DEFAULT_OPTION
14
+ ? t('react.searchUI.default', { defaultValue: 'Default' })
15
+ : value, ariaLabel: t('react.CriterionTypeEnum.CSV_CHARSET') });
16
+ };
17
+ //# sourceMappingURL=CsvCharsetCriterion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CsvCharsetCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/CsvCharsetCriterion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,YAAY,EAAa,MAAM,aAAa,CAAA;AACpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,kCAAkC,CAAA;AAEvE,MAAM,cAAc,GAAG,aAAa,CAAA;AACpC,MAAM,mBAAmB,GAAG,CAAC,cAAc,EAAE,GAAG,YAAY,CAAU,CAAA;AAEtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAC,CAAC,EAAC,GAAG,cAAc,EAAE,CAAA;IAE5B,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACrE,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC7F,MAAM,cAAc,GAAG,UAAU,IAAI,cAAc,CAAA;IAEnD,OAAO,oBAAC,sBAAsB,IAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CACrC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAmB,CACxD,EACD,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,cAAc;YAC7C,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAC,YAAY,EAAE,SAAS,EAAC,CAAC;YACxD,CAAC,CAAC,KAAK,EACX,SAAS,EAAE,CAAC,CAAC,qCAAqC,CAAC,GACrD,CAAA;AACN,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import SearchUIDateRangeSpecTypeSelect from '../select/SearchUIDateRangeSpecTypeSelect';
3
3
  import dayjs from 'dayjs';
4
- import { Box, useMediaQuery } from '@mui/material';
4
+ import { Box, FormHelperText, useMediaQuery } from '@mui/material';
5
5
  import { DateRangePicker, LocalizationProvider } from '@mui/x-date-pickers-pro';
6
6
  import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
7
7
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
@@ -10,13 +10,17 @@ import { PneTextField } from '../../../../..';
10
10
  import { SearchUIOrderDateTypeSelect } from '../select/SearchUIOrderDateTypeSelect';
11
11
  import { filtersInputSx } from './style';
12
12
  import { createDateOnlyPickerDate, createDateOnlyPickerValue, resolveDateOnlyTimeZone, } from '../../dateRangeTimeZone';
13
+ import { useTranslation } from 'react-i18next';
14
+ import { SEARCH_UI_DATE_RANGE_MAX_SPAN_EXCEEDED } from '../../validation';
13
15
  const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
14
16
  export const DateRangeCriterion = (props) => {
15
17
  const { showOrdersDateType } = props;
18
+ const { t } = useTranslation();
16
19
  const dateRangeSpec = useSearchUIFiltersStore(s => s.dateRangeSpec);
17
20
  const setDateRangeCriterion = useSearchUIFiltersStore(s => s.setDateRangeCriterion);
18
21
  const timeSelectionEnabledInConfig = useSearchUIFiltersStore(s => !!s.config?.dateRange?.enableTimeSelection);
19
22
  const dateOnlyTimeZone = useSearchUIFiltersStore(s => resolveDateOnlyTimeZone(s.config?.dateRange?.dateOnlyTimeZone));
23
+ const validationError = useSearchUIFiltersStore(s => s.validationResult.errors.find(error => error.code === SEARCH_UI_DATE_RANGE_MAX_SPAN_EXCEEDED));
20
24
  const changeBeforeCount = (event) => {
21
25
  const value = event.target.value;
22
26
  let beforeCount = 0;
@@ -118,8 +122,12 @@ export const DateRangeCriterion = (props) => {
118
122
  },
119
123
  popper: { placement: 'auto' },
120
124
  } }))
121
- : React.createElement(DateRangePicker, { sx: dateRangePickerSx, value: dateRange, onChange: handleSetDateRange, slotProps: {
125
+ : React.createElement(DateRangePicker, { value: dateRange, onChange: handleSetDateRange, slotProps: {
122
126
  popper: { placement: 'auto' },
127
+ textField: {
128
+ size: 'small',
129
+ sx: dateRangePickerSx,
130
+ },
123
131
  } }))
124
132
  : React.createElement(PneTextField, { value: dateRangeSpec.beforeCount || '', onChange: changeBeforeCount, type: 'number', slotProps: {
125
133
  htmlInput: { min: 1 },
@@ -129,26 +137,18 @@ export const DateRangeCriterion = (props) => {
129
137
  ml: '5px',
130
138
  width: '80px',
131
139
  }, size: 'small', variant: 'filled' })
132
- : null));
140
+ : null),
141
+ validationError ? React.createElement(FormHelperText, { error: true, role: 'alert', sx: { mt: 0, mb: '8px' } }, t(validationError.messageKey, validationError.params)) : null);
133
142
  };
134
143
  const dateRangePickerSx = {
135
- display: 'flex',
136
- flexDirection: 'column',
137
- height: '40px',
138
144
  '& .MuiFormLabel-root.MuiInputLabel-root': {
139
145
  display: 'none',
140
146
  },
141
- '& .MuiInputBase-input.MuiOutlinedInput-input': {
142
- p: '0 0 0 5px',
143
- height: '20px',
144
- fontSize: '14px',
147
+ '& .MuiPickersOutlinedInput-root': {
148
+ height: '40px',
145
149
  },
146
- '& .MuiOutlinedInput-notchedOutline': {
147
- borderRadius: '0',
148
- border: 'transparent !important',
149
- },
150
- '& .MuiFormControl-root.MuiTextField-root': {
151
- m: 0,
150
+ '& .MuiPickersInputBase-sectionsContainer': {
151
+ fontSize: '14px',
152
152
  },
153
153
  };
154
154
  const dateTimePickerContainerSx = {
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangeCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/DateRangeCriterion.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateRangeCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/DateRangeCriterion.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const TimeZoneCriterion: () => React.JSX.Element;
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { TIME_ZONE_OFFSET_HOURS } from '../../types';
4
+ import { useSearchUIFiltersStore } from '../../state/store';
5
+ import { SearchUIEnumChipSelect } from '../select/SearchUIEnumChipSelect';
6
+ const DEFAULT_OPTION = '__DEFAULT__';
7
+ const TIME_ZONE_OPTIONS = [
8
+ DEFAULT_OPTION,
9
+ ...TIME_ZONE_OFFSET_HOURS.map(String),
10
+ ];
11
+ export const TimeZoneCriterion = () => {
12
+ const { t } = useTranslation();
13
+ const timeZoneOffsetHours = useSearchUIFiltersStore(state => state.timeZoneOffsetHours);
14
+ const setTimeZoneCriterion = useSearchUIFiltersStore(state => state.setTimeZoneCriterion);
15
+ const selectedOption = timeZoneOffsetHours === null
16
+ ? DEFAULT_OPTION
17
+ : String(timeZoneOffsetHours);
18
+ return React.createElement(SearchUIEnumChipSelect, { value: selectedOption, options: TIME_ZONE_OPTIONS, onChange: value => setTimeZoneCriterion(value === DEFAULT_OPTION ? null : Number(value)), getOptionLabel: value => value === DEFAULT_OPTION
19
+ ? t('react.searchUI.default', { defaultValue: 'Default' })
20
+ : formatTimeZoneOffset(Number(value)), ariaLabel: t('react.CriterionTypeEnum.TIME_ZONE') });
21
+ };
22
+ const formatTimeZoneOffset = (offsetHours) => {
23
+ if (offsetHours === 0) {
24
+ return 'GMT';
25
+ }
26
+ return `GMT ${offsetHours > 0 ? '+' : ''}${offsetHours}`;
27
+ };
28
+ //# sourceMappingURL=TimeZoneCriterion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeZoneCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/TimeZoneCriterion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,sBAAsB,EAAsB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,kCAAkC,CAAA;AAEvE,MAAM,cAAc,GAAG,aAAa,CAAA;AACpC,MAAM,iBAAiB,GAAG;IACtB,cAAc;IACd,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;CAC/B,CAAA;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAClC,MAAM,EAAC,CAAC,EAAC,GAAG,cAAc,EAAE,CAAA;IAE5B,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACvF,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,mBAAmB,KAAK,IAAI;QAC/C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAEjC,OAAO,oBAAC,sBAAsB,IAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CACnC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAwB,CACzE,EACD,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,cAAc;YAC7C,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAC,YAAY,EAAE,SAAS,EAAC,CAAC;YACxD,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAwB,CAAC,EAChE,SAAS,EAAE,CAAC,CAAC,mCAAmC,CAAC,GACnD,CAAA;AACN,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,WAAgC,EAAU,EAAE;IACtE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,OAAO,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,CAAA;AAC5D,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ /** BANK is deprecated, so CREATED is the only supported transaction date dimension. */
3
+ export declare const TransactionDateTypeCriterion: () => React.JSX.Element;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Chip } from '@mui/material';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { useSearchUIFiltersStore } from '../../state/store';
5
+ /** BANK is deprecated, so CREATED is the only supported transaction date dimension. */
6
+ export const TransactionDateTypeCriterion = () => {
7
+ const { t } = useTranslation();
8
+ const datesType = useSearchUIFiltersStore(state => state.datesType);
9
+ return React.createElement(Chip, { label: t(`advancedSearch.transactionsDatesType.${datesType}`), size: 'small' });
10
+ };
11
+ //# sourceMappingURL=TransactionDateTypeCriterion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionDateTypeCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/TransactionDateTypeCriterion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAA;AAEzD,uFAAuF;AACvF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAC,CAAC,EAAC,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAEnE,OAAO,oBAAC,IAAI,IACR,KAAK,EAAE,CAAC,CAAC,wCAAwC,SAAS,EAAE,CAAC,EAC7D,IAAI,EAAE,OAAO,GACf,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const TransactionRecurrentFilterCriterion: () => React.JSX.Element;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { TRANSACTION_RECURRENT_FILTERS } from '../../types';
4
+ import { useSearchUIFiltersStore } from '../../state/store';
5
+ import { SearchUIEnumChipSelect } from '../select/SearchUIEnumChipSelect';
6
+ export const TransactionRecurrentFilterCriterion = () => {
7
+ const { t } = useTranslation();
8
+ const recurrentFilter = useSearchUIFiltersStore(state => state.recurrentFilter);
9
+ const setTransactionRecurrentFilterCriterion = useSearchUIFiltersStore(state => state.setTransactionRecurrentFilterCriterion);
10
+ return React.createElement(SearchUIEnumChipSelect, { value: recurrentFilter, options: TRANSACTION_RECURRENT_FILTERS, onChange: setTransactionRecurrentFilterCriterion, getOptionLabel: value => t(`recurrentFilterType.${value}`), ariaLabel: t('react.CriterionTypeEnum.TRANSACTION_RECURRENT_FILTER') });
11
+ };
12
+ //# sourceMappingURL=TransactionRecurrentFilterCriterion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionRecurrentFilterCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/TransactionRecurrentFilterCriterion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAA;AACzD,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,kCAAkC,CAAA;AAEvE,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,EAAE;IACpD,MAAM,EAAC,CAAC,EAAC,GAAG,cAAc,EAAE,CAAA;IAE5B,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAC/E,MAAM,sCAAsC,GAAG,uBAAuB,CAClE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,sCAAsC,CACxD,CAAA;IAED,OAAO,oBAAC,sBAAsB,IAC1B,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,6BAA6B,EACtC,QAAQ,EAAE,sCAAsC,EAChD,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,KAAK,EAAE,CAAC,EAC1D,SAAS,EAAE,CAAC,CAAC,sDAAsD,CAAC,GACtE,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const TransactionReportScopeCriterion: () => React.JSX.Element;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { Box } from '@mui/material';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { PneTextField } from '../../../../..';
5
+ import { TRANSACTION_REPORT_SCOPES } from '../../types';
6
+ import { useSearchUIFiltersStore } from '../../state/store';
7
+ import { SearchUIEnumChipSelect } from '../select/SearchUIEnumChipSelect';
8
+ export const TransactionReportScopeCriterion = () => {
9
+ const { t } = useTranslation();
10
+ const scope = useSearchUIFiltersStore(state => state.scope);
11
+ const transactionIds = useSearchUIFiltersStore(state => state.transactionIds);
12
+ const setTransactionReportScopeCriterion = useSearchUIFiltersStore(state => state.setTransactionReportScopeCriterion);
13
+ const setTransactionIdsCriterion = useSearchUIFiltersStore(state => state.setTransactionIdsCriterion);
14
+ return React.createElement(Box, { sx: criterionSx },
15
+ React.createElement(SearchUIEnumChipSelect, { value: scope, options: TRANSACTION_REPORT_SCOPES, onChange: setTransactionReportScopeCriterion, getOptionLabel: value => t(`transactionReportScope.${value}`), ariaLabel: t('react.CriterionTypeEnum.TRANSACTION_REPORT_SCOPE') }),
16
+ scope !== 'ALL' ? React.createElement(PneTextField, { value: transactionIds, onChange: event => setTransactionIdsCriterion(event.target.value), label: t('react.searchUI.transactionIds'), multiline: true, rows: 6, fullWidth: true, size: 'small', variant: 'outlined', slotProps: {
17
+ htmlInput: {
18
+ 'aria-label': t('react.searchUI.transactionIds'),
19
+ },
20
+ }, sx: transactionIdsSx }) : null);
21
+ };
22
+ const criterionSx = {
23
+ display: 'flex',
24
+ flexDirection: 'column',
25
+ alignItems: 'flex-start',
26
+ gap: '8px',
27
+ width: '100%',
28
+ py: '8px',
29
+ };
30
+ const transactionIdsSx = {
31
+ width: '100%',
32
+ maxWidth: '400px',
33
+ '& .MuiInputBase-input': {
34
+ fontSize: '13px',
35
+ lineHeight: '18px',
36
+ },
37
+ };
38
+ //# sourceMappingURL=TransactionReportScopeCriterion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionReportScopeCriterion.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/criterion/TransactionReportScopeCriterion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,GAAG,EAAU,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAA;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,kCAAkC,CAAA;AAEvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,EAAE;IAChD,MAAM,EAAC,CAAC,EAAC,GAAG,cAAc,EAAE,CAAA;IAE5B,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC7E,MAAM,kCAAkC,GAAG,uBAAuB,CAC9D,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kCAAkC,CACpD,CAAA;IACD,MAAM,0BAA0B,GAAG,uBAAuB,CACtD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAC5C,CAAA;IAED,OAAO,oBAAC,GAAG,IAAC,EAAE,EAAE,WAAW;QACvB,oBAAC,sBAAsB,IACnB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,yBAAyB,EAClC,QAAQ,EAAE,kCAAkC,EAC5C,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B,KAAK,EAAE,CAAC,EAC7D,SAAS,EAAE,CAAC,CAAC,kDAAkD,CAAC,GAClE;QACD,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,oBAAC,YAAY,IAC5B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACjE,KAAK,EAAE,CAAC,CAAC,+BAA+B,CAAC,EACzC,SAAS,QACT,IAAI,EAAE,CAAC,EACP,SAAS,QACT,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE;gBACP,SAAS,EAAE;oBACP,YAAY,EAAE,CAAC,CAAC,+BAA+B,CAAC;iBACnD;aACJ,EACD,EAAE,EAAE,gBAAgB,GACtB,CAAC,CAAC,CAAC,IAAI,CACP,CAAA;AACV,CAAC,CAAA;AAED,MAAM,WAAW,GAAY;IACzB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,MAAM;IACb,EAAE,EAAE,KAAK;CACZ,CAAA;AAED,MAAM,gBAAgB,GAAY;IAC9B,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,OAAO;IACjB,uBAAuB,EAAE;QACrB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,MAAM;KACrB;CACJ,CAAA"}
@@ -0,0 +1,11 @@
1
+ import React, { ReactNode } from 'react';
2
+ interface IProps<T extends string> {
3
+ value: T;
4
+ options: readonly T[];
5
+ onChange: (value: T) => void;
6
+ getOptionLabel: (value: T) => ReactNode;
7
+ ariaLabel: string;
8
+ }
9
+ /** Compact single-value selector shared by Search UI enum-like criteria. */
10
+ export declare const SearchUIEnumChipSelect: <T extends string>(props: IProps<T>) => React.JSX.Element;
11
+ export {};
@@ -0,0 +1,14 @@
1
+ import React, { useState } from 'react';
2
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
3
+ import { Box, Chip } from '@mui/material';
4
+ import { PneSelect } from '../../../../..';
5
+ import { selectUnderChipSx } from './style';
6
+ /** Compact single-value selector shared by Search UI enum-like criteria. */
7
+ export const SearchUIEnumChipSelect = (props) => {
8
+ const { value, options, onChange, getOptionLabel, ariaLabel, } = props;
9
+ const [open, setOpen] = useState(false);
10
+ return React.createElement(Box, { sx: { position: 'relative', display: 'inline-flex', flexShrink: 0 } },
11
+ React.createElement(Chip, { onDelete: () => setOpen(true), deleteIcon: React.createElement(ExpandMoreIcon, null), label: getOptionLabel(value), size: 'small' }),
12
+ React.createElement(PneSelect, { "aria-label": ariaLabel, open: open, onClose: () => setOpen(false), onOpen: () => setOpen(true), sx: selectUnderChipSx, getOptionLabel: option => getOptionLabel(option.label), value: value, onChange: option => onChange(option), options: options }));
13
+ };
14
+ //# sourceMappingURL=SearchUIEnumChipSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchUIEnumChipSelect.js","sourceRoot":"","sources":["../../../../../../src/component/search-ui/filters/component/select/SearchUIEnumChipSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAY,QAAQ,EAAC,MAAM,OAAO,CAAA;AAChD,OAAO,cAAc,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAUzC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAqB,KAAgB,EAAE,EAAE;IAC3E,MAAM,EACF,KAAK,EACL,OAAO,EACP,QAAQ,EACR,cAAc,EACd,SAAS,GACZ,GAAG,KAAK,CAAA;IAET,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvC,OAAO,oBAAC,GAAG,IAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAC;QACzE,oBAAC,IAAI,IACD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAC7B,UAAU,EAAE,oBAAC,cAAc,OAAE,EAC7B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAC5B,IAAI,EAAE,OAAO,GACf;QACF,oBAAC,SAAS,kBACM,SAAS,EACrB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAC3B,EAAE,EAAE,iBAAiB,EACrB,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,KAAU,CAAC,EAC3D,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAW,CAAC,EACzC,OAAO,EAAE,OAAO,GAClB,CACA,CAAA;AACV,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { DATE_RANGE_SPEC_TYPES, } from './types';
1
+ import { CSV_CHARSETS, DATE_RANGE_SPEC_TYPES, TIME_ZONE_OFFSET_HOURS, TRANSACTION_DATE_TYPES, TRANSACTION_RECURRENT_FILTERS, TRANSACTION_REPORT_SCOPES, } from './types';
2
2
  const hasOwn = (value, key) => (Object.prototype.hasOwnProperty.call(value, key));
3
3
  const fail = (source, message) => {
4
4
  throw new Error(`[pne-ui] Invalid ${source}: ${message}`);
@@ -27,6 +27,35 @@ const assertDateRangeSpecType = (value, source) => {
27
27
  }
28
28
  return value;
29
29
  };
30
+ const assertString = (value, source) => {
31
+ if (typeof value !== 'string') {
32
+ return fail(source, 'expected a string');
33
+ }
34
+ return value;
35
+ };
36
+ const assertStringValue = (value, allowedValues, source) => {
37
+ if (typeof value !== 'string' || !allowedValues.includes(value)) {
38
+ return fail(source, `unknown value "${String(value)}"`);
39
+ }
40
+ return value;
41
+ };
42
+ const assertTimeZoneOffsetHours = (value, source) => {
43
+ if (value === null) {
44
+ return null;
45
+ }
46
+ if (typeof value !== 'number'
47
+ || !Number.isInteger(value)
48
+ || !TIME_ZONE_OFFSET_HOURS.includes(value)) {
49
+ return fail(source, 'expected null or an integer from -12 through 12');
50
+ }
51
+ return value;
52
+ };
53
+ const assertCsvCharset = (value, source) => {
54
+ if (value === null) {
55
+ return null;
56
+ }
57
+ return assertStringValue(value, CSV_CHARSETS, source);
58
+ };
30
59
  /**
31
60
  * Runtime counterpart of SearchUIDateRangeSpec for JavaScript and values widened
32
61
  * through `any`. This is deliberately used only at the public props boundary;
@@ -89,9 +118,36 @@ export const toSearchUIConditionsState = (input, source, allowCriteria) => {
89
118
  }
90
119
  const { dateRangeSpec, ...rest } = input;
91
120
  const stateConditions = rest;
121
+ // Partial<T> permits explicitly undefined properties unless consumers opt
122
+ // into exactOptionalPropertyTypes. Treat those properties as omitted instead
123
+ // of allowing them to overwrite initialized store defaults.
124
+ delete stateConditions.scope;
125
+ delete stateConditions.transactionIds;
126
+ delete stateConditions.datesType;
127
+ delete stateConditions.recurrentFilter;
128
+ delete stateConditions.timeZoneOffsetHours;
129
+ delete stateConditions.csvCharset;
92
130
  if (dateRangeSpec !== undefined) {
93
131
  stateConditions.dateRangeSpec = toDateRangeState(dateRangeSpec, `${source}.dateRangeSpec`);
94
132
  }
133
+ if (hasOwn(value, 'scope') && value.scope !== undefined) {
134
+ stateConditions.scope = assertStringValue(value.scope, TRANSACTION_REPORT_SCOPES, `${source}.scope`);
135
+ }
136
+ if (hasOwn(value, 'transactionIds') && value.transactionIds !== undefined) {
137
+ stateConditions.transactionIds = assertString(value.transactionIds, `${source}.transactionIds`);
138
+ }
139
+ if (hasOwn(value, 'datesType') && value.datesType !== undefined) {
140
+ stateConditions.datesType = assertStringValue(value.datesType, TRANSACTION_DATE_TYPES, `${source}.datesType`);
141
+ }
142
+ if (hasOwn(value, 'recurrentFilter') && value.recurrentFilter !== undefined) {
143
+ stateConditions.recurrentFilter = assertStringValue(value.recurrentFilter, TRANSACTION_RECURRENT_FILTERS, `${source}.recurrentFilter`);
144
+ }
145
+ if (hasOwn(value, 'timeZoneOffsetHours') && value.timeZoneOffsetHours !== undefined) {
146
+ stateConditions.timeZoneOffsetHours = assertTimeZoneOffsetHours(value.timeZoneOffsetHours, `${source}.timeZoneOffsetHours`);
147
+ }
148
+ if (hasOwn(value, 'csvCharset') && value.csvCharset !== undefined) {
149
+ stateConditions.csvCharset = assertCsvCharset(value.csvCharset, `${source}.csvCharset`);
150
+ }
95
151
  return stateConditions;
96
152
  };
97
153
  //# sourceMappingURL=publicConditions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publicConditions.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/publicConditions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publicConditions.js","sourceRoot":"","sources":["../../../../src/component/search-ui/filters/publicConditions.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ import { getConcreteCustomerLevelMerchantId } from '../customerLevelDependencies
14
14
  import { extractRestrictedEntityIds, normalizeRestrictedEntityCollection, } from '../entityOptionRestriction';
15
15
  import { isSearchUIRetentionSnapshotCompatible } from './retention';
16
16
  import { getLastSearchUITemplateStorageKey } from '../templateStorage';
17
+ import { validateSearchUIFiltersState, } from '../validation';
17
18
  dayjs.extend(utc);
18
19
  dayjs.extend(timezone);
19
20
  dayjs.extend(isoWeek);
@@ -191,7 +192,10 @@ export const getSearchUIFiltersActions = (set, get) => ({
191
192
  draft.templates = normalizedTemplates;
192
193
  }
193
194
  ensureCustomerLevelDependenciesReducer(draft);
194
- if (retainedSnapshot && isSearchUIRetentionSnapshotCompatible(retainedSnapshot, initialState)) {
195
+ if (options?.initialConditions !== undefined) {
196
+ applyConditionsReducer(draft, options.initialConditions);
197
+ }
198
+ else if (retainedSnapshot && isSearchUIRetentionSnapshotCompatible(retainedSnapshot, initialState)) {
195
199
  applyConditionsReducer(draft, retainedSnapshot.searchConditions);
196
200
  draft.activeTemplateName = retainedSnapshot.activeTemplateName;
197
201
  draft.restoredFromRetention = true;
@@ -219,11 +223,23 @@ export const getSearchUIFiltersActions = (set, get) => ({
219
223
  normalizeRelativeDateRange(set, get);
220
224
  }
221
225
  ensureTransactionSessionStatusesPrefetched(set, get);
226
+ const validationResult = syncValidation(set, get, true);
222
227
  if (get().restoredFromRetention && retainedSnapshot && retainedDraftSearchCriteria) {
223
228
  const currentSearchCriteria = extractSearchCriteriaFromState(get());
224
229
  const appliedSearchCriteria = get().config?.manualSearch
225
230
  ? restoreAppliedSearchCriteria(retainedSnapshot, retainedDraftSearchCriteria, currentSearchCriteria)
226
231
  : currentSearchCriteria;
232
+ if (!validationResult.isValid) {
233
+ const retainedAppliedSearchCriteria = get().config?.manualSearch
234
+ ? retainedSnapshot.appliedSearchCriteria
235
+ : null;
236
+ set(draft => {
237
+ draft.prevSearchCriteria = retainedAppliedSearchCriteria;
238
+ draft.appliedSearchCriteria = retainedAppliedSearchCriteria;
239
+ draft.hasUnappliedFilters = true;
240
+ });
241
+ return;
242
+ }
227
243
  get().onFiltersUpdate(appliedSearchCriteria);
228
244
  set((draft) => {
229
245
  draft.prevSearchCriteria = currentSearchCriteria;
@@ -267,15 +283,20 @@ export const getSearchUIFiltersActions = (set, get) => ({
267
283
  });
268
284
  syncCriterionAvailability(set, get);
269
285
  const currentSearchCriteria = extractSearchCriteriaFromState(get());
270
- if (!hasUnappliedFilters) {
286
+ const validationResult = syncValidation(set, get);
287
+ if (validationResult.isValid && !hasUnappliedFilters) {
271
288
  get().onFiltersUpdate(currentSearchCriteria);
272
289
  }
273
290
  set(draft => {
274
- draft.prevSearchCriteria = currentSearchCriteria;
275
- if (!hasUnappliedFilters) {
291
+ if (validationResult.isValid) {
292
+ draft.prevSearchCriteria = currentSearchCriteria;
293
+ }
294
+ if (validationResult.isValid && !hasUnappliedFilters) {
276
295
  draft.appliedSearchCriteria = currentSearchCriteria;
277
296
  }
278
- draft.hasUnappliedFilters = hasUnappliedFilters;
297
+ draft.hasUnappliedFilters = validationResult.isValid
298
+ ? hasUnappliedFilters
299
+ : true;
279
300
  });
280
301
  },
281
302
  clearCriteria: () => {
@@ -647,8 +668,51 @@ export const getSearchUIFiltersActions = (set, get) => ({
647
668
  });
648
669
  postUpdate(set, get);
649
670
  },
671
+ setTransactionReportScopeCriterion: scope => {
672
+ set(draft => {
673
+ draft.scope = scope;
674
+ });
675
+ postUpdate(set, get);
676
+ },
677
+ setTransactionIdsCriterion: transactionIds => {
678
+ set(draft => {
679
+ draft.transactionIds = transactionIds;
680
+ });
681
+ postUpdate(set, get);
682
+ },
683
+ setTransactionDateTypeCriterion: datesType => {
684
+ set(draft => {
685
+ draft.datesType = datesType;
686
+ });
687
+ postUpdate(set, get);
688
+ },
689
+ setTransactionRecurrentFilterCriterion: recurrentFilter => {
690
+ set(draft => {
691
+ draft.recurrentFilter = recurrentFilter;
692
+ });
693
+ postUpdate(set, get);
694
+ },
695
+ setTimeZoneCriterion: timeZoneOffsetHours => {
696
+ set(draft => {
697
+ draft.timeZoneOffsetHours = timeZoneOffsetHours;
698
+ });
699
+ postUpdate(set, get);
700
+ },
701
+ setCsvCharsetCriterion: csvCharset => {
702
+ set(draft => {
703
+ draft.csvCharset = csvCharset;
704
+ });
705
+ postUpdate(set, get);
706
+ },
650
707
  triggerSearch: () => {
651
708
  normalizeRelativeDateRange(set, get);
709
+ const validationResult = syncValidation(set, get);
710
+ if (!validationResult.isValid) {
711
+ set(draft => {
712
+ draft.hasUnappliedFilters = true;
713
+ });
714
+ return;
715
+ }
652
716
  const currentSearchCriteria = extractSearchCriteriaFromState(get());
653
717
  get().onFiltersUpdate(currentSearchCriteria);
654
718
  set((draft) => {
@@ -709,6 +773,11 @@ const addInitialMultigetCriterionReducer = (draft, criterionType) => {
709
773
  case CriterionTypeEnum.PROCESSOR_LOG_ENTRY_TYPE:
710
774
  case CriterionTypeEnum.ERROR_CODE:
711
775
  case CriterionTypeEnum.COUNTRIES:
776
+ case CriterionTypeEnum.TRANSACTION_REPORT_SCOPE:
777
+ case CriterionTypeEnum.TRANSACTION_DATE_TYPE:
778
+ case CriterionTypeEnum.TRANSACTION_RECURRENT_FILTER:
779
+ case CriterionTypeEnum.TIME_ZONE:
780
+ case CriterionTypeEnum.CSV_CHARSET:
712
781
  // not multiget, so do nothing
713
782
  break;
714
783
  default:
@@ -818,6 +887,22 @@ const clearCriterionReducer = (draft, criterionType) => {
818
887
  case CriterionTypeEnum.ERROR_CODE:
819
888
  draft.errorCode = getSearchUIInitialSearchCriteria(draft.defaults).errorCode;
820
889
  break;
890
+ case CriterionTypeEnum.TRANSACTION_REPORT_SCOPE:
891
+ draft.scope = getSearchUIInitialSearchCriteria(draft.defaults).scope;
892
+ draft.transactionIds = getSearchUIInitialSearchCriteria(draft.defaults).transactionIds;
893
+ break;
894
+ case CriterionTypeEnum.TRANSACTION_DATE_TYPE:
895
+ draft.datesType = getSearchUIInitialSearchCriteria(draft.defaults).datesType;
896
+ break;
897
+ case CriterionTypeEnum.TRANSACTION_RECURRENT_FILTER:
898
+ draft.recurrentFilter = getSearchUIInitialSearchCriteria(draft.defaults).recurrentFilter;
899
+ break;
900
+ case CriterionTypeEnum.TIME_ZONE:
901
+ draft.timeZoneOffsetHours = getSearchUIInitialSearchCriteria(draft.defaults).timeZoneOffsetHours;
902
+ break;
903
+ case CriterionTypeEnum.CSV_CHARSET:
904
+ draft.csvCharset = getSearchUIInitialSearchCriteria(draft.defaults).csvCharset;
905
+ break;
821
906
  default:
822
907
  exhaustiveCheck(criterionType);
823
908
  throw new Error('Unknown criterion type: ' + criterionType);
@@ -1090,6 +1175,15 @@ const restorePredefinedCriterionReducer = (draft, criterion) => {
1090
1175
  };
1091
1176
  const checkIfFiltersChanged = (set, get, options) => {
1092
1177
  const currentSearchCriteria = extractSearchCriteriaFromState(get());
1178
+ const validationResult = syncValidation(set, get);
1179
+ if (!validationResult.isValid) {
1180
+ if (!get().hasUnappliedFilters) {
1181
+ set(draft => {
1182
+ draft.hasUnappliedFilters = true;
1183
+ });
1184
+ }
1185
+ return;
1186
+ }
1093
1187
  if (!isEqual(get().prevSearchCriteria, currentSearchCriteria)) {
1094
1188
  const isManualSearch = get().config?.manualSearch;
1095
1189
  const isInitialLoad = get().prevSearchCriteria === null;
@@ -1109,6 +1203,25 @@ const checkIfFiltersChanged = (set, get, options) => {
1109
1203
  });
1110
1204
  }
1111
1205
  }
1206
+ else if (get().hasUnappliedFilters
1207
+ && isEqual(get().appliedSearchCriteria, currentSearchCriteria)) {
1208
+ set(draft => {
1209
+ draft.hasUnappliedFilters = false;
1210
+ });
1211
+ }
1212
+ };
1213
+ const syncValidation = (set, get, forceCallback = false) => {
1214
+ const validationResult = validateSearchUIFiltersState(get());
1215
+ const validationChanged = !isEqual(get().validationResult, validationResult);
1216
+ if (validationChanged) {
1217
+ set(draft => {
1218
+ draft.validationResult = validationResult;
1219
+ });
1220
+ }
1221
+ if (validationChanged || forceCallback) {
1222
+ get().onValidationChange(validationResult);
1223
+ }
1224
+ return validationResult;
1112
1225
  };
1113
1226
  const extractSearchCriteriaFromState = (state) => {
1114
1227
  const timeSelectionEnabled = isDateRangeTimeSelectionEnabled(state.criteria, state.config);
@@ -1148,6 +1261,12 @@ const extractSearchCriteriaFromState = (state) => {
1148
1261
  markerStatus: extractMarkerStatus(state.markerStatus),
1149
1262
  processorLogEntryType: extractProcessorLogEntryType(state.processorLogEntryType),
1150
1263
  errorCode: extractErrorCode(state.errorCode),
1264
+ scope: state.scope,
1265
+ transactionIds: state.transactionIds,
1266
+ datesType: state.datesType,
1267
+ recurrentFilter: state.recurrentFilter,
1268
+ timeZoneOffsetHours: state.timeZoneOffsetHours,
1269
+ csvCharset: state.csvCharset,
1151
1270
  };
1152
1271
  };
1153
1272
  const getTemplate = (templateName, store) => ({
@@ -1180,6 +1299,12 @@ const getTemplate = (templateName, store) => ({
1180
1299
  markerStatus: store.markerStatus,
1181
1300
  processorLogEntryType: store.processorLogEntryType,
1182
1301
  errorCode: store.errorCode,
1302
+ scope: store.scope,
1303
+ transactionIds: store.transactionIds,
1304
+ datesType: store.datesType,
1305
+ recurrentFilter: store.recurrentFilter,
1306
+ timeZoneOffsetHours: store.timeZoneOffsetHours,
1307
+ csvCharset: store.csvCharset,
1183
1308
  },
1184
1309
  });
1185
1310
  const calculateNonExactDates = (dateRangeSpec, timeZone = SEARCH_UI_NON_EXACT_DEFAULT_TIME_ZONE) => {