@bigbinary/neeto-filters-frontend 4.3.32 → 4.3.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +0 -2
  2. package/dist/.ready +1 -0
  3. package/dist/Bar.js +9 -22
  4. package/dist/Bar.js.map +1 -1
  5. package/dist/Filters.js +6 -9
  6. package/dist/Filters.js.map +1 -1
  7. package/dist/Segments.js +9 -8
  8. package/dist/Segments.js.map +1 -1
  9. package/dist/cjs/Bar.js +11 -24
  10. package/dist/cjs/Bar.js.map +1 -1
  11. package/dist/cjs/Filters.js +6 -9
  12. package/dist/cjs/Filters.js.map +1 -1
  13. package/dist/cjs/Segments.js +6 -5
  14. package/dist/cjs/Segments.js.map +1 -1
  15. package/dist/cjs/hooks.js +1 -1
  16. package/dist/cjs/index.js +7 -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 +673 -0
  21. package/dist/cjs/v2/Bar.js.map +1 -0
  22. package/dist/cjs/v2/Filters.js +1282 -0
  23. package/dist/cjs/v2/Filters.js.map +1 -0
  24. package/dist/cjs/v2/Segments.js +532 -0
  25. package/dist/cjs/v2/Segments.js.map +1 -0
  26. package/dist/cjs/v2/index.js +70 -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/dayjs-9rsrbiYS.js +6 -0
  31. package/dist/dayjs-9rsrbiYS.js.map +1 -0
  32. package/dist/dayjs-DNGB9yJD.js +4 -0
  33. package/dist/dayjs-DNGB9yJD.js.map +1 -0
  34. package/dist/hooks.js +1 -1
  35. package/dist/{index-Bq32eLIG.js → index-00KCfktU.js} +4 -4
  36. package/dist/{index-Bq32eLIG.js.map → index-00KCfktU.js.map} +1 -1
  37. package/dist/{index-Rn6zFKPg.js → index-4MKjSNsp.js} +28 -27
  38. package/dist/{index-Rn6zFKPg.js.map → index-4MKjSNsp.js.map} +1 -1
  39. package/dist/{index-CzUm_HaL.js → index-BiqUQPwR.js} +11 -10
  40. package/dist/{index-CzUm_HaL.js.map → index-BiqUQPwR.js.map} +1 -1
  41. package/dist/index-BzkSk3Jh.js +5 -0
  42. package/dist/index-BzkSk3Jh.js.map +1 -0
  43. package/dist/{index-BYRIatjo.js → index-D5wjkRUM.js} +4 -4
  44. package/dist/{index-BYRIatjo.js.map → index-D5wjkRUM.js.map} +1 -1
  45. package/dist/index-DX0qF4mf.js +7 -0
  46. package/dist/index-DX0qF4mf.js.map +1 -0
  47. package/dist/index.js +7 -4
  48. package/dist/index.js.map +1 -1
  49. package/dist/keyboardShortcuts-DcgoM1dR.js +20 -0
  50. package/dist/keyboardShortcuts-DcgoM1dR.js.map +1 -0
  51. package/dist/keyboardShortcuts-oiJyIaFr.js +18 -0
  52. package/dist/keyboardShortcuts-oiJyIaFr.js.map +1 -0
  53. package/dist/{useSegmentsApi-wYy0UPCH.js → useSegmentsApi-0Le3BZOo.js} +3 -3
  54. package/dist/{useSegmentsApi-wYy0UPCH.js.map → useSegmentsApi-0Le3BZOo.js.map} +1 -1
  55. package/dist/{useSegmentsApi-CDE1HWEv.js → useSegmentsApi-DlvMy4A9.js} +2 -2
  56. package/dist/{useSegmentsApi-CDE1HWEv.js.map → useSegmentsApi-DlvMy4A9.js.map} +1 -1
  57. package/dist/utils-ClTYBS1C.js +865 -0
  58. package/dist/utils-ClTYBS1C.js.map +1 -0
  59. package/dist/{utils-BuCOQsNv.js → utils-CzRCzZ3I.js} +3 -4
  60. package/dist/utils-CzRCzZ3I.js.map +1 -0
  61. package/dist/utils-Dqmvcb8M.js +802 -0
  62. package/dist/utils-Dqmvcb8M.js.map +1 -0
  63. package/dist/{utils-CxVWpPGf.js → utils-l0QK_DBo.js} +7 -8
  64. package/dist/utils-l0QK_DBo.js.map +1 -0
  65. package/dist/utils.js +2 -1
  66. package/dist/utils.js.map +1 -1
  67. package/dist/v2/Bar.js +671 -0
  68. package/dist/v2/Bar.js.map +1 -0
  69. package/dist/v2/Filters.js +1280 -0
  70. package/dist/v2/Filters.js.map +1 -0
  71. package/dist/v2/Segments.js +530 -0
  72. package/dist/v2/Segments.js.map +1 -0
  73. package/dist/v2/index.js +54 -0
  74. package/dist/v2/index.js.map +1 -0
  75. package/dist/v2/utils.js +12 -0
  76. package/dist/v2/utils.js.map +1 -0
  77. package/package.json +41 -28
  78. package/dist/utils-BuCOQsNv.js.map +0 -1
  79. package/dist/utils-CxVWpPGf.js.map +0 -1
@@ -0,0 +1,1282 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
5
+ var classnames = require('classnames');
6
+ var neetoCist = require('@bigbinary/neeto-cist');
7
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var ramda = require('ramda');
9
+ require('../../index-DX0qF4mf.js');
10
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
13
+ var react = require('react');
14
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
15
+ var Search = require('@bigbinary/neeto-molecules/Search');
16
+ var reactI18next = require('react-i18next');
17
+ var reactRouterDom = require('react-router-dom');
18
+ var constants = require('../../constants-DoHD7obf.js');
19
+ var v2_utils = require('../../utils-ClTYBS1C.js');
20
+ var utils$1 = require('../../utils-CzRCzZ3I.js');
21
+ require('../../dayjs-9rsrbiYS.js');
22
+ var jsxRuntime = require('react/jsx-runtime');
23
+ require('i18next');
24
+ require('lucide-react');
25
+ require('@bigbinary/neeto-icons/Help');
26
+
27
+ var useFilters = function useFilters(_ref) {
28
+ var onFiltersChange = _ref.onFiltersChange,
29
+ columns = _ref.columns,
30
+ keywordFilter = _ref.keywordFilter,
31
+ onSelectorsChange = _ref.onSelectorsChange;
32
+ var _useTransition = react.useTransition(),
33
+ _useTransition2 = _slicedToArray(_useTransition, 2);
34
+ _useTransition2[0];
35
+ var startTransition = _useTransition2[1];
36
+ var initialRender = react.useRef(true);
37
+ var prevFilters = react.useRef([]);
38
+ var location = reactRouterDom.useLocation();
39
+ var filters = v2_utils.buildFiltersFromSearchParams(columns, false);
40
+ var history = reactRouterDom.useHistory();
41
+ var defaultValuesOfColumns = JSON.stringify(ramda.pluck("defaultValue", columns));
42
+ var handlePrecenseOfDefaultFilters = function handlePrecenseOfDefaultFilters(defaultFilters) {
43
+ var params = v2_utils.buildUrlFromFilters({
44
+ columns: columns,
45
+ filters: v2_utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(v2_utils.getSearchTermFromUrl()) ? [].concat(_toConsumableArray(defaultFilters), [keywordFilter]) : defaultFilters
46
+ });
47
+ history.replace({
48
+ search: params
49
+ });
50
+ };
51
+ var handleFiltersChange = function handleFiltersChange(filtersPayload) {
52
+ startTransition(function () {
53
+ onFiltersChange(v2_utils.buildFiltersPayload(filtersPayload.filter(function (filter) {
54
+ return !ramda.isNil(filter.node);
55
+ })));
56
+ });
57
+ };
58
+
59
+ //This function sends the updated filters to host via callbacks.
60
+ var sendUpdatedFilters = function sendUpdatedFilters() {
61
+ if (v2_utils.compareFilters(ramda.append(keywordFilter, filters), prevFilters.current)) {
62
+ return;
63
+ }
64
+ var newFilters = v2_utils.buildFiltersFromSearchParams(columns);
65
+ var filtersPayload = v2_utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(v2_utils.getSearchTermFromUrl()) ? ramda.append(keywordFilter, newFilters) : newFilters;
66
+ handleFiltersChange(filtersPayload);
67
+ onSelectorsChange(v2_utils.buildSelectorsFromURL(columns));
68
+ };
69
+ var handleChangesInURL = function handleChangesInURL() {
70
+ var defaultFilters = v2_utils.buildDefaultFilters(columns, filters);
71
+ var searchParams = v2_utils.getSnakeCasedQueryParams();
72
+ var keys = ramda.pluck("key", ramda.append(keywordFilter, columns));
73
+ if (keys.every(function (key) {
74
+ return ramda.isNil(searchParams[key]);
75
+ }) && !ramda.isEmpty(defaultFilters)) {
76
+ history.replace({
77
+ search: v2_utils.buildUrlFromFilters({
78
+ columns: columns,
79
+ filters: ramda.concat(defaultFilters, filters)
80
+ })
81
+ });
82
+ filters = v2_utils.buildFiltersFromSearchParams(columns, false);
83
+ }
84
+ };
85
+ react.useEffect(function () {
86
+ if (initialRender.current) {
87
+ initialRender.current = false;
88
+ var keywordValue = v2_utils.getSearchTermFromUrl();
89
+ var defaultFilters = v2_utils.buildDefaultFilters(columns, filters);
90
+ neetoCist.isNotEmpty(defaultFilters) && handlePrecenseOfDefaultFilters(defaultFilters);
91
+ prevFilters.current = ramda.append(ramda.mergeRight(keywordFilter, {
92
+ value: keywordValue
93
+ }), filters);
94
+ } else {
95
+ handleChangesInURL();
96
+ sendUpdatedFilters();
97
+ prevFilters.current = ramda.append(keywordFilter, filters);
98
+ }
99
+ }, [location.search, defaultValuesOfColumns]);
100
+ return filters;
101
+ };
102
+
103
+ var getOtherProps = function getOtherProps(props) {
104
+ return ramda.omit(["key", "node", "label", "type", "values", "model", "showRuleSelector"], props);
105
+ };
106
+ var buildDropdownOptions = function buildDropdownOptions(_ref3) {
107
+ var defaultType = _ref3.defaultType,
108
+ filter = _ref3.filter,
109
+ _ref3$options = _ref3.options,
110
+ options = _ref3$options === void 0 ? [] : _ref3$options;
111
+ if (ramda.isEmpty(options)) {
112
+ if (v2_utils.isDateRange(defaultType)) {
113
+ options = constants.DATE_RANGE_OPTIONS;
114
+ } else if (v2_utils.isTimeRange(defaultType)) {
115
+ options = constants.TIME_RANGE_OPTIONS;
116
+ }
117
+ }
118
+ options = options.map(ramda.modify("value", function (value) {
119
+ return value === null || value === void 0 ? void 0 : value.toString();
120
+ }));
121
+ if (!filter) return options;
122
+ if (v2_utils.isMulti(defaultType)) {
123
+ var selectedOptions = filter.value.map(function (value) {
124
+ return neetoCist.findBy({
125
+ value: value
126
+ }, options) || neetoCist.toLabelAndValue(value);
127
+ });
128
+ var nonSelectedOptions = options.filter(function (option) {
129
+ return !filter.value.includes(option.value);
130
+ });
131
+ return ramda.concat(selectedOptions, nonSelectedOptions);
132
+ }
133
+ if (!neetoCist.findBy({
134
+ value: filter.value
135
+ }, options)) {
136
+ return ramda.append(neetoCist.toLabelAndValue(filter.value), options);
137
+ }
138
+ return options;
139
+ };
140
+ var initializeDateRule = function initializeDateRule(filter) {
141
+ return filter ? neetoCist.findBy({
142
+ value: filter === null || filter === void 0 ? void 0 : filter.value
143
+ }, constants.DATE_OPTIONS) || findDateOption(filter, constants.DATE_OPTIONS) : {};
144
+ };
145
+ var getDateValue = function getDateValue(value, rule) {
146
+ if (ramda.isEmpty(value) || ramda.isNil(value)) {
147
+ return null;
148
+ }
149
+ if (rule.value === "custom-date-range") {
150
+ return value;
151
+ }
152
+ return rule.value === "before" ? utils.dayjs(value[1]).add(1, "day") : utils.dayjs(value[0]).subtract(1, "day");
153
+ };
154
+ var findDateOption = function findDateOption(filter, options) {
155
+ var value = filter.value;
156
+ var isBeforeOrAfter = utils.dayjs(value[1]).diff(utils.dayjs(value[0]), "year") >= 90;
157
+ if (ramda.not(isBeforeOrAfter)) {
158
+ return ramda.last(options);
159
+ }
160
+ var currentMoment = utils.dayjs();
161
+ var diffWithStart = Math.abs(currentMoment.diff(utils.dayjs(value[0]), "year"));
162
+ var diffWithEnd = Math.abs(currentMoment.diff(utils.dayjs(value[1]), "year"));
163
+ return diffWithStart < diffWithEnd ? neetoCist.findBy({
164
+ value: "after"
165
+ }, options) : neetoCist.findBy({
166
+ value: "before"
167
+ }, options);
168
+ };
169
+ var buildDateValues = function buildDateValues(dates, selectedRule) {
170
+ if (selectedRule.value === "after") {
171
+ return [dates.add(1, "day"), dates.add(100, "year")];
172
+ } else if (selectedRule.value === "before") {
173
+ return [dates.subtract(100, "year"), dates.subtract(1, "day")];
174
+ }
175
+ return dates;
176
+ };
177
+ var buildHelpIconProps = function buildHelpIconProps(helpIconProps) {
178
+ return ramda.mergeDeepRight(v2_utils.DEFAULT_HELP_ICON_PROPS, helpIconProps);
179
+ };
180
+ var hasInvalidTimes = function hasInvalidTimes(times) {
181
+ if (neetoCist.isNotPresent(times)) return false;
182
+ if (Array.isArray(times)) {
183
+ return times.some(function (time) {
184
+ return time.isValid();
185
+ }) === false;
186
+ }
187
+ return !times.isValid();
188
+ };
189
+ var areCustomTimeRangeValuesNotValid = function areCustomTimeRangeValuesNotValid(times) {
190
+ return !times.every(function (time) {
191
+ return time.isValid();
192
+ });
193
+ };
194
+ var isRuleEmpty = function isRuleEmpty(rule) {
195
+ return ramda.equals(rule, "is_unknown");
196
+ };
197
+
198
+ function ownKeys$9(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; }
199
+ function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
200
+ var Boolean = function Boolean(_ref) {
201
+ var _filter$value;
202
+ var column = _ref.column,
203
+ filter = _ref.filter,
204
+ handleApplyFilter = _ref.handleApplyFilter,
205
+ autoFocus = _ref.autoFocus;
206
+ var key = column.key,
207
+ _column$defaultType = column.defaultType,
208
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
209
+ label = column.label,
210
+ values = column.values,
211
+ _column$helpIconProps = column.helpIconProps,
212
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
213
+ var options = neetoCist.isNotPresent(values) ? utils$1.isCheckbox(defaultType) ? v2_utils.CHECKBOX_OPTIONS : v2_utils.DEFAULT_BOOLEAN_OPTIONS : values;
214
+ var otherProps = getOtherProps(column);
215
+ var value = (_filter$value = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value !== void 0 ? _filter$value : null;
216
+ var _useTranslation = reactI18next.useTranslation(),
217
+ t = _useTranslation.t;
218
+ var handleChange = function handleChange(selectedValue) {
219
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
220
+ handleApplyFilter({
221
+ _delete: true
222
+ });
223
+ return;
224
+ }
225
+ var option = neetoCist.findBy({
226
+ value: selectedValue
227
+ }, options);
228
+ var updatedFilter = utils$1.buildUpdatedFilter({
229
+ column: column,
230
+ defaultType: defaultType,
231
+ option: option
232
+ });
233
+ handleApplyFilter(updatedFilter);
234
+ };
235
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
236
+ className: "neeto-filters-pane-filter__item-wrapper",
237
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$9(_objectSpread$9({
238
+ autoFocus: autoFocus,
239
+ label: label,
240
+ options: options,
241
+ value: value,
242
+ isClearable: true
243
+ }, neetoCist.isNotEmpty(helpIconProps) && {
244
+ labelProps: {
245
+ helpIconProps: buildHelpIconProps(helpIconProps)
246
+ }
247
+ }), {}, {
248
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
249
+ strategy: "fixed",
250
+ placeholder: t("neetoFilters.messages.selectOption", {
251
+ resource: label
252
+ }),
253
+ onChange: handleChange
254
+ }, otherProps))
255
+ });
256
+ };
257
+ var Boolean$1 = /*#__PURE__*/react.memo(Boolean);
258
+
259
+ function ownKeys$8(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; }
260
+ function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
261
+ var Datetime = function Datetime(_ref) {
262
+ var column = _ref.column,
263
+ filter = _ref.filter,
264
+ handleApplyFilter = _ref.handleApplyFilter,
265
+ autoFocus = _ref.autoFocus;
266
+ var _useState = react.useState(function () {
267
+ var _initializeDateRule$v, _initializeDateRule;
268
+ return (_initializeDateRule$v = (_initializeDateRule = initializeDateRule(filter)) === null || _initializeDateRule === void 0 ? void 0 : _initializeDateRule.value) !== null && _initializeDateRule$v !== void 0 ? _initializeDateRule$v : null;
269
+ }),
270
+ _useState2 = _slicedToArray(_useState, 2),
271
+ selectedRule = _useState2[0],
272
+ setSelectedRule = _useState2[1];
273
+ var _useTranslation = reactI18next.useTranslation(),
274
+ t = _useTranslation.t;
275
+ var key = column.key,
276
+ _column$defaultType = column.defaultType,
277
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
278
+ label = column.label,
279
+ _column$helpIconProps = column.helpIconProps,
280
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
281
+ var isDatePickerShown = filter && utils$1.isCustomDateRange(filter.value);
282
+ var otherProps = getOtherProps(column);
283
+ var handleChange = function handleChange(selectedValue) {
284
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
285
+ handleApplyFilter({
286
+ _delete: true
287
+ });
288
+ setSelectedRule(null);
289
+ return;
290
+ }
291
+ setSelectedRule(selectedValue);
292
+ var option = neetoCist.findBy({
293
+ value: selectedValue
294
+ }, constants.DATE_OPTIONS);
295
+ var updatedFilter = utils$1.buildUpdatedFilter({
296
+ column: column,
297
+ defaultType: defaultType,
298
+ option: option
299
+ });
300
+ handleApplyFilter(updatedFilter);
301
+ };
302
+ var handleDateRangeChange = function handleDateRangeChange(dates) {
303
+ if (ramda.isEmpty(dates) || ramda.isNil(dates)) {
304
+ handleApplyFilter({
305
+ _delete: true
306
+ });
307
+ setSelectedRule(null);
308
+ return;
309
+ }
310
+ var updatedFilter = utils$1.buildUpdatedFilter({
311
+ column: column,
312
+ defaultType: defaultType,
313
+ option: {
314
+ value: buildDateValues(dates, {
315
+ value: selectedRule
316
+ }).map(function (date) {
317
+ return date.toISOString();
318
+ })
319
+ }
320
+ });
321
+ handleApplyFilter(updatedFilter);
322
+ };
323
+ react.useEffect(function () {
324
+ ramda.isNil(filter) && setSelectedRule(null);
325
+ }, [filter]);
326
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
327
+ className: "neeto-filters-pane-filter__item-wrapper",
328
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$8(_objectSpread$8({
329
+ autoFocus: autoFocus,
330
+ label: label,
331
+ isClearable: true,
332
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
333
+ options: constants.DATE_OPTIONS,
334
+ strategy: "fixed",
335
+ value: selectedRule,
336
+ placeholder: t("neetoFilters.messages.selectResource", {
337
+ resource: label
338
+ })
339
+ }, neetoCist.isNotEmpty(helpIconProps) && {
340
+ labelProps: {
341
+ helpIconProps: buildHelpIconProps(helpIconProps)
342
+ }
343
+ }), {}, {
344
+ onChange: handleChange
345
+ })), isDatePickerShown && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DatePicker, _objectSpread$8({
346
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-date-range"),
347
+ getPopupContainer: ramda.prop("parentNode"),
348
+ type: selectedRule === "custom-date-range" ? "range" : "date",
349
+ value: getDateValue(filter === null || filter === void 0 ? void 0 : filter.value, {
350
+ value: selectedRule
351
+ }),
352
+ onChange: handleDateRangeChange
353
+ }, otherProps))]
354
+ });
355
+ };
356
+ var Datetime$1 = /*#__PURE__*/react.memo(Datetime);
357
+
358
+ 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; }
359
+ 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; }
360
+ var Dropdown = function Dropdown(_ref) {
361
+ var _filter$value, _filter$value2;
362
+ var column = _ref.column,
363
+ filter = _ref.filter,
364
+ handleApplyFilter = _ref.handleApplyFilter,
365
+ autoFocus = _ref.autoFocus,
366
+ filters = _ref.filters;
367
+ var key = column.key,
368
+ label = column.label,
369
+ values = column.values,
370
+ defaultValue = column.defaultValue,
371
+ _column$defaultType = column.defaultType,
372
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
373
+ _column$showRuleSelec = column.showRuleSelector,
374
+ showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
375
+ _column$isClearable = column.isClearable,
376
+ isClearable = _column$isClearable === void 0 ? true : _column$isClearable,
377
+ _column$helpIconProps = column.helpIconProps,
378
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
379
+ var otherProps = getOtherProps(column);
380
+ var options = buildDropdownOptions({
381
+ defaultType: defaultType,
382
+ filter: filter,
383
+ options: values
384
+ });
385
+ var dropdownRules = v2_utils.isMulti(defaultType) ? v2_utils.MULTI_DROPDOWN_RULES : v2_utils.SINGLE_DROPDOWN_RULES;
386
+ 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;
387
+ var _useState = react.useState(function () {
388
+ return (neetoCist.findBy({
389
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
390
+ }, dropdownRules) || dropdownRules[0]).value;
391
+ }),
392
+ _useState2 = _slicedToArray(_useState, 2),
393
+ selectedRule = _useState2[0],
394
+ setSelectedRule = _useState2[1];
395
+ var _useTranslation = reactI18next.useTranslation(),
396
+ t = _useTranslation.t;
397
+ var getOption = function getOption(isSelectedRuleEmpty, options, value) {
398
+ if (isSelectedRuleEmpty) {
399
+ return v2_utils.isMulti(defaultType) ? [options[0]] : options[0];
400
+ }
401
+ if (v2_utils.isMulti(defaultType)) {
402
+ return options.filter(function (o) {
403
+ return value === null || value === void 0 ? void 0 : value.includes(o.value);
404
+ });
405
+ }
406
+ return neetoCist.findBy({
407
+ value: value
408
+ }, options);
409
+ };
410
+ var handleRuleChange = function handleRuleChange(ruleValue) {
411
+ var isPreviousRuleEmpty = isRuleEmpty(selectedRule);
412
+ var isNewRuleEmpty = isRuleEmpty(ruleValue);
413
+ setSelectedRule(ruleValue);
414
+ if (isPreviousRuleEmpty || !isNewRuleEmpty && neetoCist.isNotPresent(filter === null || filter === void 0 ? void 0 : filter.value)) {
415
+ handleApplyFilter({
416
+ _delete: true
417
+ });
418
+ return;
419
+ }
420
+ var updatedFilter = v2_utils.buildUpdatedFilter({
421
+ column: column,
422
+ defaultType: defaultType,
423
+ rule: ruleValue,
424
+ option: getOption(isNewRuleEmpty, options, value)
425
+ });
426
+ handleApplyFilter(updatedFilter);
427
+ };
428
+ var handleChange = function handleChange(selectedValue) {
429
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
430
+ handleApplyFilter({
431
+ _delete: true
432
+ });
433
+ return;
434
+ }
435
+ var option = v2_utils.isMulti(defaultType) ? options.filter(function (o) {
436
+ return selectedValue.includes(o.value);
437
+ }) : neetoCist.findBy({
438
+ value: selectedValue
439
+ }, options);
440
+ var updatedFilter = v2_utils.buildUpdatedFilter({
441
+ column: column,
442
+ defaultType: defaultType,
443
+ option: option,
444
+ rule: selectedRule
445
+ });
446
+ handleApplyFilter(updatedFilter);
447
+ };
448
+ react.useEffect(function () {
449
+ if (!ramda.isEmpty(filters)) return;
450
+ isRuleEmpty(selectedRule) && setSelectedRule(dropdownRules[0].value);
451
+ }, [filters]);
452
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
453
+ className: "neeto-filters-pane-filter__item-wrapper",
454
+ children: [showRuleSelector && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, {
455
+ label: label,
456
+ defaultValue: dropdownRules[0].value,
457
+ options: dropdownRules,
458
+ value: selectedRule,
459
+ onChange: handleRuleChange
460
+ }), !isRuleEmpty(selectedRule) && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$7(_objectSpread$7({
461
+ autoFocus: autoFocus,
462
+ options: options,
463
+ value: value,
464
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
465
+ isClearable: !defaultValue && isClearable,
466
+ isMulti: v2_utils.isMulti(defaultType),
467
+ label: !showRuleSelector && label,
468
+ strategy: "fixed",
469
+ placeholder: t("neetoFilters.messages.selectResource", {
470
+ resource: label
471
+ })
472
+ }, neetoCist.isNotEmpty(helpIconProps) && {
473
+ labelProps: {
474
+ helpIconProps: buildHelpIconProps(helpIconProps)
475
+ }
476
+ }), {}, {
477
+ onChange: handleChange
478
+ }, otherProps))]
479
+ });
480
+ };
481
+ var Dropdown$1 = /*#__PURE__*/react.memo(Dropdown);
482
+
483
+ 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; }
484
+ 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; }
485
+ var SingleDatetime = function SingleDatetime(_ref) {
486
+ var column = _ref.column,
487
+ filter = _ref.filter,
488
+ filters = _ref.filters,
489
+ handleApplyFilter = _ref.handleApplyFilter,
490
+ autoFocus = _ref.autoFocus;
491
+ var _useState = react.useState(function () {
492
+ return (neetoCist.findBy({
493
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
494
+ }, constants.SINGLE_DATE_OPTIONS) || constants.SINGLE_DATE_OPTIONS[0]).value;
495
+ }),
496
+ _useState2 = _slicedToArray(_useState, 2),
497
+ selectedRule = _useState2[0],
498
+ setSelectedRule = _useState2[1];
499
+ var key = column.key,
500
+ _column$defaultType = column.defaultType,
501
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
502
+ label = column.label,
503
+ _column$helpIconProps = column.helpIconProps,
504
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
505
+ var otherProps = getOtherProps(column);
506
+ var datePickerType = selectedRule === "between" ? "range" : "date";
507
+ var value = filter === null || filter === void 0 ? void 0 : filter.value;
508
+
509
+ // Reset states when "Clear filters" button is clicked.
510
+ react.useEffect(function () {
511
+ if (!ramda.isEmpty(filters)) return;
512
+ setSelectedRule(constants.SINGLE_DATE_OPTIONS[0].value);
513
+ }, [filters]);
514
+ var handleRuleChange = function handleRuleChange(ruleValue) {
515
+ setSelectedRule(ruleValue);
516
+
517
+ // Clear value if switched between incompatible types
518
+ var updateValue = value;
519
+ if (datePickerType === "range" && ruleValue !== "between" || datePickerType === "date" && ruleValue === "between") {
520
+ updateValue = "";
521
+ }
522
+ var updatedFilter = utils$1.buildUpdatedFilter({
523
+ column: column,
524
+ defaultType: defaultType,
525
+ option: {},
526
+ rule: ruleValue,
527
+ value: updateValue
528
+ });
529
+ handleApplyFilter(updatedFilter);
530
+ };
531
+ var handleChange = function handleChange(dates) {
532
+ if (ramda.isEmpty(dates) || ramda.isNil(dates)) {
533
+ handleApplyFilter({
534
+ _delete: true
535
+ });
536
+ return;
537
+ }
538
+ var value = datePickerType === "range" ? dates.map(function (date) {
539
+ return date.toISOString();
540
+ }) : dates;
541
+ var updatedFilter = utils$1.buildUpdatedFilter({
542
+ column: column,
543
+ defaultType: defaultType,
544
+ option: {},
545
+ rule: selectedRule,
546
+ value: value
547
+ });
548
+ handleApplyFilter(updatedFilter);
549
+ };
550
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
551
+ className: "neeto-filters-pane-filter__item-wrapper",
552
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$6(_objectSpread$6({
553
+ label: label,
554
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter-rule"),
555
+ defaultValue: constants.SINGLE_DATE_OPTIONS[0].value,
556
+ options: constants.SINGLE_DATE_OPTIONS,
557
+ strategy: "fixed",
558
+ value: selectedRule
559
+ }, neetoCist.isNotEmpty(helpIconProps) && {
560
+ labelProps: {
561
+ helpIconProps: buildHelpIconProps(helpIconProps)
562
+ }
563
+ }), {}, {
564
+ onChange: handleRuleChange
565
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DatePicker, _objectSpread$6({
566
+ autoFocus: autoFocus,
567
+ value: value,
568
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
569
+ getPopupContainer: ramda.prop("parentNode"),
570
+ type: datePickerType,
571
+ onChange: handleChange
572
+ }, otherProps))]
573
+ });
574
+ };
575
+
576
+ 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; }
577
+ 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; }
578
+ var SingleTime = function SingleTime(_ref) {
579
+ var column = _ref.column,
580
+ filter = _ref.filter,
581
+ filters = _ref.filters,
582
+ handleApplyFilter = _ref.handleApplyFilter,
583
+ autoFocus = _ref.autoFocus;
584
+ var _useState = react.useState(function () {
585
+ return (neetoCist.findBy({
586
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
587
+ }, constants.SINGLE_TIME_OPTIONS) || constants.SINGLE_TIME_OPTIONS[0]).value;
588
+ }),
589
+ _useState2 = _slicedToArray(_useState, 2),
590
+ selectedRule = _useState2[0],
591
+ setSelectedRule = _useState2[1];
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$helpIconProps = column.helpIconProps,
597
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
598
+ var otherProps = getOtherProps(column);
599
+ var timePickerType = selectedRule === "between" ? "range" : "time";
600
+ var value = filter === null || filter === void 0 ? void 0 : filter.value;
601
+ react.useEffect(function () {
602
+ if (!ramda.isEmpty(filters)) return;
603
+ setSelectedRule(constants.SINGLE_TIME_OPTIONS[0].value);
604
+ }, [filters]);
605
+ var handleRuleChange = function handleRuleChange(ruleValue) {
606
+ setSelectedRule(ruleValue);
607
+
608
+ // Clear value if switched between incompatible types
609
+ var updateValue = value;
610
+ if (timePickerType === "range" && ruleValue !== "between" || timePickerType === "time" && ruleValue === "between") {
611
+ updateValue = "";
612
+ }
613
+ var updatedFilter = utils$1.buildUpdatedFilter({
614
+ column: column,
615
+ defaultType: defaultType,
616
+ option: {},
617
+ rule: ruleValue,
618
+ value: updateValue
619
+ });
620
+ handleApplyFilter(updatedFilter);
621
+ };
622
+ var handleChange = function handleChange(times) {
623
+ if (hasInvalidTimes(times)) {
624
+ handleApplyFilter({
625
+ _delete: true
626
+ });
627
+ return;
628
+ }
629
+ if (timePickerType === "range" && areCustomTimeRangeValuesNotValid(times)) {
630
+ return;
631
+ }
632
+ var value = timePickerType === "range" ? times === null || times === void 0 ? void 0 : times.map(function (time) {
633
+ return time.toISOString();
634
+ }) : times === null || times === void 0 ? void 0 : times.toISOString();
635
+ var updatedFilter = utils$1.buildUpdatedFilter({
636
+ column: column,
637
+ defaultType: defaultType,
638
+ option: {},
639
+ rule: selectedRule,
640
+ value: value
641
+ });
642
+ handleApplyFilter(updatedFilter);
643
+ };
644
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
645
+ className: "neeto-filters-pane-filter__item-wrapper",
646
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$5(_objectSpread$5({
647
+ label: label,
648
+ defaultValue: constants.SINGLE_TIME_OPTIONS[0].value,
649
+ options: constants.SINGLE_TIME_OPTIONS,
650
+ strategy: "fixed",
651
+ value: selectedRule
652
+ }, neetoCist.isNotEmpty(helpIconProps) && {
653
+ labelProps: {
654
+ helpIconProps: buildHelpIconProps(helpIconProps)
655
+ }
656
+ }), {}, {
657
+ onChange: handleRuleChange
658
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.TimePicker, _objectSpread$5({
659
+ autoFocus: autoFocus,
660
+ value: value,
661
+ className: "w-full",
662
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
663
+ format: v2_utils.TIME_FORMAT,
664
+ type: timePickerType,
665
+ onChange: handleChange
666
+ }, otherProps))]
667
+ });
668
+ };
669
+
670
+ 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; }
671
+ 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; }
672
+ var Text = function Text(_ref) {
673
+ var column = _ref.column,
674
+ filter = _ref.filter,
675
+ filters = _ref.filters,
676
+ handleApplyFilter = _ref.handleApplyFilter,
677
+ autoFocus = _ref.autoFocus,
678
+ onClose = _ref.onClose;
679
+ var key = column.key,
680
+ _column$defaultType = column.defaultType,
681
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
682
+ label = column.label,
683
+ _column$showRuleSelec = column.showRuleSelector,
684
+ showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
685
+ _column$helpIconProps = column.helpIconProps,
686
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
687
+ var otherProps = getOtherProps(column);
688
+ var ruleOptions = utils$1.buildRuleOptions({
689
+ defaultType: defaultType
690
+ });
691
+ var inputType = defaultType === "text" || defaultType === "custom.text" ? "text" : "number";
692
+ var _useState = react.useState(filter === null || filter === void 0 ? void 0 : filter.value),
693
+ _useState2 = _slicedToArray(_useState, 2),
694
+ inputValue = _useState2[0],
695
+ setInputValue = _useState2[1];
696
+ var _useState3 = react.useState(function () {
697
+ return (neetoCist.findBy({
698
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
699
+ }, ruleOptions) || ruleOptions[0]).value;
700
+ }),
701
+ _useState4 = _slicedToArray(_useState3, 2),
702
+ selectedRule = _useState4[0],
703
+ setSelectedRule = _useState4[1];
704
+ var debouncedInputValue = reactUtils.useDebounce(inputValue);
705
+ var _useTranslation = reactI18next.useTranslation(),
706
+ t = _useTranslation.t;
707
+ var handleUpdateAndApplyFilter = function handleUpdateAndApplyFilter() {
708
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : debouncedInputValue;
709
+ var ruleValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : selectedRule;
710
+ if (ramda.equals(filter === null || filter === void 0 ? void 0 : filter.value, value) && ramda.equals(selectedRule, ruleValue)) return;
711
+ var updatedFilter = utils$1.buildUpdatedFilter({
712
+ column: column,
713
+ defaultType: defaultType,
714
+ option: {},
715
+ rule: ruleValue,
716
+ value: value.trim()
717
+ });
718
+ handleApplyFilter(updatedFilter);
719
+ };
720
+ var handleKeydown = function handleKeydown(e) {
721
+ if (!(e.key === "Enter")) return;
722
+ handleUpdateAndApplyFilter(inputValue);
723
+ onClose();
724
+ };
725
+ var handleRuleChange = function handleRuleChange(ruleValue) {
726
+ setSelectedRule(ruleValue);
727
+ if (!debouncedInputValue) return;
728
+ handleUpdateAndApplyFilter(debouncedInputValue, ruleValue);
729
+ };
730
+
731
+ // Reset states when "Clear filters" button is clicked.
732
+ react.useEffect(function () {
733
+ (ramda.isEmpty(filters) || ramda.isNil(filter)) && setInputValue("");
734
+ }, [filter]);
735
+ react.useEffect(function () {
736
+ if (!debouncedInputValue) {
737
+ !utils$1.isUndefinedOrEmpty(filter) && handleApplyFilter({
738
+ _delete: true
739
+ });
740
+ return;
741
+ }
742
+ handleUpdateAndApplyFilter();
743
+ }, [debouncedInputValue]);
744
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
745
+ className: "neeto-filters-pane-filter__item-wrapper",
746
+ children: [showRuleSelector && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$4({
747
+ label: label,
748
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter-rule"),
749
+ defaultValue: ruleOptions[0].value,
750
+ options: ruleOptions,
751
+ strategy: "fixed",
752
+ value: selectedRule,
753
+ onChange: handleRuleChange
754
+ }, neetoCist.isNotEmpty(helpIconProps) && {
755
+ labelProps: {
756
+ helpIconProps: buildHelpIconProps(helpIconProps)
757
+ }
758
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Input, _objectSpread$4(_objectSpread$4({
759
+ autoFocus: autoFocus,
760
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
761
+ label: !showRuleSelector && label,
762
+ type: inputType,
763
+ value: inputValue
764
+ }, neetoCist.isNotEmpty(helpIconProps) && {
765
+ labelProps: {
766
+ helpIconProps: buildHelpIconProps(helpIconProps)
767
+ }
768
+ }), {}, {
769
+ placeholder: t("neetoFilters.messages.enterResource", {
770
+ resource: label
771
+ }),
772
+ onChange: function onChange(event) {
773
+ return setInputValue(event.target.value);
774
+ },
775
+ onKeyDown: handleKeydown
776
+ }, otherProps))]
777
+ });
778
+ };
779
+
780
+ 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; }
781
+ 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; }
782
+ var Time = function Time(_ref) {
783
+ var _filter$value;
784
+ var column = _ref.column,
785
+ filter = _ref.filter,
786
+ handleApplyFilter = _ref.handleApplyFilter,
787
+ autoFocus = _ref.autoFocus;
788
+ var key = column.key,
789
+ _column$defaultType = column.defaultType,
790
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
791
+ label = column.label,
792
+ _column$helpIconProps = column.helpIconProps,
793
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
794
+ var otherProps = getOtherProps(column);
795
+ var value = (_filter$value = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value !== void 0 ? _filter$value : null;
796
+ var isCustomTimeRangeShown = filter && utils$1.isCustomTimeRange(filter.value);
797
+ var _useTranslation = reactI18next.useTranslation(),
798
+ t = _useTranslation.t;
799
+ var handleChange = function handleChange(selectedValue) {
800
+ if (ramda.isEmpty(selectedValue) || ramda.isNil(selectedValue)) {
801
+ handleApplyFilter({
802
+ _delete: true
803
+ });
804
+ return;
805
+ }
806
+ var option = neetoCist.findBy({
807
+ value: selectedValue
808
+ }, constants.TIME_OPTIONS);
809
+ var updatedFilter = utils$1.buildUpdatedFilter({
810
+ column: column,
811
+ defaultType: defaultType,
812
+ option: option
813
+ });
814
+ handleApplyFilter(updatedFilter);
815
+ };
816
+ var handleTimeRangeChange = function handleTimeRangeChange(times) {
817
+ if (hasInvalidTimes(times)) {
818
+ handleApplyFilter({
819
+ _delete: true
820
+ });
821
+ return;
822
+ }
823
+ if (isCustomTimeRangeShown && areCustomTimeRangeValuesNotValid(times)) {
824
+ return;
825
+ }
826
+ var updatedFilter = utils$1.buildUpdatedFilter({
827
+ column: column,
828
+ defaultType: defaultType,
829
+ option: {
830
+ value: times.map(function (time) {
831
+ return time.toISOString();
832
+ })
833
+ }
834
+ });
835
+ handleApplyFilter(updatedFilter);
836
+ };
837
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
838
+ className: "neeto-filters-pane-filter__item-wrapper",
839
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, _objectSpread$3(_objectSpread$3({
840
+ autoFocus: autoFocus,
841
+ label: label,
842
+ value: value,
843
+ isClearable: true,
844
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
845
+ options: constants.TIME_OPTIONS,
846
+ strategy: "fixed",
847
+ placeholder: t("neetoFilters.messages.selectResource", {
848
+ resource: label
849
+ })
850
+ }, neetoCist.isNotEmpty(helpIconProps) && {
851
+ labelProps: {
852
+ helpIconProps: buildHelpIconProps(helpIconProps)
853
+ }
854
+ }), {}, {
855
+ onChange: handleChange
856
+ })), isCustomTimeRangeShown && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.TimePicker, _objectSpread$3({
857
+ className: "w-full",
858
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-date-range"),
859
+ format: v2_utils.TIME_FORMAT,
860
+ type: "range",
861
+ value: filter.value,
862
+ onChange: handleTimeRangeChange
863
+ }, otherProps))]
864
+ });
865
+ };
866
+ var Time$1 = /*#__PURE__*/react.memo(Time);
867
+
868
+ 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; }
869
+ 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; }
870
+ var TreeSelect = function TreeSelect(_ref) {
871
+ var _findBy, _filter$value;
872
+ var autoFocus = _ref.autoFocus,
873
+ column = _ref.column,
874
+ filter = _ref.filter,
875
+ handleApplyFilter = _ref.handleApplyFilter;
876
+ var key = column.key,
877
+ label = column.label,
878
+ _column$defaultType = column.defaultType,
879
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
880
+ defaultValue = column.defaultValue,
881
+ _column$helpIconProps = column.helpIconProps,
882
+ helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps,
883
+ _column$isClearable = column.isClearable,
884
+ isClearable = _column$isClearable === void 0 ? true : _column$isClearable,
885
+ _column$showRuleSelec = column.showRuleSelector,
886
+ showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
887
+ options = column.values;
888
+ var initialRule = ((_findBy = neetoCist.findBy({
889
+ value: filter === null || filter === void 0 ? void 0 : filter.rule
890
+ }, v2_utils.TREE_SELECT_RULES)) !== null && _findBy !== void 0 ? _findBy : v2_utils.TREE_SELECT_RULES[0]).value;
891
+ var _useState = react.useState(initialRule),
892
+ _useState2 = _slicedToArray(_useState, 2),
893
+ selectedRule = _useState2[0],
894
+ setSelectedRule = _useState2[1];
895
+ var _useTranslation = reactI18next.useTranslation(),
896
+ t = _useTranslation.t;
897
+ var selectedOption = (_filter$value = filter === null || filter === void 0 ? void 0 : filter.value) !== null && _filter$value !== void 0 ? _filter$value : [];
898
+ var handleChange = function handleChange(option) {
899
+ if (neetoCist.isNotPresent(option)) return handleApplyFilter({
900
+ _delete: true
901
+ });
902
+ var updatedFilter = utils$1.buildUpdatedFilter({
903
+ column: column,
904
+ defaultType: defaultType,
905
+ option: option,
906
+ rule: selectedRule
907
+ });
908
+ return handleApplyFilter(updatedFilter);
909
+ };
910
+ var handleRuleChange = function handleRuleChange(ruleValue) {
911
+ var isPreviousRuleEmpty = isRuleEmpty(selectedRule);
912
+ var isNewRuleEmpty = isRuleEmpty(ruleValue);
913
+ setSelectedRule(ruleValue);
914
+ if (isPreviousRuleEmpty || !isNewRuleEmpty && neetoCist.isNotPresent(filter === null || filter === void 0 ? void 0 : filter.value)) {
915
+ return handleApplyFilter({
916
+ _delete: true
917
+ });
918
+ }
919
+ var updatedFilter = utils$1.buildUpdatedFilter({
920
+ column: column,
921
+ defaultType: defaultType,
922
+ option: isNewRuleEmpty ? [options[0]] : selectedOption,
923
+ rule: ruleValue
924
+ });
925
+ return handleApplyFilter(updatedFilter);
926
+ };
927
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
928
+ className: "neeto-filters-pane-filter__item-wrapper",
929
+ children: [showRuleSelector && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Select, {
930
+ label: label,
931
+ defaultValue: v2_utils.TREE_SELECT_RULES[0].value,
932
+ options: v2_utils.TREE_SELECT_RULES,
933
+ value: selectedRule,
934
+ onChange: handleRuleChange
935
+ }), !isRuleEmpty(selectedRule) &&
936
+ /*#__PURE__*/
937
+ // eslint-disable-next-line @bigbinary/neeto/merge-spread-attributes
938
+ jsxRuntime.jsx(neetoAtoms.TreeSelect, _objectSpread$2(_objectSpread$2({
939
+ autoFocus: autoFocus,
940
+ multiple: true,
941
+ showSearch: true,
942
+ treeDataSimpleMode: true,
943
+ allowClear: !defaultValue && isClearable,
944
+ "data-testid": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
945
+ label: !showRuleSelector && label,
946
+ treeData: options,
947
+ value: selectedOption,
948
+ placeholder: t("neetoFilters.messages.selectResource", {
949
+ resource: label
950
+ }),
951
+ onChange: handleChange
952
+ }, neetoCist.isNotEmpty(helpIconProps) && {
953
+ labelProps: {
954
+ helpIconProps: buildHelpIconProps(helpIconProps)
955
+ }
956
+ }), getOtherProps(column)))]
957
+ });
958
+ };
959
+ var TreeSelect$1 = /*#__PURE__*/react.memo(TreeSelect);
960
+
961
+ var Item = function Item(_ref) {
962
+ var column = _ref.column,
963
+ filters = _ref.filters,
964
+ onChange = _ref.onChange,
965
+ autoFocus = _ref.autoFocus,
966
+ _ref$onClose = _ref.onClose,
967
+ onClose = _ref$onClose === void 0 ? neetoCist.noop : _ref$onClose;
968
+ var key = column.key,
969
+ _column$defaultType = column.defaultType,
970
+ defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType;
971
+ var filter = react.useMemo(function () {
972
+ return neetoCist.findBy({
973
+ key: key
974
+ }, filters);
975
+ }, [filters, key]);
976
+ var handleApplyFilter = function handleApplyFilter(updatedFilter) {
977
+ if (updatedFilter._delete) onChange(neetoCist.removeBy({
978
+ key: key
979
+ }, filters));else if (!filter) onChange(ramda.append(updatedFilter, filters));else onChange(neetoCist.replaceBy({
980
+ key: key
981
+ }, updatedFilter, filters));
982
+ };
983
+ if (v2_utils.isText(defaultType) || v2_utils.isDigit(defaultType)) {
984
+ return /*#__PURE__*/jsxRuntime.jsx(Text, {
985
+ autoFocus: autoFocus,
986
+ column: column,
987
+ filter: filter,
988
+ filters: filters,
989
+ handleApplyFilter: handleApplyFilter,
990
+ onClose: onClose
991
+ });
992
+ }
993
+ if (v2_utils.isDate(defaultType)) {
994
+ return /*#__PURE__*/jsxRuntime.jsx(Datetime$1, {
995
+ autoFocus: autoFocus,
996
+ column: column,
997
+ filter: filter,
998
+ handleApplyFilter: handleApplyFilter
999
+ });
1000
+ }
1001
+ if (v2_utils.isTime(defaultType)) {
1002
+ return /*#__PURE__*/jsxRuntime.jsx(Time$1, {
1003
+ autoFocus: autoFocus,
1004
+ column: column,
1005
+ filter: filter,
1006
+ handleApplyFilter: handleApplyFilter
1007
+ });
1008
+ }
1009
+ if (v2_utils.isSingleDate(defaultType)) {
1010
+ return /*#__PURE__*/jsxRuntime.jsx(SingleDatetime, {
1011
+ autoFocus: autoFocus,
1012
+ column: column,
1013
+ filter: filter,
1014
+ filters: filters,
1015
+ handleApplyFilter: handleApplyFilter
1016
+ });
1017
+ }
1018
+ if (v2_utils.isSingleTime(defaultType)) {
1019
+ return /*#__PURE__*/jsxRuntime.jsx(SingleTime, {
1020
+ autoFocus: autoFocus,
1021
+ column: column,
1022
+ filter: filter,
1023
+ filters: filters,
1024
+ handleApplyFilter: handleApplyFilter
1025
+ });
1026
+ }
1027
+ if (v2_utils.isBoolean(defaultType) || v2_utils.isCheckbox(defaultType)) {
1028
+ return /*#__PURE__*/jsxRuntime.jsx(Boolean$1, {
1029
+ autoFocus: autoFocus,
1030
+ column: column,
1031
+ defaultType: defaultType,
1032
+ filter: filter,
1033
+ handleApplyFilter: handleApplyFilter
1034
+ });
1035
+ }
1036
+ if (v2_utils.isTreeSelect(defaultType)) {
1037
+ return /*#__PURE__*/jsxRuntime.jsx(TreeSelect$1, {
1038
+ autoFocus: autoFocus,
1039
+ column: column,
1040
+ filter: filter,
1041
+ handleApplyFilter: handleApplyFilter
1042
+ });
1043
+ }
1044
+ return /*#__PURE__*/jsxRuntime.jsx(Dropdown$1, {
1045
+ autoFocus: autoFocus,
1046
+ column: column,
1047
+ filter: filter,
1048
+ filters: filters,
1049
+ handleApplyFilter: handleApplyFilter
1050
+ });
1051
+ };
1052
+
1053
+ var _excluded = ["isOpen", "onClose", "columns", "onChange", "isSearchable", "keyword", "onSelectorsChange", "childrenKeys", "children", "className"];
1054
+ 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; }
1055
+ 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; }
1056
+ var Pane = function Pane(_ref) {
1057
+ var isOpen = _ref.isOpen,
1058
+ onClose = _ref.onClose,
1059
+ columns = _ref.columns,
1060
+ onChange = _ref.onChange,
1061
+ isSearchable = _ref.isSearchable,
1062
+ keyword = _ref.keyword,
1063
+ onSelectorsChange = _ref.onSelectorsChange,
1064
+ _ref$childrenKeys = _ref.childrenKeys,
1065
+ childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
1066
+ children = _ref.children,
1067
+ className = _ref.className,
1068
+ otherProps = _objectWithoutProperties(_ref, _excluded);
1069
+ var searchParams = reactUtils.useQueryParams({
1070
+ toCamelCase: false
1071
+ });
1072
+ var _useState = react.useState(""),
1073
+ _useState2 = _slicedToArray(_useState, 2),
1074
+ searchTerm = _useState2[0],
1075
+ setSearchTerm = _useState2[1];
1076
+ var history = reactRouterDom.useHistory();
1077
+ var _useTranslation = reactI18next.useTranslation(),
1078
+ t = _useTranslation.t;
1079
+ columns = react.useMemo(function () {
1080
+ return v2_utils.getColumnsWithStandardizedType(columns);
1081
+ }, [columns]);
1082
+ var _buildFilteredColumns = v2_utils.buildFilteredColumns({
1083
+ searchTerm: searchTerm,
1084
+ columns: columns
1085
+ }),
1086
+ _buildFilteredColumns2 = _buildFilteredColumns.groupedColumns,
1087
+ groupedColumns = _buildFilteredColumns2 === void 0 ? [] : _buildFilteredColumns2,
1088
+ _buildFilteredColumns3 = _buildFilteredColumns.ungroupedColumns,
1089
+ ungroupedColumns = _buildFilteredColumns3 === void 0 ? [] : _buildFilteredColumns3;
1090
+ var keywordFilter = _objectSpread$1(_objectSpread$1({
1091
+ type: "text",
1092
+ rule: "contains",
1093
+ label: t("neetoFilters.common.searchTerm")
1094
+ }, keyword), {}, {
1095
+ key: constants.SEARCH_TERM_KEY,
1096
+ value: searchParams[constants.SEARCH_TERM_KEY] || ""
1097
+ });
1098
+ var filters = useFilters({
1099
+ onFiltersChange: onChange,
1100
+ columns: columns,
1101
+ keywordFilter: keywordFilter,
1102
+ onSelectorsChange: onSelectorsChange
1103
+ });
1104
+ var handleChange = function handleChange(newFilters) {
1105
+ var isClearAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1106
+ var params = v2_utils.buildUrlFromFilters(_objectSpread$1({
1107
+ columns: columns,
1108
+ filters: v2_utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(v2_utils.getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
1109
+ }, isClearAll && {
1110
+ isClearAll: true,
1111
+ childrenKeys: childrenKeys
1112
+ }));
1113
+ history.push({
1114
+ search: params
1115
+ });
1116
+ };
1117
+ var handleClearAll = function handleClearAll() {
1118
+ var params = v2_utils.isKeywordFilterPresent(keywordFilter) ? ramda.omit([constants.SEARCH_TERM_KEY], v2_utils.getSnakeCasedQueryParams()) : v2_utils.getSnakeCasedQueryParams();
1119
+ var pathname = window.location.pathname;
1120
+ history.push(utils.buildUrl(pathname, params));
1121
+ handleChange([], true);
1122
+ };
1123
+ var handleClearTermAndClose = function handleClearTermAndClose() {
1124
+ setSearchTerm("");
1125
+ onClose();
1126
+ };
1127
+ var handleClose = function handleClose() {
1128
+ columns.forEach(function (_ref2) {
1129
+ var key = _ref2.key;
1130
+ var filter = neetoCist.findBy({
1131
+ key: key
1132
+ }, filters);
1133
+ if ((filter === null || filter === void 0 ? void 0 : filter.value) === "") delete searchParams[key];
1134
+ });
1135
+ handleClearTermAndClose();
1136
+ };
1137
+ var isClearFiltersDisabled = !filters.some(function (_ref3) {
1138
+ var value = _ref3.value,
1139
+ defaultValue = _ref3.defaultValue;
1140
+ return neetoCist.isPresent(value) && value !== defaultValue;
1141
+ }) && !childrenKeys.some(function (key) {
1142
+ return searchParams[key];
1143
+ });
1144
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, _objectSpread$1(_objectSpread$1({
1145
+ isOpen: isOpen,
1146
+ backdropClassName: "neeto-filters-pane-backdrop",
1147
+ className: classnames("neeto-filters-pane-filter", _defineProperty({}, className, className)),
1148
+ onClose: handleClose
1149
+ }, otherProps), {}, {
1150
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
1151
+ "data-testid": "neeto-filters-pane-header",
1152
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
1153
+ weight: "semibold",
1154
+ children: t("neetoFilters.common.filters")
1155
+ })
1156
+ }), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Body, {
1157
+ className: "neeto-filters-pane-filter__body pb-6",
1158
+ children: [isSearchable && /*#__PURE__*/jsxRuntime.jsx(Search, {
1159
+ "data-testid": "neeto-filters-column-search",
1160
+ placeholder: t("neetoFilters.messages.searchResources", {
1161
+ resources: t("neetoFilters.common.filters")
1162
+ }),
1163
+ onSearch: function onSearch(value) {
1164
+ return setSearchTerm(value);
1165
+ }
1166
+ }), ungroupedColumns.map(function (column) {
1167
+ return /*#__PURE__*/react.createElement(Item, {
1168
+ column: column,
1169
+ filters: filters,
1170
+ autoFocus: column.key === isOpen,
1171
+ key: column.key,
1172
+ onChange: handleChange,
1173
+ onClose: handleClearTermAndClose
1174
+ });
1175
+ }), neetoCist.isPresent(groupedColumns) && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Accordion, {
1176
+ collapsible: true,
1177
+ type: "single",
1178
+ defaultValue: "item-".concat(groupedColumns.findIndex(function (_ref4) {
1179
+ var columns = _ref4.columns;
1180
+ return neetoCist.existsBy({
1181
+ key: isOpen
1182
+ }, columns);
1183
+ })),
1184
+ children: groupedColumns.map(function (_ref5) {
1185
+ var group = _ref5.group,
1186
+ columns = _ref5.columns;
1187
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Accordion.Item, {
1188
+ className: "accordion_item",
1189
+ title: group,
1190
+ children: columns.map(function (column) {
1191
+ return /*#__PURE__*/react.createElement(Item, {
1192
+ column: column,
1193
+ filters: filters,
1194
+ autoFocus: column.key === isOpen,
1195
+ key: column.key,
1196
+ onChange: handleChange,
1197
+ onClose: handleClearTermAndClose
1198
+ });
1199
+ })
1200
+ }, group);
1201
+ })
1202
+ }), ramda.isEmpty(ungroupedColumns) && ramda.isEmpty(groupedColumns) && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
1203
+ variant: "body2",
1204
+ children: t("neetoFilters.messages.noResourcesFound", {
1205
+ resources: t("neetoFilters.common.columns")
1206
+ })
1207
+ }), children]
1208
+ }), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Footer, {
1209
+ className: "gap-x-2",
1210
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
1211
+ "data-testid": "neeto-filters-done-btn",
1212
+ label: t("neetoFilters.common.done"),
1213
+ onClick: handleClearTermAndClose
1214
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
1215
+ "data-testid": "neeto-filters-clear-btn",
1216
+ disabled: isClearFiltersDisabled,
1217
+ label: t("neetoFilters.common.clearFilters"),
1218
+ variant: "ghost",
1219
+ onClick: handleClearAll
1220
+ })]
1221
+ })]
1222
+ }));
1223
+ };
1224
+
1225
+ 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; }
1226
+ 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; }
1227
+ var Filters = reactUtils.withT(function (_ref) {
1228
+ var t = _ref.t,
1229
+ _ref$isOpen = _ref.isOpen,
1230
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
1231
+ _ref$setIsOpen = _ref.setIsOpen,
1232
+ setIsOpen = _ref$setIsOpen === void 0 ? ramda.identity : _ref$setIsOpen,
1233
+ _ref$columns = _ref.columns,
1234
+ columns = _ref$columns === void 0 ? [] : _ref$columns,
1235
+ _ref$onChange = _ref.onChange,
1236
+ onChange = _ref$onChange === void 0 ? ramda.identity : _ref$onChange,
1237
+ _ref$buttonProps = _ref.buttonProps,
1238
+ buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
1239
+ _ref$paneProps = _ref.paneProps,
1240
+ paneProps = _ref$paneProps === void 0 ? {} : _ref$paneProps,
1241
+ _ref$isSearchable = _ref.isSearchable,
1242
+ isSearchable = _ref$isSearchable === void 0 ? false : _ref$isSearchable,
1243
+ className = _ref.className,
1244
+ _ref$onSelectorsChang = _ref.onSelectorsChange,
1245
+ onSelectorsChange = _ref$onSelectorsChang === void 0 ? neetoCist.noop : _ref$onSelectorsChang,
1246
+ _ref$keyword = _ref.keyword,
1247
+ keyword = _ref$keyword === void 0 ? {
1248
+ node: "",
1249
+ value: "",
1250
+ setValue: neetoCist.noop
1251
+ } : _ref$keyword,
1252
+ childrenKeys = _ref.childrenKeys,
1253
+ children = _ref.children;
1254
+ return /*#__PURE__*/jsxRuntime.jsxs("span", {
1255
+ className: classnames(_defineProperty({}, className, className)),
1256
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, _objectSpread({
1257
+ "data-testid": "neeto-filters-toggle-btn",
1258
+ label: t("neetoFilters.common.filter"),
1259
+ variant: "secondary",
1260
+ onClick: function onClick() {
1261
+ return setIsOpen(true);
1262
+ }
1263
+ }, buttonProps)), /*#__PURE__*/jsxRuntime.jsx(Pane, _objectSpread(_objectSpread({
1264
+ onClose: function onClose() {
1265
+ return setIsOpen(false);
1266
+ }
1267
+ }, _objectSpread({
1268
+ childrenKeys: childrenKeys,
1269
+ columns: columns,
1270
+ isOpen: isOpen,
1271
+ isSearchable: isSearchable,
1272
+ keyword: keyword,
1273
+ onChange: onChange,
1274
+ onSelectorsChange: onSelectorsChange
1275
+ }, paneProps)), {}, {
1276
+ children: children
1277
+ }))]
1278
+ });
1279
+ });
1280
+
1281
+ module.exports = Filters;
1282
+ //# sourceMappingURL=Filters.js.map