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