@bigbinary/neeto-filters-frontend 4.0.1 → 4.1.1

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