@bigbinary/neeto-filters-frontend 4.3.32 → 4.3.34

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 (101) hide show
  1. package/README.md +0 -2
  2. package/dist/.ready +1 -0
  3. package/dist/Bar.js +15 -26
  4. package/dist/Bar.js.map +1 -1
  5. package/dist/Filters.js +8 -7
  6. package/dist/Filters.js.map +1 -1
  7. package/dist/Segments.js +12 -9
  8. package/dist/Segments.js.map +1 -1
  9. package/dist/cjs/Bar.js +19 -30
  10. package/dist/cjs/Bar.js.map +1 -1
  11. package/dist/cjs/Filters.js +8 -7
  12. package/dist/cjs/Filters.js.map +1 -1
  13. package/dist/cjs/Segments.js +8 -5
  14. package/dist/cjs/Segments.js.map +1 -1
  15. package/dist/cjs/hooks.js +1 -1
  16. package/dist/cjs/index.js +9 -4
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/utils.js +2 -1
  19. package/dist/cjs/utils.js.map +1 -1
  20. package/dist/cjs/v2/Bar.js +661 -0
  21. package/dist/cjs/v2/Bar.js.map +1 -0
  22. package/dist/cjs/v2/Filters.js +336 -0
  23. package/dist/cjs/v2/Filters.js.map +1 -0
  24. package/dist/cjs/v2/Segments.js +520 -0
  25. package/dist/cjs/v2/Segments.js.map +1 -0
  26. package/dist/cjs/v2/index.js +58 -0
  27. package/dist/cjs/v2/index.js.map +1 -0
  28. package/dist/cjs/v2/utils.js +70 -0
  29. package/dist/cjs/v2/utils.js.map +1 -0
  30. package/dist/{constants-8DtAPJaA.js → constants-BaYBNRZa.js} +2 -2
  31. package/dist/{constants-8DtAPJaA.js.map → constants-BaYBNRZa.js.map} +1 -1
  32. package/dist/dayjs-9rsrbiYS.js +6 -0
  33. package/dist/dayjs-9rsrbiYS.js.map +1 -0
  34. package/dist/dayjs-DNGB9yJD.js +4 -0
  35. package/dist/dayjs-DNGB9yJD.js.map +1 -0
  36. package/dist/hooks.js +2 -2
  37. package/dist/{index-Bq32eLIG.js → index-BCnobjnZ.js} +5 -18
  38. package/dist/index-BCnobjnZ.js.map +1 -0
  39. package/dist/index-BD5y7_BW.js +969 -0
  40. package/dist/index-BD5y7_BW.js.map +1 -0
  41. package/dist/index-BxEtpFbP.js +301 -0
  42. package/dist/index-BxEtpFbP.js.map +1 -0
  43. package/dist/{index-CzUm_HaL.js → index-Bzw5oKqg.js} +48 -166
  44. package/dist/index-Bzw5oKqg.js.map +1 -0
  45. package/dist/index-C4AC0OfA.js +967 -0
  46. package/dist/index-C4AC0OfA.js.map +1 -0
  47. package/dist/{index-Rn6zFKPg.js → index-Cdvbpy-b.js} +30 -147
  48. package/dist/index-Cdvbpy-b.js.map +1 -0
  49. package/dist/index-CpgjbwJP.js +299 -0
  50. package/dist/index-CpgjbwJP.js.map +1 -0
  51. package/dist/{index-BYRIatjo.js → index-aOxl-IeV.js} +6 -38
  52. package/dist/index-aOxl-IeV.js.map +1 -0
  53. package/dist/index.js +10 -5
  54. package/dist/index.js.map +1 -1
  55. package/dist/inject-css-B6qYtOJe.js +6 -0
  56. package/dist/inject-css-B6qYtOJe.js.map +1 -0
  57. package/dist/inject-css-C2dztUxs.js +4 -0
  58. package/dist/inject-css-C2dztUxs.js.map +1 -0
  59. package/dist/keyboardShortcuts-DcgoM1dR.js +20 -0
  60. package/dist/keyboardShortcuts-DcgoM1dR.js.map +1 -0
  61. package/dist/keyboardShortcuts-oiJyIaFr.js +18 -0
  62. package/dist/keyboardShortcuts-oiJyIaFr.js.map +1 -0
  63. package/dist/{useSegmentsApi-wYy0UPCH.js → useSegmentsApi-C6mffm-a.js} +4 -4
  64. package/dist/{useSegmentsApi-wYy0UPCH.js.map → useSegmentsApi-C6mffm-a.js.map} +1 -1
  65. package/dist/{useSegmentsApi-CDE1HWEv.js → useSegmentsApi-DlvMy4A9.js} +2 -2
  66. package/dist/{useSegmentsApi-CDE1HWEv.js.map → useSegmentsApi-DlvMy4A9.js.map} +1 -1
  67. package/dist/utils-B3464cET.js +126 -0
  68. package/dist/utils-B3464cET.js.map +1 -0
  69. package/dist/utils-BUFBOQlR.js +802 -0
  70. package/dist/utils-BUFBOQlR.js.map +1 -0
  71. package/dist/utils-Cj2MY2tu.js +38 -0
  72. package/dist/utils-Cj2MY2tu.js.map +1 -0
  73. package/dist/utils-ClTYBS1C.js +865 -0
  74. package/dist/utils-ClTYBS1C.js.map +1 -0
  75. package/dist/utils-CwKBnC3c.js +17 -0
  76. package/dist/utils-CwKBnC3c.js.map +1 -0
  77. package/dist/{utils-BuCOQsNv.js → utils-CzRCzZ3I.js} +3 -4
  78. package/dist/utils-CzRCzZ3I.js.map +1 -0
  79. package/dist/utils-Dh5ByFPA.js +138 -0
  80. package/dist/utils-Dh5ByFPA.js.map +1 -0
  81. package/dist/{utils-CxVWpPGf.js → utils-Q-OTPVjq.js} +8 -9
  82. package/dist/utils-Q-OTPVjq.js.map +1 -0
  83. package/dist/utils.js +3 -2
  84. package/dist/utils.js.map +1 -1
  85. package/dist/v2/Bar.js +659 -0
  86. package/dist/v2/Bar.js.map +1 -0
  87. package/dist/v2/Filters.js +334 -0
  88. package/dist/v2/Filters.js.map +1 -0
  89. package/dist/v2/Segments.js +518 -0
  90. package/dist/v2/Segments.js.map +1 -0
  91. package/dist/v2/index.js +42 -0
  92. package/dist/v2/index.js.map +1 -0
  93. package/dist/v2/utils.js +12 -0
  94. package/dist/v2/utils.js.map +1 -0
  95. package/package.json +41 -28
  96. package/dist/index-BYRIatjo.js.map +0 -1
  97. package/dist/index-Bq32eLIG.js.map +0 -1
  98. package/dist/index-CzUm_HaL.js.map +0 -1
  99. package/dist/index-Rn6zFKPg.js.map +0 -1
  100. package/dist/utils-BuCOQsNv.js.map +0 -1
  101. package/dist/utils-CxVWpPGf.js.map +0 -1
@@ -0,0 +1,969 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var neetoCist = require('@bigbinary/neeto-cist');
5
+ var ramda = require('ramda');
6
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
8
+ var reactI18next = require('react-i18next');
9
+ var utils$1 = require('./utils-CzRCzZ3I.js');
10
+ var v2_utils = require('./utils-ClTYBS1C.js');
11
+ var constants = require('./constants-DoHD7obf.js');
12
+ require('./dayjs-9rsrbiYS.js');
13
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
14
+ var jsxRuntime = require('react/jsx-runtime');
15
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
16
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
17
+
18
+ var getOtherProps = function getOtherProps(props) {
19
+ return ramda.omit(["key", "node", "label", "type", "values", "model", "showRuleSelector"], props);
20
+ };
21
+ var buildDropdownOptions = function buildDropdownOptions(_ref3) {
22
+ var defaultType = _ref3.defaultType,
23
+ filter = _ref3.filter,
24
+ _ref3$options = _ref3.options,
25
+ options = _ref3$options === void 0 ? [] : _ref3$options;
26
+ if (ramda.isEmpty(options)) {
27
+ if (v2_utils.isDateRange(defaultType)) {
28
+ options = constants.DATE_RANGE_OPTIONS;
29
+ } else if (v2_utils.isTimeRange(defaultType)) {
30
+ options = constants.TIME_RANGE_OPTIONS;
31
+ }
32
+ }
33
+ options = options.map(ramda.modify("value", function (value) {
34
+ return value === null || value === void 0 ? void 0 : value.toString();
35
+ }));
36
+ if (!filter) return options;
37
+ if (v2_utils.isMulti(defaultType)) {
38
+ var selectedOptions = filter.value.map(function (value) {
39
+ return neetoCist.findBy({
40
+ value: value
41
+ }, options) || neetoCist.toLabelAndValue(value);
42
+ });
43
+ var nonSelectedOptions = options.filter(function (option) {
44
+ return !filter.value.includes(option.value);
45
+ });
46
+ return ramda.concat(selectedOptions, nonSelectedOptions);
47
+ }
48
+ if (!neetoCist.findBy({
49
+ value: filter.value
50
+ }, options)) {
51
+ return ramda.append(neetoCist.toLabelAndValue(filter.value), options);
52
+ }
53
+ return options;
54
+ };
55
+ var initializeDateRule = function initializeDateRule(filter) {
56
+ return filter ? neetoCist.findBy({
57
+ value: filter === null || filter === void 0 ? void 0 : filter.value
58
+ }, constants.DATE_OPTIONS) || findDateOption(filter, constants.DATE_OPTIONS) : {};
59
+ };
60
+ var getDateValue = function getDateValue(value, rule) {
61
+ if (ramda.isEmpty(value) || ramda.isNil(value)) {
62
+ return null;
63
+ }
64
+ if (rule.value === "custom-date-range") {
65
+ return value;
66
+ }
67
+ return rule.value === "before" ? utils.dayjs(value[1]).add(1, "day") : utils.dayjs(value[0]).subtract(1, "day");
68
+ };
69
+ var findDateOption = function findDateOption(filter, options) {
70
+ var value = filter.value;
71
+ var isBeforeOrAfter = utils.dayjs(value[1]).diff(utils.dayjs(value[0]), "year") >= 90;
72
+ if (ramda.not(isBeforeOrAfter)) {
73
+ return ramda.last(options);
74
+ }
75
+ var currentMoment = utils.dayjs();
76
+ var diffWithStart = Math.abs(currentMoment.diff(utils.dayjs(value[0]), "year"));
77
+ var diffWithEnd = Math.abs(currentMoment.diff(utils.dayjs(value[1]), "year"));
78
+ return diffWithStart < diffWithEnd ? neetoCist.findBy({
79
+ value: "after"
80
+ }, options) : neetoCist.findBy({
81
+ value: "before"
82
+ }, options);
83
+ };
84
+ var buildDateValues = function buildDateValues(dates, selectedRule) {
85
+ if (selectedRule.value === "after") {
86
+ return [dates.add(1, "day"), dates.add(100, "year")];
87
+ } else if (selectedRule.value === "before") {
88
+ return [dates.subtract(100, "year"), dates.subtract(1, "day")];
89
+ }
90
+ return dates;
91
+ };
92
+ var buildHelpIconProps = function buildHelpIconProps(helpIconProps) {
93
+ return ramda.mergeDeepRight(v2_utils.DEFAULT_HELP_ICON_PROPS, helpIconProps);
94
+ };
95
+ var hasInvalidTimes = function hasInvalidTimes(times) {
96
+ if (neetoCist.isNotPresent(times)) return false;
97
+ if (Array.isArray(times)) {
98
+ return times.some(function (time) {
99
+ return time.isValid();
100
+ }) === false;
101
+ }
102
+ return !times.isValid();
103
+ };
104
+ var areCustomTimeRangeValuesNotValid = function areCustomTimeRangeValuesNotValid(times) {
105
+ return !times.every(function (time) {
106
+ return time.isValid();
107
+ });
108
+ };
109
+ var isRuleEmpty = function isRuleEmpty(rule) {
110
+ return ramda.equals(rule, "is_unknown");
111
+ };
112
+
113
+ function ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
114
+ function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
115
+ var Boolean = function Boolean(_ref) {
116
+ var _filter$value;
117
+ var column = _ref.column,
118
+ filter = _ref.filter,
119
+ handleApplyFilter = _ref.handleApplyFilter,
120
+ autoFocus = _ref.autoFocus;
121
+ var key = column.key,
122
+ _column$defaultType = column.defaultType,
123
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
124
+ label = column.label,
125
+ values = column.values,
126
+ _column$helpIconProps = column.helpIconProps,
127
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
128
+ var options = neetoCist.isNotPresent(values) ? utils$1.isCheckbox(defaultType) ? v2_utils.CHECKBOX_OPTIONS : v2_utils.DEFAULT_BOOLEAN_OPTIONS : values;
129
+ var otherProps = getOtherProps(column);
130
+ var value = (_filter$value = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value !== void 0 ? _filter$value : null;
131
+ var _useTranslation = reactI18next.useTranslation(),
132
+ t = _useTranslation.t;
133
+ var handleChange = function handleChange(selectedValue) {
134
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
135
+ handleApplyFilter({
136
+ _delete: true
137
+ });
138
+ return;
139
+ }
140
+ var option = neetoCist.findBy({
141
+ value: selectedValue
142
+ }, options);
143
+ var updatedFilter = utils$1.buildUpdatedFilter({
144
+ column: column,
145
+ defaultType: defaultType,
146
+ option: option
147
+ });
148
+ handleApplyFilter(updatedFilter);
149
+ };
150
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
151
+ className: "neeto-filters-pane-filter__item-wrapper",
152
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$7(_objectSpread$7({
153
+ autoFocus: autoFocus,
154
+ label: label,
155
+ options: options,
156
+ value: value,
157
+ isClearable: true
158
+ }, neetoCist.isNotEmpty(helpIconProps) && {
159
+ labelProps: {
160
+ helpIconProps: buildHelpIconProps(helpIconProps)
161
+ }
162
+ }), {}, {
163
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
164
+ strategy: "fixed",
165
+ placeholder: t("neetoFilters.messages.selectOption", {
166
+ resource: label
167
+ }),
168
+ onChange: handleChange
169
+ }, otherProps))
170
+ });
171
+ };
172
+ var Boolean$1 = /*#__PURE__*/react.memo(Boolean);
173
+
174
+ function ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
175
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
176
+ var Datetime = function Datetime(_ref) {
177
+ var column = _ref.column,
178
+ filter = _ref.filter,
179
+ handleApplyFilter = _ref.handleApplyFilter,
180
+ autoFocus = _ref.autoFocus;
181
+ var _useState = react.useState(function () {
182
+ var _initializeDateRule$v, _initializeDateRule;
183
+ return (_initializeDateRule$v = (_initializeDateRule = initializeDateRule(filter)) === null || _initializeDateRule === void 0 ? void 0 : _initializeDateRule.value) !== null && _initializeDateRule$v !== void 0 ? _initializeDateRule$v : null;
184
+ }),
185
+ _useState2 = _slicedToArray(_useState, 2),
186
+ selectedRule = _useState2[0],
187
+ setSelectedRule = _useState2[1];
188
+ var _useTranslation = reactI18next.useTranslation(),
189
+ t = _useTranslation.t;
190
+ var key = column.key,
191
+ _column$defaultType = column.defaultType,
192
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
193
+ label = column.label,
194
+ _column$helpIconProps = column.helpIconProps,
195
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
196
+ var isDatePickerShown = filter && utils$1.isCustomDateRange(filter.value);
197
+ var otherProps = getOtherProps(column);
198
+ var handleChange = function handleChange(selectedValue) {
199
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
200
+ handleApplyFilter({
201
+ _delete: true
202
+ });
203
+ setSelectedRule(null);
204
+ return;
205
+ }
206
+ setSelectedRule(selectedValue);
207
+ var option = neetoCist.findBy({
208
+ value: selectedValue
209
+ }, constants.DATE_OPTIONS);
210
+ var updatedFilter = utils$1.buildUpdatedFilter({
211
+ column: column,
212
+ defaultType: defaultType,
213
+ option: option
214
+ });
215
+ handleApplyFilter(updatedFilter);
216
+ };
217
+ var handleDateRangeChange = function handleDateRangeChange(dates) {
218
+ if (ramda.isEmpty(dates) || ramda.isNil(dates)) {
219
+ handleApplyFilter({
220
+ _delete: true
221
+ });
222
+ setSelectedRule(null);
223
+ return;
224
+ }
225
+ var updatedFilter = utils$1.buildUpdatedFilter({
226
+ column: column,
227
+ defaultType: defaultType,
228
+ option: {
229
+ value: buildDateValues(dates, {
230
+ value: selectedRule
231
+ }).map(function (date) {
232
+ return date.toISOString();
233
+ })
234
+ }
235
+ });
236
+ handleApplyFilter(updatedFilter);
237
+ };
238
+ react.useEffect(function () {
239
+ ramda.isNil(filter) && setSelectedRule(null);
240
+ }, [filter]);
241
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
242
+ className: "neeto-filters-pane-filter__item-wrapper",
243
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$6(_objectSpread$6({
244
+ autoFocus: autoFocus,
245
+ label: label,
246
+ isClearable: true,
247
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
248
+ options: constants.DATE_OPTIONS,
249
+ strategy: "fixed",
250
+ value: selectedRule,
251
+ placeholder: t("neetoFilters.messages.selectResource", {
252
+ resource: label
253
+ })
254
+ }, neetoCist.isNotEmpty(helpIconProps) && {
255
+ labelProps: {
256
+ helpIconProps: buildHelpIconProps(helpIconProps)
257
+ }
258
+ }), {}, {
259
+ onChange: handleChange
260
+ })), isDatePickerShown && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DatePicker, _objectSpread$6({
261
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-date-range"),
262
+ getPopupContainer: ramda.prop("parentNode"),
263
+ type: selectedRule === "custom-date-range" ? "range" : "date",
264
+ value: getDateValue(filter === null || filter === void 0 ? void 0 : filter.value, {
265
+ value: selectedRule
266
+ }),
267
+ onChange: handleDateRangeChange
268
+ }, otherProps))]
269
+ });
270
+ };
271
+ var Datetime$1 = /*#__PURE__*/react.memo(Datetime);
272
+
273
+ function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
274
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
275
+ var Dropdown = function Dropdown(_ref) {
276
+ var _filter$value, _filter$value2;
277
+ var column = _ref.column,
278
+ filter = _ref.filter,
279
+ handleApplyFilter = _ref.handleApplyFilter,
280
+ autoFocus = _ref.autoFocus,
281
+ filters = _ref.filters;
282
+ var key = column.key,
283
+ label = column.label,
284
+ values = column.values,
285
+ defaultValue = column.defaultValue,
286
+ _column$defaultType = column.defaultType,
287
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
288
+ _column$showRuleSelec = column.showRuleSelector,
289
+ showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
290
+ _column$isClearable = column.isClearable,
291
+ isClearable = _column$isClearable === void 0 ? true : _column$isClearable,
292
+ _column$helpIconProps = column.helpIconProps,
293
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
294
+ var otherProps = getOtherProps(column);
295
+ var options = buildDropdownOptions({
296
+ defaultType: defaultType,
297
+ filter: filter,
298
+ options: values
299
+ });
300
+ var dropdownRules = v2_utils.isMulti(defaultType) ? v2_utils.MULTI_DROPDOWN_RULES : v2_utils.SINGLE_DROPDOWN_RULES;
301
+ var value = v2_utils.isMulti(defaultType) ? (_filter$value = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value !== void 0 ? _filter$value : [] : (_filter$value2 = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value2 !== void 0 ? _filter$value2 : null;
302
+ var _useState = react.useState(function () {
303
+ return (neetoCist.findBy({
304
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
305
+ }, dropdownRules) || dropdownRules[0]).value;
306
+ }),
307
+ _useState2 = _slicedToArray(_useState, 2),
308
+ selectedRule = _useState2[0],
309
+ setSelectedRule = _useState2[1];
310
+ var _useTranslation = reactI18next.useTranslation(),
311
+ t = _useTranslation.t;
312
+ var getOption = function getOption(isSelectedRuleEmpty, options, value) {
313
+ if (isSelectedRuleEmpty) {
314
+ return v2_utils.isMulti(defaultType) ? [options[0]] : options[0];
315
+ }
316
+ if (v2_utils.isMulti(defaultType)) {
317
+ return options.filter(function (o) {
318
+ return value === null || value === void 0 ? void 0 : value.includes(o.value);
319
+ });
320
+ }
321
+ return neetoCist.findBy({
322
+ value: value
323
+ }, options);
324
+ };
325
+ var handleRuleChange = function handleRuleChange(ruleValue) {
326
+ var isPreviousRuleEmpty = isRuleEmpty(selectedRule);
327
+ var isNewRuleEmpty = isRuleEmpty(ruleValue);
328
+ setSelectedRule(ruleValue);
329
+ if (isPreviousRuleEmpty || !isNewRuleEmpty && neetoCist.isNotPresent(filter === null || filter === void 0 ? void 0 : filter.value)) {
330
+ handleApplyFilter({
331
+ _delete: true
332
+ });
333
+ return;
334
+ }
335
+ var updatedFilter = v2_utils.buildUpdatedFilter({
336
+ column: column,
337
+ defaultType: defaultType,
338
+ rule: ruleValue,
339
+ option: getOption(isNewRuleEmpty, options, value)
340
+ });
341
+ handleApplyFilter(updatedFilter);
342
+ };
343
+ var handleChange = function handleChange(selectedValue) {
344
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
345
+ handleApplyFilter({
346
+ _delete: true
347
+ });
348
+ return;
349
+ }
350
+ var option = v2_utils.isMulti(defaultType) ? options.filter(function (o) {
351
+ return selectedValue.includes(o.value);
352
+ }) : neetoCist.findBy({
353
+ value: selectedValue
354
+ }, options);
355
+ var updatedFilter = v2_utils.buildUpdatedFilter({
356
+ column: column,
357
+ defaultType: defaultType,
358
+ option: option,
359
+ rule: selectedRule
360
+ });
361
+ handleApplyFilter(updatedFilter);
362
+ };
363
+ react.useEffect(function () {
364
+ if (!ramda.isEmpty(filters)) return;
365
+ isRuleEmpty(selectedRule) && setSelectedRule(dropdownRules[0].value);
366
+ }, [filters]);
367
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
368
+ className: "neeto-filters-pane-filter__item-wrapper",
369
+ children: [showRuleSelector && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, {
370
+ label: label,
371
+ defaultValue: dropdownRules[0].value,
372
+ options: dropdownRules,
373
+ value: selectedRule,
374
+ onChange: handleRuleChange
375
+ }), !isRuleEmpty(selectedRule) && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$5(_objectSpread$5({
376
+ autoFocus: autoFocus,
377
+ options: options,
378
+ value: value,
379
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
380
+ isClearable: !defaultValue && isClearable,
381
+ isMulti: v2_utils.isMulti(defaultType),
382
+ label: !showRuleSelector && label,
383
+ strategy: "fixed",
384
+ placeholder: t("neetoFilters.messages.selectResource", {
385
+ resource: label
386
+ })
387
+ }, neetoCist.isNotEmpty(helpIconProps) && {
388
+ labelProps: {
389
+ helpIconProps: buildHelpIconProps(helpIconProps)
390
+ }
391
+ }), {}, {
392
+ onChange: handleChange
393
+ }, otherProps))]
394
+ });
395
+ };
396
+ var Dropdown$1 = /*#__PURE__*/react.memo(Dropdown);
397
+
398
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
399
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
400
+ var SingleDatetime = function SingleDatetime(_ref) {
401
+ var column = _ref.column,
402
+ filter = _ref.filter,
403
+ filters = _ref.filters,
404
+ handleApplyFilter = _ref.handleApplyFilter,
405
+ autoFocus = _ref.autoFocus;
406
+ var _useState = react.useState(function () {
407
+ return (neetoCist.findBy({
408
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
409
+ }, constants.SINGLE_DATE_OPTIONS) || constants.SINGLE_DATE_OPTIONS[0]).value;
410
+ }),
411
+ _useState2 = _slicedToArray(_useState, 2),
412
+ selectedRule = _useState2[0],
413
+ setSelectedRule = _useState2[1];
414
+ var key = column.key,
415
+ _column$defaultType = column.defaultType,
416
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
417
+ label = column.label,
418
+ _column$helpIconProps = column.helpIconProps,
419
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
420
+ var otherProps = getOtherProps(column);
421
+ var datePickerType = selectedRule === "between" ? "range" : "date";
422
+ var value = filter === null || filter === void 0 ? void 0 : filter.value;
423
+
424
+ // Reset states when "Clear filters" button is clicked.
425
+ react.useEffect(function () {
426
+ if (!ramda.isEmpty(filters)) return;
427
+ setSelectedRule(constants.SINGLE_DATE_OPTIONS[0].value);
428
+ }, [filters]);
429
+ var handleRuleChange = function handleRuleChange(ruleValue) {
430
+ setSelectedRule(ruleValue);
431
+
432
+ // Clear value if switched between incompatible types
433
+ var updateValue = value;
434
+ if (datePickerType === "range" && ruleValue !== "between" || datePickerType === "date" && ruleValue === "between") {
435
+ updateValue = "";
436
+ }
437
+ var updatedFilter = utils$1.buildUpdatedFilter({
438
+ column: column,
439
+ defaultType: defaultType,
440
+ option: {},
441
+ rule: ruleValue,
442
+ value: updateValue
443
+ });
444
+ handleApplyFilter(updatedFilter);
445
+ };
446
+ var handleChange = function handleChange(dates) {
447
+ if (ramda.isEmpty(dates) || ramda.isNil(dates)) {
448
+ handleApplyFilter({
449
+ _delete: true
450
+ });
451
+ return;
452
+ }
453
+ var value = datePickerType === "range" ? dates.map(function (date) {
454
+ return date.toISOString();
455
+ }) : dates;
456
+ var updatedFilter = utils$1.buildUpdatedFilter({
457
+ column: column,
458
+ defaultType: defaultType,
459
+ option: {},
460
+ rule: selectedRule,
461
+ value: value
462
+ });
463
+ handleApplyFilter(updatedFilter);
464
+ };
465
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
466
+ className: "neeto-filters-pane-filter__item-wrapper",
467
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$4(_objectSpread$4({
468
+ label: label,
469
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter-rule"),
470
+ defaultValue: constants.SINGLE_DATE_OPTIONS[0].value,
471
+ options: constants.SINGLE_DATE_OPTIONS,
472
+ strategy: "fixed",
473
+ value: selectedRule
474
+ }, neetoCist.isNotEmpty(helpIconProps) && {
475
+ labelProps: {
476
+ helpIconProps: buildHelpIconProps(helpIconProps)
477
+ }
478
+ }), {}, {
479
+ onChange: handleRuleChange
480
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DatePicker, _objectSpread$4({
481
+ autoFocus: autoFocus,
482
+ value: value,
483
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
484
+ getPopupContainer: ramda.prop("parentNode"),
485
+ type: datePickerType,
486
+ onChange: handleChange
487
+ }, otherProps))]
488
+ });
489
+ };
490
+
491
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
492
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
493
+ var SingleTime = function SingleTime(_ref) {
494
+ var column = _ref.column,
495
+ filter = _ref.filter,
496
+ filters = _ref.filters,
497
+ handleApplyFilter = _ref.handleApplyFilter,
498
+ autoFocus = _ref.autoFocus;
499
+ var _useState = react.useState(function () {
500
+ return (neetoCist.findBy({
501
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
502
+ }, constants.SINGLE_TIME_OPTIONS) || constants.SINGLE_TIME_OPTIONS[0]).value;
503
+ }),
504
+ _useState2 = _slicedToArray(_useState, 2),
505
+ selectedRule = _useState2[0],
506
+ setSelectedRule = _useState2[1];
507
+ var key = column.key,
508
+ _column$defaultType = column.defaultType,
509
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
510
+ label = column.label,
511
+ _column$helpIconProps = column.helpIconProps,
512
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
513
+ var otherProps = getOtherProps(column);
514
+ var timePickerType = selectedRule === "between" ? "range" : "time";
515
+ var value = filter === null || filter === void 0 ? void 0 : filter.value;
516
+ react.useEffect(function () {
517
+ if (!ramda.isEmpty(filters)) return;
518
+ setSelectedRule(constants.SINGLE_TIME_OPTIONS[0].value);
519
+ }, [filters]);
520
+ var handleRuleChange = function handleRuleChange(ruleValue) {
521
+ setSelectedRule(ruleValue);
522
+
523
+ // Clear value if switched between incompatible types
524
+ var updateValue = value;
525
+ if (timePickerType === "range" && ruleValue !== "between" || timePickerType === "time" && ruleValue === "between") {
526
+ updateValue = "";
527
+ }
528
+ var updatedFilter = utils$1.buildUpdatedFilter({
529
+ column: column,
530
+ defaultType: defaultType,
531
+ option: {},
532
+ rule: ruleValue,
533
+ value: updateValue
534
+ });
535
+ handleApplyFilter(updatedFilter);
536
+ };
537
+ var handleChange = function handleChange(times) {
538
+ if (hasInvalidTimes(times)) {
539
+ handleApplyFilter({
540
+ _delete: true
541
+ });
542
+ return;
543
+ }
544
+ if (timePickerType === "range" && areCustomTimeRangeValuesNotValid(times)) {
545
+ return;
546
+ }
547
+ var value = timePickerType === "range" ? times === null || times === void 0 ? void 0 : times.map(function (time) {
548
+ return time.toISOString();
549
+ }) : times === null || times === void 0 ? void 0 : times.toISOString();
550
+ var updatedFilter = utils$1.buildUpdatedFilter({
551
+ column: column,
552
+ defaultType: defaultType,
553
+ option: {},
554
+ rule: selectedRule,
555
+ value: value
556
+ });
557
+ handleApplyFilter(updatedFilter);
558
+ };
559
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
560
+ className: "neeto-filters-pane-filter__item-wrapper",
561
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$3(_objectSpread$3({
562
+ label: label,
563
+ defaultValue: constants.SINGLE_TIME_OPTIONS[0].value,
564
+ options: constants.SINGLE_TIME_OPTIONS,
565
+ strategy: "fixed",
566
+ value: selectedRule
567
+ }, neetoCist.isNotEmpty(helpIconProps) && {
568
+ labelProps: {
569
+ helpIconProps: buildHelpIconProps(helpIconProps)
570
+ }
571
+ }), {}, {
572
+ onChange: handleRuleChange
573
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.TimePicker, _objectSpread$3({
574
+ autoFocus: autoFocus,
575
+ value: value,
576
+ className: "w-full",
577
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
578
+ format: v2_utils.TIME_FORMAT,
579
+ type: timePickerType,
580
+ onChange: handleChange
581
+ }, otherProps))]
582
+ });
583
+ };
584
+
585
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
586
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
587
+ var Text = function Text(_ref) {
588
+ var column = _ref.column,
589
+ filter = _ref.filter,
590
+ filters = _ref.filters,
591
+ handleApplyFilter = _ref.handleApplyFilter,
592
+ autoFocus = _ref.autoFocus,
593
+ onClose = _ref.onClose;
594
+ var key = column.key,
595
+ _column$defaultType = column.defaultType,
596
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
597
+ label = column.label,
598
+ _column$showRuleSelec = column.showRuleSelector,
599
+ showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
600
+ _column$helpIconProps = column.helpIconProps,
601
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
602
+ var otherProps = getOtherProps(column);
603
+ var ruleOptions = utils$1.buildRuleOptions({
604
+ defaultType: defaultType
605
+ });
606
+ var inputType = defaultType === "text" || defaultType === "custom.text" ? "text" : "number";
607
+ var _useState = react.useState(filter === null || filter === void 0 ? void 0 : filter.value),
608
+ _useState2 = _slicedToArray(_useState, 2),
609
+ inputValue = _useState2[0],
610
+ setInputValue = _useState2[1];
611
+ var _useState3 = react.useState(function () {
612
+ return (neetoCist.findBy({
613
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
614
+ }, ruleOptions) || ruleOptions[0]).value;
615
+ }),
616
+ _useState4 = _slicedToArray(_useState3, 2),
617
+ selectedRule = _useState4[0],
618
+ setSelectedRule = _useState4[1];
619
+ var debouncedInputValue = reactUtils.useDebounce(inputValue);
620
+ var _useTranslation = reactI18next.useTranslation(),
621
+ t = _useTranslation.t;
622
+ var handleUpdateAndApplyFilter = function handleUpdateAndApplyFilter() {
623
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : debouncedInputValue;
624
+ var ruleValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : selectedRule;
625
+ if (ramda.equals(filter === null || filter === void 0 ? void 0 : filter.value, value) && ramda.equals(selectedRule, ruleValue)) return;
626
+ var updatedFilter = utils$1.buildUpdatedFilter({
627
+ column: column,
628
+ defaultType: defaultType,
629
+ option: {},
630
+ rule: ruleValue,
631
+ value: value.trim()
632
+ });
633
+ handleApplyFilter(updatedFilter);
634
+ };
635
+ var handleKeydown = function handleKeydown(e) {
636
+ if (!(e.key === "Enter")) return;
637
+ handleUpdateAndApplyFilter(inputValue);
638
+ onClose();
639
+ };
640
+ var handleRuleChange = function handleRuleChange(ruleValue) {
641
+ setSelectedRule(ruleValue);
642
+ if (!debouncedInputValue) return;
643
+ handleUpdateAndApplyFilter(debouncedInputValue, ruleValue);
644
+ };
645
+
646
+ // Reset states when "Clear filters" button is clicked.
647
+ react.useEffect(function () {
648
+ (ramda.isEmpty(filters) || ramda.isNil(filter)) && setInputValue("");
649
+ }, [filter]);
650
+ react.useEffect(function () {
651
+ if (!debouncedInputValue) {
652
+ !utils$1.isUndefinedOrEmpty(filter) && handleApplyFilter({
653
+ _delete: true
654
+ });
655
+ return;
656
+ }
657
+ handleUpdateAndApplyFilter();
658
+ }, [debouncedInputValue]);
659
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
660
+ className: "neeto-filters-pane-filter__item-wrapper",
661
+ children: [showRuleSelector && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$2({
662
+ label: label,
663
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter-rule"),
664
+ defaultValue: ruleOptions[0].value,
665
+ options: ruleOptions,
666
+ strategy: "fixed",
667
+ value: selectedRule,
668
+ onChange: handleRuleChange
669
+ }, neetoCist.isNotEmpty(helpIconProps) && {
670
+ labelProps: {
671
+ helpIconProps: buildHelpIconProps(helpIconProps)
672
+ }
673
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Input, _objectSpread$2(_objectSpread$2({
674
+ autoFocus: autoFocus,
675
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
676
+ label: !showRuleSelector && label,
677
+ type: inputType,
678
+ value: inputValue
679
+ }, neetoCist.isNotEmpty(helpIconProps) && {
680
+ labelProps: {
681
+ helpIconProps: buildHelpIconProps(helpIconProps)
682
+ }
683
+ }), {}, {
684
+ placeholder: t("neetoFilters.messages.enterResource", {
685
+ resource: label
686
+ }),
687
+ onChange: function onChange(event) {
688
+ return setInputValue(event.target.value);
689
+ },
690
+ onKeyDown: handleKeydown
691
+ }, otherProps))]
692
+ });
693
+ };
694
+
695
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
696
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
697
+ var Time = function Time(_ref) {
698
+ var _filter$value;
699
+ var column = _ref.column,
700
+ filter = _ref.filter,
701
+ handleApplyFilter = _ref.handleApplyFilter,
702
+ autoFocus = _ref.autoFocus;
703
+ var key = column.key,
704
+ _column$defaultType = column.defaultType,
705
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
706
+ label = column.label,
707
+ _column$helpIconProps = column.helpIconProps,
708
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
709
+ var otherProps = getOtherProps(column);
710
+ var value = (_filter$value = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value !== void 0 ? _filter$value : null;
711
+ var isCustomTimeRangeShown = filter && utils$1.isCustomTimeRange(filter.value);
712
+ var _useTranslation = reactI18next.useTranslation(),
713
+ t = _useTranslation.t;
714
+ var handleChange = function handleChange(selectedValue) {
715
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
716
+ handleApplyFilter({
717
+ _delete: true
718
+ });
719
+ return;
720
+ }
721
+ var option = neetoCist.findBy({
722
+ value: selectedValue
723
+ }, constants.TIME_OPTIONS);
724
+ var updatedFilter = utils$1.buildUpdatedFilter({
725
+ column: column,
726
+ defaultType: defaultType,
727
+ option: option
728
+ });
729
+ handleApplyFilter(updatedFilter);
730
+ };
731
+ var handleTimeRangeChange = function handleTimeRangeChange(times) {
732
+ if (hasInvalidTimes(times)) {
733
+ handleApplyFilter({
734
+ _delete: true
735
+ });
736
+ return;
737
+ }
738
+ if (isCustomTimeRangeShown && areCustomTimeRangeValuesNotValid(times)) {
739
+ return;
740
+ }
741
+ var updatedFilter = utils$1.buildUpdatedFilter({
742
+ column: column,
743
+ defaultType: defaultType,
744
+ option: {
745
+ value: times.map(function (time) {
746
+ return time.toISOString();
747
+ })
748
+ }
749
+ });
750
+ handleApplyFilter(updatedFilter);
751
+ };
752
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
753
+ className: "neeto-filters-pane-filter__item-wrapper",
754
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$1(_objectSpread$1({
755
+ autoFocus: autoFocus,
756
+ label: label,
757
+ value: value,
758
+ isClearable: true,
759
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
760
+ options: constants.TIME_OPTIONS,
761
+ strategy: "fixed",
762
+ placeholder: t("neetoFilters.messages.selectResource", {
763
+ resource: label
764
+ })
765
+ }, neetoCist.isNotEmpty(helpIconProps) && {
766
+ labelProps: {
767
+ helpIconProps: buildHelpIconProps(helpIconProps)
768
+ }
769
+ }), {}, {
770
+ onChange: handleChange
771
+ })), isCustomTimeRangeShown && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.TimePicker, _objectSpread$1({
772
+ className: "w-full",
773
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-date-range"),
774
+ format: v2_utils.TIME_FORMAT,
775
+ type: "range",
776
+ value: filter.value,
777
+ onChange: handleTimeRangeChange
778
+ }, otherProps))]
779
+ });
780
+ };
781
+ var Time$1 = /*#__PURE__*/react.memo(Time);
782
+
783
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
784
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
785
+ var TreeSelect = function TreeSelect(_ref) {
786
+ var _findBy, _filter$value;
787
+ var autoFocus = _ref.autoFocus,
788
+ column = _ref.column,
789
+ filter = _ref.filter,
790
+ handleApplyFilter = _ref.handleApplyFilter;
791
+ var key = column.key,
792
+ label = column.label,
793
+ _column$defaultType = column.defaultType,
794
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
795
+ defaultValue = column.defaultValue,
796
+ _column$helpIconProps = column.helpIconProps,
797
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps,
798
+ _column$isClearable = column.isClearable,
799
+ isClearable = _column$isClearable === void 0 ? true : _column$isClearable,
800
+ _column$showRuleSelec = column.showRuleSelector,
801
+ showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
802
+ options = column.values;
803
+ var initialRule = ((_findBy = neetoCist.findBy({
804
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
805
+ }, v2_utils.TREE_SELECT_RULES)) !== null && _findBy !== void 0 ? _findBy : v2_utils.TREE_SELECT_RULES[0]).value;
806
+ var _useState = react.useState(initialRule),
807
+ _useState2 = _slicedToArray(_useState, 2),
808
+ selectedRule = _useState2[0],
809
+ setSelectedRule = _useState2[1];
810
+ var _useTranslation = reactI18next.useTranslation(),
811
+ t = _useTranslation.t;
812
+ var selectedOption = (_filter$value = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value !== void 0 ? _filter$value : [];
813
+ var handleChange = function handleChange(option) {
814
+ if (neetoCist.isNotPresent(option)) return handleApplyFilter({
815
+ _delete: true
816
+ });
817
+ var updatedFilter = utils$1.buildUpdatedFilter({
818
+ column: column,
819
+ defaultType: defaultType,
820
+ option: option,
821
+ rule: selectedRule
822
+ });
823
+ return handleApplyFilter(updatedFilter);
824
+ };
825
+ var handleRuleChange = function handleRuleChange(ruleValue) {
826
+ var isPreviousRuleEmpty = isRuleEmpty(selectedRule);
827
+ var isNewRuleEmpty = isRuleEmpty(ruleValue);
828
+ setSelectedRule(ruleValue);
829
+ if (isPreviousRuleEmpty || !isNewRuleEmpty && neetoCist.isNotPresent(filter === null || filter === void 0 ? void 0 : filter.value)) {
830
+ return handleApplyFilter({
831
+ _delete: true
832
+ });
833
+ }
834
+ var updatedFilter = utils$1.buildUpdatedFilter({
835
+ column: column,
836
+ defaultType: defaultType,
837
+ option: isNewRuleEmpty ? [options[0]] : selectedOption,
838
+ rule: ruleValue
839
+ });
840
+ return handleApplyFilter(updatedFilter);
841
+ };
842
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
843
+ className: "neeto-filters-pane-filter__item-wrapper",
844
+ children: [showRuleSelector && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, {
845
+ label: label,
846
+ defaultValue: v2_utils.TREE_SELECT_RULES[0].value,
847
+ options: v2_utils.TREE_SELECT_RULES,
848
+ value: selectedRule,
849
+ onChange: handleRuleChange
850
+ }), !isRuleEmpty(selectedRule) &&
851
+ /*#__PURE__*/
852
+ // eslint-disable-next-line @bigbinary/neeto/merge-spread-attributes
853
+ jsxRuntime.jsx(neetoAtoms.TreeSelect, _objectSpread(_objectSpread({
854
+ autoFocus: autoFocus,
855
+ multiple: true,
856
+ showSearch: true,
857
+ treeDataSimpleMode: true,
858
+ allowClear: !defaultValue && isClearable,
859
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
860
+ label: !showRuleSelector && label,
861
+ treeData: options,
862
+ value: selectedOption,
863
+ placeholder: t("neetoFilters.messages.selectResource", {
864
+ resource: label
865
+ }),
866
+ onChange: handleChange
867
+ }, neetoCist.isNotEmpty(helpIconProps) && {
868
+ labelProps: {
869
+ helpIconProps: buildHelpIconProps(helpIconProps)
870
+ }
871
+ }), getOtherProps(column)))]
872
+ });
873
+ };
874
+ var TreeSelect$1 = /*#__PURE__*/react.memo(TreeSelect);
875
+
876
+ var Item = function Item(_ref) {
877
+ var column = _ref.column,
878
+ filters = _ref.filters,
879
+ onChange = _ref.onChange,
880
+ autoFocus = _ref.autoFocus,
881
+ _ref$onClose = _ref.onClose,
882
+ onClose = _ref$onClose === void 0 ? neetoCist.noop : _ref$onClose;
883
+ var key = column.key,
884
+ _column$defaultType = column.defaultType,
885
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType;
886
+ var filter = react.useMemo(function () {
887
+ return neetoCist.findBy({
888
+ key: key
889
+ }, filters);
890
+ }, [filters, key]);
891
+ var handleApplyFilter = function handleApplyFilter(updatedFilter) {
892
+ if (updatedFilter._delete) onChange(neetoCist.removeBy({
893
+ key: key
894
+ }, filters));else if (!filter) onChange(ramda.append(updatedFilter, filters));else onChange(neetoCist.replaceBy({
895
+ key: key
896
+ }, updatedFilter, filters));
897
+ };
898
+ if (v2_utils.isText(defaultType) || v2_utils.isDigit(defaultType)) {
899
+ return /*#__PURE__*/jsxRuntime.jsx(Text, {
900
+ autoFocus: autoFocus,
901
+ column: column,
902
+ filter: filter,
903
+ filters: filters,
904
+ handleApplyFilter: handleApplyFilter,
905
+ onClose: onClose
906
+ });
907
+ }
908
+ if (v2_utils.isDate(defaultType)) {
909
+ return /*#__PURE__*/jsxRuntime.jsx(Datetime$1, {
910
+ autoFocus: autoFocus,
911
+ column: column,
912
+ filter: filter,
913
+ handleApplyFilter: handleApplyFilter
914
+ });
915
+ }
916
+ if (v2_utils.isTime(defaultType)) {
917
+ return /*#__PURE__*/jsxRuntime.jsx(Time$1, {
918
+ autoFocus: autoFocus,
919
+ column: column,
920
+ filter: filter,
921
+ handleApplyFilter: handleApplyFilter
922
+ });
923
+ }
924
+ if (v2_utils.isSingleDate(defaultType)) {
925
+ return /*#__PURE__*/jsxRuntime.jsx(SingleDatetime, {
926
+ autoFocus: autoFocus,
927
+ column: column,
928
+ filter: filter,
929
+ filters: filters,
930
+ handleApplyFilter: handleApplyFilter
931
+ });
932
+ }
933
+ if (v2_utils.isSingleTime(defaultType)) {
934
+ return /*#__PURE__*/jsxRuntime.jsx(SingleTime, {
935
+ autoFocus: autoFocus,
936
+ column: column,
937
+ filter: filter,
938
+ filters: filters,
939
+ handleApplyFilter: handleApplyFilter
940
+ });
941
+ }
942
+ if (v2_utils.isBoolean(defaultType) || v2_utils.isCheckbox(defaultType)) {
943
+ return /*#__PURE__*/jsxRuntime.jsx(Boolean$1, {
944
+ autoFocus: autoFocus,
945
+ column: column,
946
+ defaultType: defaultType,
947
+ filter: filter,
948
+ handleApplyFilter: handleApplyFilter
949
+ });
950
+ }
951
+ if (v2_utils.isTreeSelect(defaultType)) {
952
+ return /*#__PURE__*/jsxRuntime.jsx(TreeSelect$1, {
953
+ autoFocus: autoFocus,
954
+ column: column,
955
+ filter: filter,
956
+ handleApplyFilter: handleApplyFilter
957
+ });
958
+ }
959
+ return /*#__PURE__*/jsxRuntime.jsx(Dropdown$1, {
960
+ autoFocus: autoFocus,
961
+ column: column,
962
+ filter: filter,
963
+ filters: filters,
964
+ handleApplyFilter: handleApplyFilter
965
+ });
966
+ };
967
+
968
+ exports.Item = Item;
969
+ //# sourceMappingURL=index-BD5y7_BW.js.map