@bigbinary/neeto-filters-frontend 4.0.0 → 4.1.0

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 (47) hide show
  1. package/dist/Bar.js +667 -0
  2. package/dist/Bar.js.map +1 -0
  3. package/dist/Filters.js +368 -0
  4. package/dist/Filters.js.map +1 -0
  5. package/dist/Segments.js +529 -0
  6. package/dist/Segments.js.map +1 -0
  7. package/dist/cjs/Bar.js +681 -0
  8. package/dist/cjs/Bar.js.map +1 -0
  9. package/dist/cjs/Filters.js +379 -0
  10. package/dist/cjs/Filters.js.map +1 -0
  11. package/dist/cjs/Segments.js +543 -0
  12. package/dist/cjs/Segments.js.map +1 -0
  13. package/dist/cjs/hooks.js +17 -0
  14. package/dist/cjs/hooks.js.map +1 -0
  15. package/dist/cjs/index.js +72 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/utils.js +24 -0
  18. package/dist/cjs/utils.js.map +1 -0
  19. package/dist/constants-8f6e851e.js +125 -0
  20. package/dist/constants-8f6e851e.js.map +1 -0
  21. package/dist/constants-fb0f688a.js +135 -0
  22. package/dist/constants-fb0f688a.js.map +1 -0
  23. package/dist/hooks.js +7 -0
  24. package/dist/hooks.js.map +1 -0
  25. package/dist/index-03114015.js +336 -0
  26. package/dist/index-03114015.js.map +1 -0
  27. package/dist/index-2d1d9838.js +971 -0
  28. package/dist/index-2d1d9838.js.map +1 -0
  29. package/dist/index-31aaf3e4.js +302 -0
  30. package/dist/index-31aaf3e4.js.map +1 -0
  31. package/dist/index-95fe069e.js +958 -0
  32. package/dist/index-95fe069e.js.map +1 -0
  33. package/dist/index.js +53 -3716
  34. package/dist/index.js.map +1 -1
  35. package/dist/useSegmentsApi-003055eb.js +96 -0
  36. package/dist/useSegmentsApi-003055eb.js.map +1 -0
  37. package/dist/useSegmentsApi-c514647d.js +86 -0
  38. package/dist/useSegmentsApi-c514647d.js.map +1 -0
  39. package/dist/utils-61b4223d.js +861 -0
  40. package/dist/utils-61b4223d.js.map +1 -0
  41. package/dist/utils-9ea34335.js +809 -0
  42. package/dist/utils-9ea34335.js.map +1 -0
  43. package/dist/utils.js +12 -0
  44. package/dist/utils.js.map +1 -0
  45. package/package.json +27 -13
  46. package/dist/index.cjs.js +0 -3786
  47. package/dist/index.cjs.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,3717 +1,54 @@
1
- import React, { useState, useEffect, useMemo, createElement, useRef, useTransition } from 'react';
2
- import { useQuery, useQueryClient } from '@tanstack/react-query';
3
- import classnames from 'classnames';
4
- import i18next, { t as t$1 } from 'i18next';
5
- import { findBy, isNotEmpty, capitalize, removeBy, toLabelAndValue, hyphenate, isNotPresent, noop, replaceBy, existsBy, _existsBy, isPresent, humanize, findById, filterBy } from '@bigbinary/neeto-cist';
6
- import { useDebounce, useQueryParams, useMutationWithInvalidation, withT } from '@bigbinary/neeto-commons-frontend/react-utils';
7
- import { groupBy, anyPass, isNil, isEmpty, any, concat, omit, mergeLeft, toLower, identity, mergeRight, toPairs, pluck, either, not, has, equals, pick, last, modify, append, mergeDeepRight, prop, assoc, reject, sortBy, project } from 'ramda';
8
- import Delete$1 from '@bigbinary/neeto-icons/Delete';
9
- import Accordion from '@bigbinary/neetoui/Accordion';
10
- import Button from '@bigbinary/neetoui/Button';
11
- import Pane$1 from '@bigbinary/neetoui/Pane';
12
- import Typography from '@bigbinary/neetoui/Typography';
13
- import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
14
- import Form from '@bigbinary/neetoui/formik/Form';
15
- import Input$1 from '@bigbinary/neetoui/formik/Input';
16
- import { useTranslation, Trans } from 'react-i18next';
17
- import { useHistory } from 'react-router-dom/cjs/react-router-dom.min';
18
- import Select from '@bigbinary/neetoui/Select';
19
- import { buildUrl, getQueryParams, dateFormat, showThumbsUpToastr } from '@bigbinary/neeto-commons-frontend/utils';
20
- import dayjs from 'dayjs';
21
- import timezone from 'dayjs/plugin/timezone';
22
- import utc from 'dayjs/plugin/utc';
23
- import weekday from 'dayjs/plugin/weekday';
24
- import Help from '@bigbinary/neeto-icons/Help';
25
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
26
- import DatePicker from '@bigbinary/neetoui/DatePicker';
27
- import TimePickerInput from '@bigbinary/neetoui/TimePickerInput';
28
- import Input from '@bigbinary/neetoui/Input';
29
- import NeetoUITreeSelect from '@bigbinary/neetoui/TreeSelect';
30
- import Plus from '@bigbinary/neeto-icons/Plus';
31
- import * as yup from 'yup';
32
- import { useHistory as useHistory$1, useLocation } from 'react-router-dom';
33
- import useHotkeys from '@bigbinary/neeto-hotkeys';
34
- import Close from '@bigbinary/neeto-icons/Close';
35
- import Tooltip from '@bigbinary/neetoui/Tooltip';
36
- import axios from 'axios';
37
- import Dropdown$2 from '@bigbinary/neetoui/Dropdown';
38
- import Search from '@bigbinary/neeto-molecules/Search';
39
- import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
40
- import Alert from '@bigbinary/neetoui/Alert';
41
- import Spinner from '@bigbinary/neetoui/Spinner';
42
- import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
43
- import Down from '@bigbinary/neeto-icons/Down';
44
- import MenuBar from '@bigbinary/neeto-molecules/MenuBar';
45
- import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
46
-
47
- function _typeof(o) {
48
- "@babel/helpers - typeof";
49
-
50
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
51
- return typeof o;
52
- } : function (o) {
53
- return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
54
- }, _typeof(o);
55
- }
56
-
57
- function _toPrimitive(input, hint) {
58
- if (_typeof(input) !== "object" || input === null) return input;
59
- var prim = input[Symbol.toPrimitive];
60
- if (prim !== undefined) {
61
- var res = prim.call(input, hint || "default");
62
- if (_typeof(res) !== "object") return res;
63
- throw new TypeError("@@toPrimitive must return a primitive value.");
64
- }
65
- return (hint === "string" ? String : Number)(input);
66
- }
67
-
68
- function _toPropertyKey(arg) {
69
- var key = _toPrimitive(arg, "string");
70
- return _typeof(key) === "symbol" ? key : String(key);
71
- }
72
-
73
- function _defineProperty(obj, key, value) {
74
- key = _toPropertyKey(key);
75
- if (key in obj) {
76
- Object.defineProperty(obj, key, {
77
- value: value,
78
- enumerable: true,
79
- configurable: true,
80
- writable: true
81
- });
82
- } else {
83
- obj[key] = value;
84
- }
85
- return obj;
86
- }
87
-
88
- function _arrayLikeToArray(arr, len) {
89
- if (len == null || len > arr.length) len = arr.length;
90
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
91
- return arr2;
92
- }
93
-
94
- function _arrayWithoutHoles(arr) {
95
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
96
- }
97
-
98
- function _iterableToArray(iter) {
99
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
100
- }
101
-
102
- function _unsupportedIterableToArray(o, minLen) {
103
- if (!o) return;
104
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
105
- var n = Object.prototype.toString.call(o).slice(8, -1);
106
- if (n === "Object" && o.constructor) n = o.constructor.name;
107
- if (n === "Map" || n === "Set") return Array.from(o);
108
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
109
- }
110
-
111
- function _nonIterableSpread() {
112
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
113
- }
114
-
115
- function _toConsumableArray(arr) {
116
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
117
- }
118
-
119
- function _arrayWithHoles(arr) {
120
- if (Array.isArray(arr)) return arr;
121
- }
122
-
123
- function _iterableToArrayLimit(r, l) {
124
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
125
- if (null != t) {
126
- var e,
127
- n,
128
- i,
129
- u,
130
- a = [],
131
- f = !0,
132
- o = !1;
133
- try {
134
- if (i = (t = t.call(r)).next, 0 === l) {
135
- if (Object(t) !== t) return;
136
- f = !1;
137
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
138
- } catch (r) {
139
- o = !0, n = r;
140
- } finally {
141
- try {
142
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
143
- } finally {
144
- if (o) throw n;
145
- }
146
- }
147
- return a;
148
- }
149
- }
150
-
151
- function _nonIterableRest() {
152
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
153
- }
154
-
155
- function _slicedToArray(arr, i) {
156
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
157
- }
158
-
159
- var SEGMENTS_BASE_URL = "/neeto_filters/segments";
160
- var DATE_OPTIONS = [{
161
- label: "Today",
162
- value: "today"
163
- }, {
164
- label: "Yesterday",
165
- value: "yesterday"
166
- }, {
167
- label: "This week",
168
- value: "this-week"
169
- }, {
170
- label: "Last week",
171
- value: "last-week"
172
- }, {
173
- label: "This month",
174
- value: "this-month"
175
- }, {
176
- label: "Last month",
177
- value: "last-month"
178
- }, {
179
- label: "This year",
180
- value: "this-year"
181
- }, {
182
- label: "Last year",
183
- value: "last-year"
184
- }, {
185
- label: "All time",
186
- value: "all-time"
187
- }, {
188
- label: "After",
189
- value: "after"
190
- }, {
191
- label: "Before",
192
- value: "before"
193
- }, {
194
- label: "Custom date range",
195
- value: "custom-date-range"
196
- }];
197
- var SINGLE_DATE_OPTIONS = [{
198
- label: "On",
199
- value: "on"
200
- }, {
201
- label: "After",
202
- value: "after"
203
- }, {
204
- label: "Before",
205
- value: "before"
206
- }, {
207
- label: "Between",
208
- value: "between"
209
- }];
210
- var SINGLE_TIME_OPTIONS = [{
211
- label: "At",
212
- value: "at"
213
- }, {
214
- label: "After",
215
- value: "after"
216
- }, {
217
- label: "Before",
218
- value: "before"
219
- }, {
220
- label: "Between",
221
- value: "between"
222
- }];
223
- var TIME_OPTIONS = [{
224
- label: "This hour",
225
- value: "this-hour"
226
- }, {
227
- label: "Last hour",
228
- value: "last-hour"
229
- }, {
230
- label: "Custom time range",
231
- value: "custom-time-range"
232
- }];
233
- var DATE_RULES = {
234
- today: "on",
235
- yesterday: "on",
236
- "all-time": "before"
237
- };
238
- var SEARCH_TERM_KEY = "search_term";
239
- var SEGMENT_ID_KEY = "segment_id";
240
-
241
- dayjs.extend(utc);
242
- dayjs.extend(timezone);
243
- dayjs.extend(weekday);
244
- dayjs.Ls.en.weekStart = 1;
245
-
246
- var NUMBER_RULES = [{
247
- label: t$1("neetoFilters.rules.is"),
248
- value: "is"
249
- }, {
250
- label: t$1("neetoFilters.rules.isNot"),
251
- value: "is_not"
252
- }, {
253
- label: t$1("neetoFilters.rules.greaterThan"),
254
- value: "greater_than"
255
- }, {
256
- label: t$1("neetoFilters.rules.lessThan"),
257
- value: "less_than"
258
- }];
259
- var TEXT_RULES = [{
260
- label: t$1("neetoFilters.rules.contains"),
261
- value: "contains"
262
- }, {
263
- label: t$1("neetoFilters.rules.doesNotContain"),
264
- value: "does_not_contain"
265
- }, {
266
- label: t$1("neetoFilters.rules.is"),
267
- value: "is"
268
- }, {
269
- label: t$1("neetoFilters.rules.isNot"),
270
- value: "is_not"
271
- }, {
272
- label: t$1("neetoFilters.rules.startsWith"),
273
- value: "starts_with"
274
- }, {
275
- label: t$1("neetoFilters.rules.doesNotStartWith"),
276
- value: "does_not_start_with"
277
- }, {
278
- label: t$1("neetoFilters.rules.endsWith"),
279
- value: "ends_with"
280
- }, {
281
- label: t$1("neetoFilters.rules.doesNotEndWith"),
282
- value: "does_not_end_with"
283
- }];
284
- var MULTI_DROPDOWN_RULES = [{
285
- label: t$1("neetoFilters.rules.in"),
286
- value: "in"
287
- }, {
288
- label: t$1("neetoFilters.rules.notIn"),
289
- value: "not_in"
290
- }, {
291
- label: t$1("neetoFilters.rules.isEmpty"),
292
- value: "is_unknown"
293
- }];
294
- var SINGLE_DROPDOWN_RULES = [{
295
- label: t$1("neetoFilters.rules.is"),
296
- value: "is"
297
- }, {
298
- label: t$1("neetoFilters.rules.isNot"),
299
- value: "is_not"
300
- }, {
301
- label: t$1("neetoFilters.rules.isEmpty"),
302
- value: "is_unknown"
303
- }];
304
- var DEFAULT_BOOLEAN_OPTIONS = [{
305
- label: t$1("neetoFilters.common.yes"),
306
- value: "true"
307
- }, {
308
- label: t$1("neetoFilters.common.no"),
309
- value: "false"
310
- }];
311
- var TREE_SELECT_RULES = [{
312
- label: t$1("neetoFilters.rules.in"),
313
- value: "in"
314
- }, {
315
- label: t$1("neetoFilters.rules.notIn"),
316
- value: "not_in"
317
- }, {
318
- label: t$1("neetoFilters.rules.isEmpty"),
319
- value: "is_unknown"
320
- }];
321
- var DEFAULT_HELP_ICON_PROPS = {
322
- icon: Help
323
- };
324
-
325
- function ownKeys$e(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; }
326
- function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
327
- var groupByGroup = groupBy(function (_ref) {
328
- var group = _ref.group;
329
- return group || "individual";
330
- });
331
- var standardizeColumnType = function standardizeColumnType(kind) {
332
- // neeto-fields-nano supports `monetary` and `number` as type of fields, which will be acting as `decimal` in action.
333
- if (["custom.monetary", "custom.number"].includes(kind)) {
334
- return "custom.decimal";
335
- }
336
- return kind;
337
- };
338
- var getSnakeCasedQueryParams = function getSnakeCasedQueryParams() {
339
- return getQueryParams({
340
- toCamelCase: false
341
- });
342
- };
343
- var isBoolean = function isBoolean(type) {
344
- return type === "boolean" || type === "custom.boolean";
345
- };
346
- var isCheckbox = function isCheckbox(type) {
347
- return type === "checkbox" || type === "custom.checkbox";
348
- };
349
- var isDate = function isDate(type) {
350
- return type === "date" || type === "custom.date" || type === "custom.datetime";
351
- };
352
- var isSingleDate = function isSingleDate(type) {
353
- return type === "single_date" || type === "custom.single_date";
354
- };
355
- var isSingleTime = function isSingleTime(type) {
356
- return type === "single_time" || type === "custom.single_time";
357
- };
358
- var isTime = function isTime(type) {
359
- return type === "time" || type === "custom.time";
360
- };
361
- var isMulti = function isMulti(type) {
362
- return type === "multi_option" || type === "custom.multi_option";
363
- };
364
- var isSingle = function isSingle(type) {
365
- return type === "single_option" || type === "custom.single_option";
366
- };
367
- var isText = function isText(type) {
368
- return type === "text" || type === "custom.text";
369
- };
370
- var isDigit = function isDigit(type) {
371
- return ["number", "decimal", "custom.decimal", "custom.number"].includes(type);
372
- };
373
- var isTreeSelect = function isTreeSelect(type) {
374
- return type === "tree_select";
375
- };
376
- var isCustomDateRange = function isCustomDateRange(value) {
377
- return !pluck("value", DATE_OPTIONS).includes(value);
378
- };
379
- var isCustomTimeRange = function isCustomTimeRange(value) {
380
- return !pluck("value", TIME_OPTIONS).includes(value);
381
- };
382
- var isMultiModelFilter = function isMultiModelFilter(_ref2) {
383
- var _ref2$model = _ref2.model,
384
- model = _ref2$model === void 0 ? "" : _ref2$model;
385
- return model.split(",").length > 1;
386
- };
387
- var getTimezone = function getTimezone() {
388
- return dayjs.tz.guess();
389
- };
390
- var getLabelFromBool = function getLabelFromBool(_ref3) {
391
- var value = _ref3.value,
392
- values = _ref3.values;
393
- return findBy({
394
- value: value
395
- }, either(isEmpty, isNil)(values) ? DEFAULT_BOOLEAN_OPTIONS : values).label;
396
- };
397
- var getBoolFromLabel = function getBoolFromLabel(_ref4) {
398
- var label = _ref4.label,
399
- values = _ref4.values;
400
- return findBy({
401
- label: label
402
- }, either(isEmpty, isNil)(values) ? DEFAULT_BOOLEAN_OPTIONS : values).value;
403
- };
404
- var buildRuleOptions = function buildRuleOptions(_ref5) {
405
- var defaultType = _ref5.defaultType;
406
- if (isText(defaultType)) return TEXT_RULES;else if (isDigit(defaultType)) return NUMBER_RULES;
407
- return [];
408
- };
409
- var getDefaultRuleValue = function getDefaultRuleValue(defaultType) {
410
- var _buildRuleOptions;
411
- return ((_buildRuleOptions = buildRuleOptions({
412
- defaultType: defaultType
413
- })) === null || _buildRuleOptions === void 0 || (_buildRuleOptions = _buildRuleOptions[0]) === null || _buildRuleOptions === void 0 ? void 0 : _buildRuleOptions.value) || "";
414
- };
415
- var isUndefinedOrEmpty = anyPass([isNil, isEmpty, any(isNil)]);
416
-
417
- // Following function split node on comma followed by non-comma characters and a dot
418
- var splitNode = function splitNode(joinedNodes) {
419
- return joinedNodes.split(/,(?=[^,]*\.)/);
420
- };
421
- var splitFilter = function splitFilter(multiColumnFilter) {
422
- var splittedNodes = splitNode(multiColumnFilter.node);
423
- var splittedModels = multiColumnFilter.model.split(",");
424
- return splittedNodes.map(function (node, index) {
425
- return mergeLeft({
426
- node: node,
427
- model: splittedModels[index],
428
- conditions_join_type: index < splittedNodes.length - 1 ? "or" : "and"
429
- }, omit(["key", "label", "values", "setValue"], multiColumnFilter));
430
- });
431
- };
432
- var buildDateValue = function buildDateValue(_ref6) {
433
- var value = _ref6.value;
434
- var rule = DATE_RULES[value] || "between";
435
- var dateValue = ["before", "after", "custom-date-range"].includes(value) ? "" : value;
436
- return {
437
- value: dateValue,
438
- rule: rule,
439
- timezone: getTimezone()
440
- };
441
- };
442
- var buildTimeValue = function buildTimeValue(_ref7) {
443
- var value = _ref7.value;
444
- var dateValue = value === "custom-time-range" ? "" : value;
445
- return {
446
- value: dateValue,
447
- rule: "between"
448
- };
449
- };
450
- var buildUpdatedFilter = function buildUpdatedFilter(_ref8) {
451
- var column = _ref8.column,
452
- defaultType = _ref8.defaultType,
453
- option = _ref8.option,
454
- _ref8$rule = _ref8.rule,
455
- rule = _ref8$rule === void 0 ? "" : _ref8$rule,
456
- _ref8$value = _ref8.value,
457
- value = _ref8$value === void 0 ? "" : _ref8$value;
458
- var filter = omit(["values", "preprocessor"], column);
459
- if (isMulti(defaultType)) {
460
- return mergeLeft(filter, {
461
- value: pluck("value", option),
462
- rule: rule
463
- });
464
- } else if (isDate(defaultType)) {
465
- return mergeLeft(filter, buildDateValue(option));
466
- } else if (isSingleDate(defaultType)) {
467
- return mergeLeft(filter, {
468
- value: value,
469
- rule: rule,
470
- timezone: getTimezone()
471
- });
472
- } else if (isText(defaultType) || isDigit(defaultType)) {
473
- var _column$preprocessor;
474
- return mergeLeft(filter, {
475
- rule: rule,
476
- value: (column === null || column === void 0 || (_column$preprocessor = column.preprocessor) === null || _column$preprocessor === void 0 ? void 0 : _column$preprocessor.call(column, value)) || value
477
- });
478
- } else if (isSingleTime(defaultType)) {
479
- return mergeLeft(filter, {
480
- value: value,
481
- rule: rule
482
- });
483
- } else if (isTime(defaultType)) {
484
- return mergeLeft(filter, buildTimeValue(option));
485
- } else if (isSingle(defaultType)) {
486
- return mergeLeft(filter, {
487
- value: option.value,
488
- rule: rule
489
- });
490
- } else if (isTreeSelect(defaultType)) {
491
- return mergeLeft(filter, {
492
- value: option,
493
- rule: rule
494
- });
495
- }
496
- return mergeLeft(filter, {
497
- value: option.value,
498
- rule: "is"
499
- });
500
- };
501
- var buildFiltersFromSearchParams = function buildFiltersFromSearchParams(columns) {
502
- var skipEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
503
- var searchParams = getSnakeCasedQueryParams();
504
- return columns.map(function (column) {
505
- var value = searchParams[column.key];
506
- var defaultType = column.defaultType || column.type;
507
- if (!skipEmpty && value === "") {
508
- return mergeLeft({
509
- value: ""
510
- }, column);
511
- } else if (isNil(value) || value === "" || column.key === "keyword") {
512
- return null;
513
- } else if (column.key === SEARCH_TERM_KEY) {
514
- if (isNil(column.node)) return null;
515
- return mergeLeft({
516
- value: value,
517
- type: "text",
518
- rule: "contains"
519
- }, column);
520
- } else if (isDate(defaultType) && isCustomDateRange(value)) {
521
- return mergeLeft({
522
- value: value
523
- }, column);
524
- } else if (isMulti(defaultType) || isTreeSelect(defaultType)) {
525
- var _value$split = value.split("+rule-"),
526
- _value$split2 = _slicedToArray(_value$split, 2),
527
- filterValue = _value$split2[0],
528
- rule = _value$split2[1];
529
- return mergeLeft({
530
- rule: rule !== null && rule !== void 0 ? rule : "in",
531
- value: filterValue.split("|")
532
- }, column);
533
- } else if (isSingle(defaultType)) {
534
- var _value$split3 = value.split("+rule-"),
535
- _value$split4 = _slicedToArray(_value$split3, 2),
536
- _filterValue = _value$split4[0],
537
- _rule = _value$split4[1];
538
- return mergeLeft({
539
- rule: _rule !== null && _rule !== void 0 ? _rule : "in",
540
- value: _filterValue
541
- }, column);
542
- } else if (isDigit(defaultType) || isText(defaultType)) {
543
- var _value$split5 = value.split("+rule-"),
544
- _value$split6 = _slicedToArray(_value$split5, 2),
545
- _filterValue2 = _value$split6[0],
546
- _rule2 = _value$split6[1];
547
- return mergeLeft({
548
- rule: _rule2,
549
- value: _filterValue2
550
- }, column);
551
- } else if (isTime(defaultType) && isCustomTimeRange(value)) {
552
- return mergeLeft({
553
- value: value
554
- }, column);
555
- } else if (isSingleDate(defaultType)) {
556
- var _value$split7 = value.split("+rule-"),
557
- _value$split8 = _slicedToArray(_value$split7, 2),
558
- _filterValue3 = _value$split8[0],
559
- _rule3 = _value$split8[1];
560
- return mergeLeft({
561
- rule: _rule3,
562
- value: _rule3 === "between" ? _filterValue3.split(",") : _filterValue3
563
- }, column);
564
- } else if (isSingleTime(defaultType)) {
565
- var _value$split9 = value.split("+rule-"),
566
- _value$split10 = _slicedToArray(_value$split9, 2),
567
- _filterValue4 = _value$split10[0],
568
- _rule4 = _value$split10[1];
569
- return mergeLeft({
570
- rule: _rule4,
571
- value: _rule4 === "between" ? _filterValue4.split(",") : _filterValue4
572
- }, column);
573
- } else if (isBoolean(defaultType)) {
574
- return mergeLeft({
575
- rule: "is",
576
- value: getBoolFromLabel({
577
- label: value,
578
- values: column.values
579
- })
580
- }, column);
581
- }
582
- return mergeLeft({
583
- rule: "is",
584
- value: value
585
- }, column);
586
- }).filter(identity);
587
- };
588
- var buildTimePayload = function buildTimePayload(value) {
589
- var timeValue = {
590
- "this-hour": [dayjs().startOf("hour"), dayjs().endOf("hour")],
591
- "last-hour": [dayjs().add(-1, "hour").startOf("hour"), dayjs().add(-1, "hour").endOf("hour")],
592
- "next-hour": [dayjs().add(1, "hour").startOf("hour"), dayjs().add(1, "hour").endOf("hour")]
593
- };
594
- if (isCustomTimeRange(value)) {
595
- return {
596
- value: value ? value.join(",") : "",
597
- rule: "between"
598
- };
599
- }
600
- return {
601
- value: timeValue[value].map(function (time) {
602
- return time.toISOString();
603
- }).join(","),
604
- rule: "between"
605
- };
606
- };
607
- var buildDatePayload = function buildDatePayload(value) {
608
- var dateValue = {
609
- "this-week": [dayjs().startOf("week"), dayjs().endOf("week")],
610
- "last-week": [dayjs().add(-1, "week").startOf("week"), dayjs().add(-1, "week").endOf("week")],
611
- "this-month": [dayjs().startOf("month"), dayjs().endOf("month")],
612
- "last-month": [dayjs().add(-1, "month").startOf("month"), dayjs().add(-1, "month").endOf("month")],
613
- "this-year": [dayjs().startOf("year"), dayjs().endOf("year")],
614
- "last-year": [dayjs().add(-1, "year").startOf("year"), dayjs().add(-1, "year").endOf("year")]
615
- };
616
- if (value === "today") {
617
- return {
618
- value: dayjs().toISOString(),
619
- rule: "on",
620
- timezone: getTimezone()
621
- };
622
- } else if (value === "yesterday") {
623
- return {
624
- value: dayjs().add(-1, "day").toISOString(),
625
- rule: "on",
626
- timezone: getTimezone()
627
- };
628
- } else if (value === "all-time") {
629
- return {
630
- value: dayjs().toISOString(),
631
- rule: "before",
632
- timezone: getTimezone(),
633
- type: "datetime"
634
- };
635
- } else if (isCustomDateRange(value)) {
636
- //custom-date-range
637
- return {
638
- value: value ? value.join(",") : "",
639
- rule: "between",
640
- timezone: getTimezone()
641
- };
642
- }
643
- return {
644
- value: dateValue[value].map(function (date) {
645
- return date.toISOString();
646
- }).join(","),
647
- rule: "between",
648
- timezone: getTimezone()
649
- };
650
- };
651
- var buildSingleDatePayload = function buildSingleDatePayload(filter) {
652
- var value = filter.value;
653
- var filterValue = Array.isArray(value) ? value.join(",") : value;
654
- return _objectSpread$e(_objectSpread$e({}, filter), {}, {
655
- value: filterValue,
656
- type: "date"
657
- });
658
- };
659
- var buildSingleTimePayload = function buildSingleTimePayload(filter) {
660
- var value = filter.value;
661
- var filterValue = Array.isArray(value) ? value.join(",") : value;
662
- return _objectSpread$e(_objectSpread$e({}, filter), {}, {
663
- value: filterValue,
664
- type: "time"
665
- });
666
- };
667
- var flattenPayload = function flattenPayload(payload) {
668
- var flattenedPayload = [];
669
- payload.forEach(function (item) {
670
- return Array.isArray(item) ? flattenedPayload.unshift.apply(flattenedPayload, _toConsumableArray(item)) : flattenedPayload.push(item);
671
- }, []);
672
- return flattenedPayload;
673
- };
674
- var buildMultiOptionPayload = function buildMultiOptionPayload(values) {
675
- return values.map(function (value) {
676
- return value.toString();
677
- }).join("|");
678
- };
679
- var buildFiltersPayload = function buildFiltersPayload(filters) {
680
- var payload = removeBy({
681
- value: ""
682
- }, filters).map(function (filter) {
683
- if (filter.key === SEARCH_TERM_KEY && isMultiModelFilter(filter)) {
684
- return splitFilter(filter);
685
- }
686
- var filterPayload = omit(["key", "label", "values", "setValue"], filter);
687
- var _filterPayload$defaul = filterPayload.defaultType,
688
- defaultType = _filterPayload$defaul === void 0 ? filterPayload.type : _filterPayload$defaul,
689
- value = filterPayload.value;
690
- if (isMultiModelFilter(filterPayload)) {
691
- throw i18next.t("neetoFilters.errors.cannotPassMultipleModels");
692
- }
693
- if (isDate(defaultType)) {
694
- return mergeRight(filterPayload, buildDatePayload(value));
695
- } else if (isMulti(defaultType) || isTreeSelect(defaultType)) {
696
- return mergeRight(filterPayload, {
697
- value: buildMultiOptionPayload(value)
698
- });
699
- } else if (isSingleDate(defaultType)) {
700
- return mergeRight(filterPayload, buildSingleDatePayload(filterPayload));
701
- } else if (isSingleTime(defaultType)) {
702
- return mergeRight(filterPayload, buildSingleTimePayload(filterPayload));
703
- } else if (isTime(defaultType)) {
704
- return mergeRight(filterPayload, buildTimePayload(value));
705
- }
706
- return filterPayload;
707
- });
708
- return isEmpty(payload) ? [] : [{
709
- conditions: flattenPayload(payload)
710
- }];
711
- };
712
- var buildSegmentsPayload = function buildSegmentsPayload(filters) {
713
- var childrenKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
714
- var payload = removeBy({
715
- value: ""
716
- }, filters).map(function (filter) {
717
- if (filter.key === SEARCH_TERM_KEY) {
718
- return false;
719
- }
720
- var filterPayload = omit(["label", "values", "setValue", "defaultValue"], filter);
721
- var _filterPayload$defaul2 = filterPayload.defaultType,
722
- defaultType = _filterPayload$defaul2 === void 0 ? filterPayload.type : _filterPayload$defaul2,
723
- value = filterPayload.value;
724
- if (filter.key !== SEARCH_TERM_KEY && isMultiModelFilter(filterPayload)) {
725
- throw i18next.t("neetoFilters.errors.cannotPassMultipleModels");
726
- }
727
- if (isMulti(defaultType)) {
728
- return mergeRight(filterPayload, {
729
- value: buildMultiOptionPayload(value)
730
- });
731
- }
732
- return filterPayload;
733
- });
734
- var searchParams = getSnakeCasedQueryParams();
735
- var modifiedPayload = childrenKeys.reduce(function (acc, key) {
736
- if (has(key, searchParams)) {
737
- var filterPayload = {
738
- key: key,
739
- node: "children",
740
- value: searchParams[key]
741
- };
742
- return acc.concat(filterPayload);
743
- }
744
- return acc;
745
- }, payload);
746
- return isEmpty(modifiedPayload) ? [] : [{
747
- conditions: flattenPayload(modifiedPayload)
748
- }];
749
- };
750
- var buildFiltersFromURL = function buildFiltersFromURL(columns) {
751
- return buildFiltersPayload(buildFiltersFromSearchParams(columns.filter(function (column) {
752
- return !isNil(column.node);
753
- })));
754
- };
755
- var buildSelectorsFromURL = function buildSelectorsFromURL(columns) {
756
- var searchParams = getSnakeCasedQueryParams();
757
- var selectors = {};
758
- columns.filter(function (_ref9) {
759
- var node = _ref9.node;
760
- return !node;
761
- }).forEach(function (_ref10) {
762
- var key = _ref10.key,
763
- defaultType = _ref10.defaultType,
764
- type = _ref10.type;
765
- var value = searchParams[key];
766
- if (value) {
767
- selectors[key] = isMulti(defaultType || type) ? value.split("|") : value;
768
- }
769
- });
770
- return selectors;
771
- };
772
- var compareFilters = function compareFilters(oldFilters, newFilters) {
773
- var formatFilters = function formatFilters(filters) {
774
- return removeBy({
775
- value: ""
776
- }, filters).map(pick(["key", "rule", "value"]));
777
- };
778
- return equals(formatFilters(oldFilters), formatFilters(newFilters));
779
- };
780
- var buildFilteredColumns = function buildFilteredColumns(_ref11) {
781
- var _ref11$searchTerm = _ref11.searchTerm,
782
- searchTerm = _ref11$searchTerm === void 0 ? "" : _ref11$searchTerm,
783
- columns = _ref11.columns;
784
- var groupedColumsObject = groupByGroup(columns.filter(function (_ref12) {
785
- var label = _ref12.label,
786
- _ref12$hidden = _ref12.hidden,
787
- hidden = _ref12$hidden === void 0 ? false : _ref12$hidden;
788
- return label.toLocaleLowerCase().includes(searchTerm.trim().toLocaleLowerCase()) && !hidden;
789
- }));
790
- return {
791
- groupedColumns: toPairs(omit(["individual"], groupedColumsObject)).map(function (_ref13) {
792
- var _ref14 = _slicedToArray(_ref13, 2),
793
- group = _ref14[0],
794
- columns = _ref14[1];
795
- return {
796
- group: group,
797
- columns: columns
798
- };
799
- }),
800
- ungroupedColumns: groupedColumsObject.individual
801
- };
802
- };
803
- var buildDefaultFilters = function buildDefaultFilters(columns, filters) {
804
- return columns.filter(function (column) {
805
- return !isUndefinedOrEmpty(column.defaultValue) && !findBy({
806
- key: column.key
807
- }, filters);
808
- }).map(function (column) {
809
- var defaultType = column.defaultType || column.type;
810
- return buildUpdatedFilter({
811
- column: column,
812
- defaultType: defaultType,
813
- rule: getDefaultRuleValue(defaultType),
814
- option: column.defaultValue,
815
- value: column.defaultValue
816
- });
817
- });
818
- };
819
- var createUrlParamString = function createUrlParamString(_ref15) {
820
- var filter = _ref15.filter,
821
- columns = _ref15.columns;
822
- var key = filter.key,
823
- value = filter.value,
824
- _filter$defaultType = filter.defaultType,
825
- defaultType = _filter$defaultType === void 0 ? filter.type : _filter$defaultType,
826
- rule = filter.rule;
827
- if (key === SEARCH_TERM_KEY) {
828
- return value;
829
- } else if (isDigit(defaultType) || isText(defaultType)) {
830
- return "".concat(value, "+rule-").concat(rule);
831
- } else if (isSingleDate(defaultType) || isSingleTime(defaultType)) {
832
- return value && "".concat(value, "+rule-").concat(rule) || value;
833
- } else if (isMulti(defaultType) || isTreeSelect(defaultType)) {
834
- return "".concat(value.join("|"), "+rule-").concat(rule);
835
- } else if (isSingle(defaultType)) {
836
- return "".concat(value, "+rule-").concat(rule);
837
- } else if (isBoolean(defaultType)) {
838
- return getLabelFromBool({
839
- value: value,
840
- values: findBy({
841
- key: key
842
- }, columns).values
843
- });
844
- }
845
- return value;
846
- };
847
- var buildUrlFromFilters = function buildUrlFromFilters(_ref16) {
848
- var columns = _ref16.columns,
849
- filters = _ref16.filters,
850
- _ref16$isClearAll = _ref16.isClearAll,
851
- isClearAll = _ref16$isClearAll === void 0 ? false : _ref16$isClearAll,
852
- _ref16$childrenKeys = _ref16.childrenKeys,
853
- childrenKeys = _ref16$childrenKeys === void 0 ? [] : _ref16$childrenKeys;
854
- var searchParams = getSnakeCasedQueryParams();
855
- var isKeywordFilterPresent = findBy({
856
- key: SEARCH_TERM_KEY
857
- }, filters);
858
- columns.forEach(function (_ref17) {
859
- var key = _ref17.key,
860
- defaultValue = _ref17.defaultValue;
861
- return !defaultValue && delete searchParams[key];
862
- });
863
- if (isClearAll) {
864
- childrenKeys.forEach(function (key) {
865
- return delete searchParams[key];
866
- });
867
- delete searchParams[SEGMENT_ID_KEY];
868
- }
869
- var defaultFilters = buildDefaultFilters(columns, filters);
870
- isKeywordFilterPresent && delete searchParams[SEARCH_TERM_KEY];
871
- concat(filters, defaultFilters).forEach(function (filter) {
872
- searchParams[filter.key] = createUrlParamString({
873
- filter: filter,
874
- columns: columns
875
- });
876
- });
877
- if (isEmpty(omit([SEGMENT_ID_KEY], searchParams))) {
878
- delete searchParams[SEGMENT_ID_KEY];
879
- }
880
- return buildUrl("", searchParams).slice(1);
881
- };
882
- var createUrlParamStringForSegments = function createUrlParamStringForSegments(_ref18) {
883
- var filter = _ref18.filter,
884
- columns = _ref18.columns;
885
- var value = filter.value,
886
- _filter$defaultType2 = filter.defaultType,
887
- defaultType = _filter$defaultType2 === void 0 ? filter.type : _filter$defaultType2;
888
- if (isMulti(defaultType)) {
889
- return value;
890
- }
891
- return createUrlParamString({
892
- filter: filter,
893
- columns: columns
894
- });
895
- };
896
- var buildUrlFromSegment = function buildUrlFromSegment(_ref19) {
897
- var columns = _ref19.columns,
898
- filters = _ref19.filters,
899
- id = _ref19.id;
900
- var searchParams = getSnakeCasedQueryParams();
901
- columns.forEach(function (_ref20) {
902
- var key = _ref20.key,
903
- defaultValue = _ref20.defaultValue;
904
- return !defaultValue && delete searchParams[key];
905
- });
906
- delete searchParams[SEARCH_TERM_KEY];
907
- var defaultFilters = buildDefaultFilters(columns, filters);
908
- var newSearchParams = concat(filters, defaultFilters).reduce(function (acc, filter) {
909
- acc[filter.key] = createUrlParamStringForSegments({
910
- filter: filter,
911
- columns: columns
912
- });
913
- return acc;
914
- }, isNotEmpty(id) ? _defineProperty({}, SEGMENT_ID_KEY, id) : {});
915
- return buildUrl("", mergeLeft(newSearchParams, searchParams)).slice(1);
916
- };
917
- var getSearchTermFromUrl = function getSearchTermFromUrl() {
918
- return getQueryParams().searchTerm || "";
919
- };
920
- var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(_ref22) {
921
- var fields = _ref22.fields,
922
- _ref22$selectedFields = _ref22.selectedFields,
923
- selectedFields = _ref22$selectedFields === void 0 ? [] : _ref22$selectedFields,
924
- _ref22$showRuleSelect = _ref22.showRuleSelector,
925
- showRuleSelector = _ref22$showRuleSelect === void 0 ? false : _ref22$showRuleSelect,
926
- groupName = _ref22.groupName;
927
- return fields.reduce(function (columns, field) {
928
- if (isEmpty(selectedFields) || selectedFields.includes(field.name)) {
929
- var id = field.id,
930
- name = field.name,
931
- kind = field.kind;
932
- var column = _objectSpread$e({
933
- key: toLower(name),
934
- node: "".concat(name, ":").concat(id),
935
- label: capitalize(name),
936
- type: "custom.".concat(kind),
937
- showRuleSelector: showRuleSelector
938
- }, groupName && {
939
- group: groupName
940
- });
941
- if (kind === "single_option" || kind === "multi_option") {
942
- column.values = field.data.map(function (item) {
943
- return {
944
- label: capitalize(item.label),
945
- value: item.id
946
- };
947
- });
948
- }
949
- columns.push(column);
950
- }
951
- return columns;
952
- }, []);
953
- };
954
- var getColumnsWithStandardizedType = function getColumnsWithStandardizedType(columns) {
955
- return columns.map(function (column) {
956
- return _objectSpread$e(_objectSpread$e({}, column), {}, {
957
- type: standardizeColumnType(column.type)
958
- });
959
- });
960
- };
961
- var isKeywordFilterPresent = function isKeywordFilterPresent(keyworFilter) {
962
- return not(isEmpty(keyworFilter.node));
963
- };
964
- var isNilOrEmpty = function isNilOrEmpty(param) {
965
- return isNil(param) || isEmpty(param);
966
- };
967
-
968
- var buildDropdownValue = function buildDropdownValue(_ref) {
969
- var defaultType = _ref.defaultType,
970
- filter = _ref.filter,
971
- options = _ref.options;
972
- if (!filter) return null;
973
- if (isMulti(defaultType) || isTreeSelect(defaultType)) {
974
- return options.filter(function (_ref2) {
975
- var value = _ref2.value;
976
- return filter.value.includes(value);
977
- });
978
- }
979
- return findBy({
980
- value: filter.value
981
- }, options);
982
- };
983
- var buildSingleTimeValue = function buildSingleTimeValue(filter) {
984
- var _findBy2;
985
- if (!filter) return null;
986
- return (_findBy2 = findBy({
987
- value: filter.value
988
- }, TIME_OPTIONS)) !== null && _findBy2 !== void 0 ? _findBy2 : last(TIME_OPTIONS);
989
- };
990
- var getOtherProps = function getOtherProps(props) {
991
- return omit(["key", "node", "label", "type", "values", "model", "showRuleSelector"], props);
992
- };
993
- var buildDropdownOptions = function buildDropdownOptions(_ref3) {
994
- var defaultType = _ref3.defaultType,
995
- filter = _ref3.filter,
996
- options = _ref3.options;
997
- options = options.map(modify("value", function (value) {
998
- return value === null || value === void 0 ? void 0 : value.toString();
999
- }));
1000
- if (!filter) return options;
1001
- if (isMulti(defaultType)) {
1002
- var selectedOptions = filter.value.map(function (value) {
1003
- return findBy({
1004
- value: value
1005
- }, options) || toLabelAndValue(value);
1006
- });
1007
- var nonSelectedOptions = options.filter(function (option) {
1008
- return !filter.value.includes(option.value);
1009
- });
1010
- return concat(selectedOptions, nonSelectedOptions);
1011
- }
1012
- if (!findBy({
1013
- value: filter.value
1014
- }, options)) {
1015
- return append(toLabelAndValue(filter.value), options);
1016
- }
1017
- return options;
1018
- };
1019
- var initializeDateRule = function initializeDateRule(filter) {
1020
- return filter ? findBy({
1021
- value: filter === null || filter === void 0 ? void 0 : filter.value
1022
- }, DATE_OPTIONS) || findDateOption(filter, DATE_OPTIONS) : {};
1023
- };
1024
- var getDateValue = function getDateValue(value, rule) {
1025
- if (isEmpty(value) || isNil(value)) {
1026
- return null;
1027
- }
1028
- if (rule.value === "custom-date-range") {
1029
- return value;
1030
- }
1031
- return rule.value === "before" ? dayjs(value[1]).add(1, "day") : dayjs(value[0]).subtract(1, "day");
1032
- };
1033
- var findDateOption = function findDateOption(filter, options) {
1034
- var value = filter.value;
1035
- var isBeforeOrAfter = dayjs(value[1]).diff(dayjs(value[0]), "year") >= 90;
1036
- if (not(isBeforeOrAfter)) {
1037
- return last(options);
1038
- }
1039
- var currentMoment = dayjs();
1040
- var diffWithStart = Math.abs(currentMoment.diff(dayjs(value[0]), "year"));
1041
- var diffWithEnd = Math.abs(currentMoment.diff(dayjs(value[1]), "year"));
1042
- return diffWithStart < diffWithEnd ? findBy({
1043
- value: "after"
1044
- }, options) : findBy({
1045
- value: "before"
1046
- }, options);
1047
- };
1048
- var buildDateValues = function buildDateValues(dates, selectedRule) {
1049
- if (selectedRule.value === "after") {
1050
- return [dates.add(1, "day"), dates.add(100, "year")];
1051
- } else if (selectedRule.value === "before") {
1052
- return [dates.subtract(100, "year"), dates.subtract(1, "day")];
1053
- }
1054
- return dates;
1055
- };
1056
- var buildHelpIconProps = function buildHelpIconProps(helpIconProps) {
1057
- return mergeDeepRight(DEFAULT_HELP_ICON_PROPS, helpIconProps);
1058
- };
1059
- var hasInvalidTimes = function hasInvalidTimes(times) {
1060
- if (Array.isArray(times)) {
1061
- return times.some(function (time) {
1062
- return time.isValid();
1063
- }) === false;
1064
- }
1065
- return !times.isValid();
1066
- };
1067
- var areCustomTimeRangeValuesNotValid = function areCustomTimeRangeValuesNotValid(times) {
1068
- return !times.every(function (time) {
1069
- return time.isValid();
1070
- });
1071
- };
1072
-
1073
- // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
1074
- var formatSingleTime = function formatSingleTime(time) {
1075
- return dayjs(time).format("HH:mm:ss");
1076
- };
1077
- var formatTime = function formatTime(value, timePickerType) {
1078
- if (isNilOrEmpty(value)) return null;
1079
- if (timePickerType === "range") {
1080
- return value.map(formatSingleTime);
1081
- }
1082
- return formatSingleTime(value);
1083
- };
1084
- var isRuleEmpty = function isRuleEmpty(rule) {
1085
- return equals(rule, "is_unknown");
1086
- };
1087
-
1088
- function ownKeys$d(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; }
1089
- function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1090
- var Boolean = function Boolean(_ref) {
1091
- var column = _ref.column,
1092
- filter = _ref.filter,
1093
- handleApplyFilter = _ref.handleApplyFilter,
1094
- autoFocus = _ref.autoFocus;
1095
- var key = column.key,
1096
- _column$defaultType = column.defaultType,
1097
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1098
- label = column.label,
1099
- values = column.values,
1100
- _column$helpIconProps = column.helpIconProps,
1101
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
1102
- var options = isNil(values) || isEmpty(values) ? DEFAULT_BOOLEAN_OPTIONS : values;
1103
- var otherProps = getOtherProps(column);
1104
- var value = buildDropdownValue({
1105
- defaultType: defaultType,
1106
- filter: filter,
1107
- options: options
1108
- });
1109
- var _useTranslation = useTranslation(),
1110
- t = _useTranslation.t;
1111
- var handleChange = function handleChange(option) {
1112
- if (isEmpty(option) || isNil(option)) {
1113
- handleApplyFilter({
1114
- _delete: true
1115
- });
1116
- return;
1117
- }
1118
- var updatedFilter = buildUpdatedFilter({
1119
- column: column,
1120
- defaultType: defaultType,
1121
- option: option
1122
- });
1123
- handleApplyFilter(updatedFilter);
1124
- };
1125
- return /*#__PURE__*/jsx("div", {
1126
- className: "neeto-filters-pane-filter__item-wrapper",
1127
- children: /*#__PURE__*/jsx(Select, _objectSpread$d(_objectSpread$d({
1128
- autoFocus: autoFocus,
1129
- label: label,
1130
- options: options,
1131
- value: value,
1132
- isClearable: true
1133
- }, isNotEmpty(helpIconProps) && {
1134
- labelProps: {
1135
- helpIconProps: buildHelpIconProps(helpIconProps)
1136
- }
1137
- }), {}, {
1138
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1139
- strategy: "fixed",
1140
- placeholder: t("neetoFilters.messages.selectOption", {
1141
- resource: label
1142
- }),
1143
- onChange: handleChange
1144
- }, otherProps))
1145
- });
1146
- };
1147
- var Boolean$1 = /*#__PURE__*/React.memo(Boolean);
1148
-
1149
- function ownKeys$c(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; }
1150
- function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1151
- var Datetime = function Datetime(_ref) {
1152
- var column = _ref.column,
1153
- filter = _ref.filter,
1154
- handleApplyFilter = _ref.handleApplyFilter,
1155
- autoFocus = _ref.autoFocus;
1156
- var _useState = useState(initializeDateRule(filter)),
1157
- _useState2 = _slicedToArray(_useState, 2),
1158
- selectedRule = _useState2[0],
1159
- setSelectedRule = _useState2[1];
1160
- var _useTranslation = useTranslation(),
1161
- t = _useTranslation.t;
1162
- var key = column.key,
1163
- _column$defaultType = column.defaultType,
1164
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1165
- label = column.label,
1166
- _column$helpIconProps = column.helpIconProps,
1167
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
1168
- var isDatePickerShown = filter && isCustomDateRange(filter.value);
1169
- var otherProps = getOtherProps(column);
1170
- var handleChange = function handleChange(option) {
1171
- if (isEmpty(option) || isNil(option)) {
1172
- handleApplyFilter({
1173
- _delete: true
1174
- });
1175
- setSelectedRule({});
1176
- return;
1177
- }
1178
- setSelectedRule(option);
1179
- var updatedFilter = buildUpdatedFilter({
1180
- column: column,
1181
- defaultType: defaultType,
1182
- option: option
1183
- });
1184
- handleApplyFilter(updatedFilter);
1185
- };
1186
- var handleDateRangeChange = function handleDateRangeChange(dates) {
1187
- if (isEmpty(dates) || isNil(dates)) {
1188
- handleApplyFilter({
1189
- _delete: true
1190
- });
1191
- setSelectedRule({});
1192
- return;
1193
- }
1194
- var updatedFilter = buildUpdatedFilter({
1195
- column: column,
1196
- defaultType: defaultType,
1197
- option: {
1198
- value: pluck("$d", buildDateValues(dates, selectedRule)).map(function (date) {
1199
- return date.toISOString();
1200
- })
1201
- }
1202
- });
1203
- handleApplyFilter(updatedFilter);
1204
- };
1205
- useEffect(function () {
1206
- isNil(filter) && setSelectedRule({});
1207
- }, [filter]);
1208
- return /*#__PURE__*/jsxs("div", {
1209
- className: "neeto-filters-pane-filter__item-wrapper",
1210
- children: [/*#__PURE__*/jsx(Select, _objectSpread$c(_objectSpread$c({
1211
- autoFocus: autoFocus,
1212
- label: label,
1213
- isClearable: true,
1214
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1215
- options: DATE_OPTIONS,
1216
- strategy: "fixed",
1217
- value: selectedRule,
1218
- placeholder: t("neetoFilters.messages.selectResource", {
1219
- resource: label
1220
- })
1221
- }, isNotEmpty(helpIconProps) && {
1222
- labelProps: {
1223
- helpIconProps: buildHelpIconProps(helpIconProps)
1224
- }
1225
- }), {}, {
1226
- onChange: handleChange
1227
- })), isDatePickerShown && /*#__PURE__*/jsx(DatePicker, _objectSpread$c({
1228
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-date-range"),
1229
- getPopupContainer: prop("parentNode"),
1230
- type: (selectedRule === null || selectedRule === void 0 ? void 0 : selectedRule.value) === "custom-date-range" ? "range" : "date",
1231
- value: getDateValue(filter === null || filter === void 0 ? void 0 : filter.value, selectedRule),
1232
- onChange: handleDateRangeChange
1233
- }, otherProps))]
1234
- });
1235
- };
1236
- var Datetime$1 = /*#__PURE__*/React.memo(Datetime);
1237
-
1238
- function ownKeys$b(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; }
1239
- function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1240
- var Dropdown = function Dropdown(_ref) {
1241
- var column = _ref.column,
1242
- filter = _ref.filter,
1243
- handleApplyFilter = _ref.handleApplyFilter,
1244
- autoFocus = _ref.autoFocus,
1245
- filters = _ref.filters;
1246
- var key = column.key,
1247
- label = column.label,
1248
- values = column.values,
1249
- defaultValue = column.defaultValue,
1250
- _column$defaultType = column.defaultType,
1251
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1252
- _column$showRuleSelec = column.showRuleSelector,
1253
- showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
1254
- _column$isClearable = column.isClearable,
1255
- isClearable = _column$isClearable === void 0 ? true : _column$isClearable,
1256
- _column$helpIconProps = column.helpIconProps,
1257
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
1258
- var otherProps = getOtherProps(column);
1259
- var options = buildDropdownOptions({
1260
- defaultType: defaultType,
1261
- filter: filter,
1262
- options: values
1263
- });
1264
- var dropdownRules = isMulti(defaultType) ? MULTI_DROPDOWN_RULES : SINGLE_DROPDOWN_RULES;
1265
- var value = buildDropdownValue({
1266
- defaultType: defaultType,
1267
- filter: filter,
1268
- options: options
1269
- });
1270
- var _useState = useState(findBy({
1271
- value: filter === null || filter === void 0 ? void 0 : filter.rule
1272
- }, dropdownRules) || dropdownRules[0]),
1273
- _useState2 = _slicedToArray(_useState, 2),
1274
- selectedRule = _useState2[0],
1275
- setSelectedRule = _useState2[1];
1276
- var _useTranslation = useTranslation(),
1277
- t = _useTranslation.t;
1278
- var getOption = function getOption(isSelectedRuleEmpty, options, value) {
1279
- if (isSelectedRuleEmpty) {
1280
- return isMulti(defaultType) ? [options[0]] : options[0];
1281
- }
1282
- return value;
1283
- };
1284
- var handleRuleChange = function handleRuleChange(rule) {
1285
- var isPreviousRuleEmpty = isRuleEmpty(selectedRule.value);
1286
- var isNewRuleEmpty = isRuleEmpty(rule.value);
1287
- setSelectedRule(rule);
1288
- if (isPreviousRuleEmpty || !isNewRuleEmpty && isNotPresent(filter === null || filter === void 0 ? void 0 : filter.value)) {
1289
- handleApplyFilter({
1290
- _delete: true
1291
- });
1292
- return;
1293
- }
1294
- var updatedFilter = buildUpdatedFilter({
1295
- column: column,
1296
- defaultType: defaultType,
1297
- rule: rule.value,
1298
- option: getOption(isNewRuleEmpty, options, value)
1299
- });
1300
- handleApplyFilter(updatedFilter);
1301
- };
1302
- var handleChange = function handleChange(option) {
1303
- if (isEmpty(option) || isNil(option)) {
1304
- handleApplyFilter({
1305
- _delete: true
1306
- });
1307
- return;
1308
- }
1309
- var updatedFilter = buildUpdatedFilter({
1310
- column: column,
1311
- defaultType: defaultType,
1312
- option: option,
1313
- rule: selectedRule.value
1314
- });
1315
- handleApplyFilter(updatedFilter);
1316
- };
1317
- useEffect(function () {
1318
- if (!isEmpty(filters)) return;
1319
- isRuleEmpty(selectedRule.value) && setSelectedRule(dropdownRules[0]);
1320
- }, [filters]);
1321
- return /*#__PURE__*/jsxs("div", {
1322
- className: "neeto-filters-pane-filter__item-wrapper",
1323
- children: [showRuleSelector && /*#__PURE__*/jsx(Select, {
1324
- label: label,
1325
- defaultValue: dropdownRules[0],
1326
- options: dropdownRules,
1327
- value: selectedRule,
1328
- onChange: handleRuleChange
1329
- }), !isRuleEmpty(selectedRule.value) && /*#__PURE__*/jsx(Select, _objectSpread$b(_objectSpread$b({
1330
- autoFocus: autoFocus,
1331
- options: options,
1332
- value: value,
1333
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1334
- isClearable: !defaultValue && isClearable,
1335
- isMulti: isMulti(defaultType),
1336
- label: !showRuleSelector && label,
1337
- strategy: "fixed",
1338
- placeholder: t("neetoFilters.messages.selectResource", {
1339
- resource: label
1340
- })
1341
- }, isNotEmpty(helpIconProps) && {
1342
- labelProps: {
1343
- helpIconProps: buildHelpIconProps(helpIconProps)
1344
- }
1345
- }), {}, {
1346
- onChange: handleChange
1347
- }, otherProps))]
1348
- });
1349
- };
1350
- var Dropdown$1 = /*#__PURE__*/React.memo(Dropdown);
1351
-
1352
- function ownKeys$a(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; }
1353
- function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1354
- var SingleDatetime = function SingleDatetime(_ref) {
1355
- var column = _ref.column,
1356
- filter = _ref.filter,
1357
- filters = _ref.filters,
1358
- handleApplyFilter = _ref.handleApplyFilter,
1359
- autoFocus = _ref.autoFocus;
1360
- var _useState = useState(function () {
1361
- return findBy({
1362
- value: filter === null || filter === void 0 ? void 0 : filter.rule
1363
- }, SINGLE_DATE_OPTIONS) || SINGLE_DATE_OPTIONS[0];
1364
- }),
1365
- _useState2 = _slicedToArray(_useState, 2),
1366
- selectedRule = _useState2[0],
1367
- setSelectedRule = _useState2[1];
1368
- var key = column.key,
1369
- _column$defaultType = column.defaultType,
1370
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1371
- label = column.label,
1372
- _column$helpIconProps = column.helpIconProps,
1373
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
1374
- var otherProps = getOtherProps(column);
1375
- var datePickerType = selectedRule.value === "between" ? "range" : "date";
1376
- var value = filter === null || filter === void 0 ? void 0 : filter.value;
1377
-
1378
- // Reset states when "Clear filters" button is clicked.
1379
- useEffect(function () {
1380
- if (!isEmpty(filters)) return;
1381
- setSelectedRule(SINGLE_DATE_OPTIONS[0]);
1382
- }, [filters]);
1383
- var handleRuleChange = function handleRuleChange(ruleOption) {
1384
- setSelectedRule(ruleOption);
1385
-
1386
- // Clear value if switched between incompatable types
1387
- var updateValue = value;
1388
- if (datePickerType === "range" && ruleOption.value !== "between" || datePickerType === "date" && ruleOption.value === "between") {
1389
- updateValue = "";
1390
- }
1391
- var updatedFilter = buildUpdatedFilter({
1392
- column: column,
1393
- defaultType: defaultType,
1394
- option: {},
1395
- rule: ruleOption.value,
1396
- value: updateValue
1397
- });
1398
- handleApplyFilter(updatedFilter);
1399
- };
1400
- var handleChange = function handleChange(dates) {
1401
- if (isEmpty(dates) || isNil(dates)) {
1402
- handleApplyFilter({
1403
- _delete: true
1404
- });
1405
- return;
1406
- }
1407
- var value = datePickerType === "range" ? pluck("$d", dates).map(function (date) {
1408
- return date.toISOString();
1409
- }) : dates["$d"];
1410
- var updatedFilter = buildUpdatedFilter({
1411
- column: column,
1412
- defaultType: defaultType,
1413
- option: {},
1414
- rule: selectedRule.value,
1415
- value: value
1416
- });
1417
- handleApplyFilter(updatedFilter);
1418
- };
1419
- return /*#__PURE__*/jsxs("div", {
1420
- className: "neeto-filters-pane-filter__item-wrapper",
1421
- children: [/*#__PURE__*/jsx(Select, _objectSpread$a(_objectSpread$a({
1422
- label: label,
1423
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter-rule"),
1424
- defaultValue: SINGLE_DATE_OPTIONS[0],
1425
- options: SINGLE_DATE_OPTIONS,
1426
- strategy: "fixed",
1427
- value: selectedRule
1428
- }, isNotEmpty(helpIconProps) && {
1429
- labelProps: {
1430
- helpIconProps: buildHelpIconProps(helpIconProps)
1431
- }
1432
- }), {}, {
1433
- onChange: handleRuleChange
1434
- })), /*#__PURE__*/jsx(DatePicker, _objectSpread$a({
1435
- autoFocus: autoFocus,
1436
- value: value,
1437
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1438
- getPopupContainer: prop("parentNode"),
1439
- type: datePickerType,
1440
- onChange: handleChange
1441
- }, otherProps))]
1442
- });
1443
- };
1444
-
1445
- 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; }
1446
- 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), !0).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; }
1447
- var SingleTime = function SingleTime(_ref) {
1448
- var column = _ref.column,
1449
- filter = _ref.filter,
1450
- filters = _ref.filters,
1451
- handleApplyFilter = _ref.handleApplyFilter,
1452
- autoFocus = _ref.autoFocus;
1453
- var _useState = useState(function () {
1454
- return findBy({
1455
- value: filter === null || filter === void 0 ? void 0 : filter.rule
1456
- }, SINGLE_TIME_OPTIONS) || SINGLE_TIME_OPTIONS[0];
1457
- }),
1458
- _useState2 = _slicedToArray(_useState, 2),
1459
- selectedRule = _useState2[0],
1460
- setSelectedRule = _useState2[1];
1461
- var key = column.key,
1462
- _column$defaultType = column.defaultType,
1463
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1464
- label = column.label,
1465
- _column$helpIconProps = column.helpIconProps,
1466
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
1467
- var otherProps = getOtherProps(column);
1468
- var timePickerType = selectedRule.value === "between" ? "range" : "time";
1469
- var value = filter === null || filter === void 0 ? void 0 : filter.value;
1470
- useEffect(function () {
1471
- if (!isEmpty(filters)) return;
1472
- setSelectedRule(SINGLE_TIME_OPTIONS[0]);
1473
- }, [filters]);
1474
- var handleRuleChange = function handleRuleChange(ruleOption) {
1475
- setSelectedRule(ruleOption);
1476
-
1477
- // Clear value if switched between incompatible types
1478
- var updateValue = value;
1479
- if (timePickerType === "range" && ruleOption.value !== "between" || timePickerType === "time" && ruleOption.value === "between") {
1480
- updateValue = "";
1481
- }
1482
- var updatedFilter = buildUpdatedFilter({
1483
- column: column,
1484
- defaultType: defaultType,
1485
- option: {},
1486
- rule: ruleOption.value,
1487
- value: updateValue
1488
- });
1489
- handleApplyFilter(updatedFilter);
1490
- };
1491
- var handleChange = function handleChange(times) {
1492
- if (hasInvalidTimes(times)) {
1493
- handleApplyFilter({
1494
- _delete: true
1495
- });
1496
- return;
1497
- }
1498
- if (timePickerType === "range" && areCustomTimeRangeValuesNotValid(times)) {
1499
- return;
1500
- }
1501
- var value = timePickerType === "range" ? pluck("$d", times).map(function (time) {
1502
- return time.toISOString();
1503
- }) : times["$d"].toISOString();
1504
- var updatedFilter = buildUpdatedFilter({
1505
- column: column,
1506
- defaultType: defaultType,
1507
- option: {},
1508
- rule: selectedRule.value,
1509
- value: value
1510
- });
1511
- handleApplyFilter(updatedFilter);
1512
- };
1513
- var formattedTime = formatTime(value, timePickerType);
1514
- return /*#__PURE__*/jsxs("div", {
1515
- className: "neeto-filters-pane-filter__item-wrapper",
1516
- children: [/*#__PURE__*/jsx(Select, _objectSpread$9(_objectSpread$9({
1517
- label: label,
1518
- defaultValue: SINGLE_TIME_OPTIONS[0],
1519
- options: SINGLE_TIME_OPTIONS,
1520
- strategy: "fixed",
1521
- value: selectedRule
1522
- }, isNotEmpty(helpIconProps) && {
1523
- labelProps: {
1524
- helpIconProps: buildHelpIconProps(helpIconProps)
1525
- }
1526
- }), {}, {
1527
- onChange: handleRuleChange
1528
- })), /*#__PURE__*/jsx(TimePickerInput, _objectSpread$9({
1529
- autoFocus: autoFocus,
1530
- className: "w-full",
1531
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1532
- type: timePickerType,
1533
- value: formattedTime,
1534
- onChange: handleChange
1535
- }, otherProps))]
1536
- });
1537
- };
1538
-
1539
- 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; }
1540
- 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), !0).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; }
1541
- var Text = function Text(_ref) {
1542
- var column = _ref.column,
1543
- filter = _ref.filter,
1544
- filters = _ref.filters,
1545
- handleApplyFilter = _ref.handleApplyFilter,
1546
- autoFocus = _ref.autoFocus,
1547
- onClose = _ref.onClose;
1548
- var key = column.key,
1549
- _column$defaultType = column.defaultType,
1550
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1551
- label = column.label,
1552
- _column$showRuleSelec = column.showRuleSelector,
1553
- showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
1554
- _column$helpIconProps = column.helpIconProps,
1555
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
1556
- var otherProps = getOtherProps(column);
1557
- var ruleOptions = buildRuleOptions({
1558
- defaultType: defaultType
1559
- });
1560
- var inputType = defaultType === "text" || defaultType === "custom.text" ? "text" : "number";
1561
- var _useState = useState(filter === null || filter === void 0 ? void 0 : filter.value),
1562
- _useState2 = _slicedToArray(_useState, 2),
1563
- inputValue = _useState2[0],
1564
- setInputValue = _useState2[1];
1565
- var _useState3 = useState(function () {
1566
- return findBy({
1567
- value: filter === null || filter === void 0 ? void 0 : filter.rule
1568
- }, ruleOptions) || ruleOptions[0];
1569
- }),
1570
- _useState4 = _slicedToArray(_useState3, 2),
1571
- selectedRule = _useState4[0],
1572
- setSelectedRule = _useState4[1];
1573
- var debouncedInputValue = useDebounce(inputValue);
1574
- var _useTranslation = useTranslation(),
1575
- t = _useTranslation.t;
1576
- var handleUpdateAndApplyFilter = function handleUpdateAndApplyFilter() {
1577
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : debouncedInputValue;
1578
- var rule = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : selectedRule;
1579
- if (equals(filter === null || filter === void 0 ? void 0 : filter.value, value) && equals(selectedRule, rule)) return;
1580
- var updatedFilter = buildUpdatedFilter({
1581
- column: column,
1582
- defaultType: defaultType,
1583
- option: {},
1584
- rule: rule.value,
1585
- value: value.trim()
1586
- });
1587
- handleApplyFilter(updatedFilter);
1588
- };
1589
- var handleKeydown = function handleKeydown(e) {
1590
- if (!(e.key === "Enter")) return;
1591
- handleUpdateAndApplyFilter(inputValue);
1592
- onClose();
1593
- };
1594
- var handleRuleChange = function handleRuleChange(ruleOption) {
1595
- setSelectedRule(ruleOption);
1596
- if (!debouncedInputValue) return;
1597
- handleUpdateAndApplyFilter(debouncedInputValue, ruleOption);
1598
- };
1599
-
1600
- // Reset states when "Clear filters" button is clicked.
1601
- useEffect(function () {
1602
- (isEmpty(filters) || isNil(filter)) && setInputValue("");
1603
- }, [filter]);
1604
- useEffect(function () {
1605
- if (!debouncedInputValue) {
1606
- !isUndefinedOrEmpty(filter) && handleApplyFilter({
1607
- _delete: true
1608
- });
1609
- return;
1610
- }
1611
- handleUpdateAndApplyFilter();
1612
- }, [debouncedInputValue]);
1613
- return /*#__PURE__*/jsxs("div", {
1614
- className: "neeto-filters-pane-filter__item-wrapper",
1615
- children: [showRuleSelector && /*#__PURE__*/jsx(Select, _objectSpread$8({
1616
- label: label,
1617
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter-rule"),
1618
- defaultValue: ruleOptions[0],
1619
- options: ruleOptions,
1620
- strategy: "fixed",
1621
- value: selectedRule,
1622
- onChange: handleRuleChange
1623
- }, isNotEmpty(helpIconProps) && {
1624
- labelProps: {
1625
- helpIconProps: buildHelpIconProps(helpIconProps)
1626
- }
1627
- })), /*#__PURE__*/jsx(Input, _objectSpread$8(_objectSpread$8({
1628
- autoFocus: autoFocus,
1629
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1630
- label: !showRuleSelector && label,
1631
- type: inputType,
1632
- value: inputValue
1633
- }, isNotEmpty(helpIconProps) && {
1634
- labelProps: {
1635
- helpIconProps: buildHelpIconProps(helpIconProps)
1636
- }
1637
- }), {}, {
1638
- placeholder: t("neetoFilters.messages.enterResource", {
1639
- resource: label
1640
- }),
1641
- onChange: function onChange(event) {
1642
- return setInputValue(event.target.value);
1643
- },
1644
- onKeyDown: handleKeydown
1645
- }, otherProps))]
1646
- });
1647
- };
1648
-
1649
- 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; }
1650
- 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) { _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; }
1651
- var Time = function Time(_ref) {
1652
- var column = _ref.column,
1653
- filter = _ref.filter,
1654
- handleApplyFilter = _ref.handleApplyFilter,
1655
- autoFocus = _ref.autoFocus;
1656
- var key = column.key,
1657
- _column$defaultType = column.defaultType,
1658
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1659
- label = column.label,
1660
- _column$helpIconProps = column.helpIconProps,
1661
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps;
1662
- var otherProps = getOtherProps(column);
1663
- var value = buildSingleTimeValue(filter);
1664
- var isCustomTimeRangeShown = filter && isCustomTimeRange(filter.value);
1665
- var _useTranslation = useTranslation(),
1666
- t = _useTranslation.t;
1667
- var handleChange = function handleChange(option) {
1668
- if (isEmpty(option) || isNil(option)) {
1669
- handleApplyFilter({
1670
- _delete: true
1671
- });
1672
- return;
1673
- }
1674
- var updatedFilter = buildUpdatedFilter({
1675
- column: column,
1676
- defaultType: defaultType,
1677
- option: option
1678
- });
1679
- handleApplyFilter(updatedFilter);
1680
- };
1681
- var handleTimeRangeChange = function handleTimeRangeChange(times) {
1682
- if (hasInvalidTimes(times)) {
1683
- handleApplyFilter({
1684
- _delete: true
1685
- });
1686
- return;
1687
- }
1688
- if (isCustomTimeRangeShown && areCustomTimeRangeValuesNotValid(times)) {
1689
- return;
1690
- }
1691
- var updatedFilter = buildUpdatedFilter({
1692
- column: column,
1693
- defaultType: defaultType,
1694
- option: {
1695
- value: pluck("$d", times).map(function (time) {
1696
- return time.toISOString();
1697
- })
1698
- }
1699
- });
1700
- handleApplyFilter(updatedFilter);
1701
- };
1702
- return /*#__PURE__*/jsxs("div", {
1703
- className: "neeto-filters-pane-filter__item-wrapper",
1704
- children: [/*#__PURE__*/jsx(Select, _objectSpread$7(_objectSpread$7({
1705
- autoFocus: autoFocus,
1706
- label: label,
1707
- value: value,
1708
- isClearable: true,
1709
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1710
- options: TIME_OPTIONS,
1711
- strategy: "fixed",
1712
- placeholder: t("neetoFilters.messages.selectResource", {
1713
- resource: label
1714
- })
1715
- }, isNotEmpty(helpIconProps) && {
1716
- labelProps: {
1717
- helpIconProps: buildHelpIconProps(helpIconProps)
1718
- }
1719
- }), {}, {
1720
- onChange: handleChange
1721
- })), isCustomTimeRangeShown && /*#__PURE__*/jsx(TimePickerInput, _objectSpread$7({
1722
- className: "w-full",
1723
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-date-range"),
1724
- type: "range",
1725
- value: formatTime(filter.value, "range"),
1726
- onChange: handleTimeRangeChange
1727
- }, otherProps))]
1728
- });
1729
- };
1730
- var Time$1 = /*#__PURE__*/React.memo(Time);
1731
-
1732
- 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; }
1733
- 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) { _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; }
1734
- var TreeSelect = function TreeSelect(_ref) {
1735
- var _findBy;
1736
- var autoFocus = _ref.autoFocus,
1737
- column = _ref.column,
1738
- filter = _ref.filter,
1739
- handleApplyFilter = _ref.handleApplyFilter;
1740
- var key = column.key,
1741
- label = column.label,
1742
- _column$defaultType = column.defaultType,
1743
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
1744
- defaultValue = column.defaultValue,
1745
- _column$helpIconProps = column.helpIconProps,
1746
- helpIconProps = _column$helpIconProps === void 0 ? {} : _column$helpIconProps,
1747
- _column$isClearable = column.isClearable,
1748
- isClearable = _column$isClearable === void 0 ? true : _column$isClearable,
1749
- _column$showRuleSelec = column.showRuleSelector,
1750
- showRuleSelector = _column$showRuleSelec === void 0 ? false : _column$showRuleSelec,
1751
- options = column.values;
1752
- var initialRule = (_findBy = findBy({
1753
- value: filter === null || filter === void 0 ? void 0 : filter.rule
1754
- }, TREE_SELECT_RULES)) !== null && _findBy !== void 0 ? _findBy : TREE_SELECT_RULES[0];
1755
- var _useState = useState(initialRule),
1756
- _useState2 = _slicedToArray(_useState, 2),
1757
- selectedRule = _useState2[0],
1758
- setSelectedRule = _useState2[1];
1759
- var _useTranslation = useTranslation(),
1760
- t = _useTranslation.t;
1761
- var selectedOption = buildDropdownValue({
1762
- defaultType: defaultType,
1763
- filter: filter,
1764
- options: options
1765
- });
1766
- var handleChange = function handleChange(option) {
1767
- if (isNotPresent(option)) return handleApplyFilter({
1768
- _delete: true
1769
- });
1770
- var updatedFilter = buildUpdatedFilter({
1771
- column: column,
1772
- defaultType: defaultType,
1773
- option: option,
1774
- rule: selectedRule.value
1775
- });
1776
- return handleApplyFilter(updatedFilter);
1777
- };
1778
- var handleRuleChange = function handleRuleChange(rule) {
1779
- var isPreviousRuleEmpty = isRuleEmpty(selectedRule.value);
1780
- var isNewRuleEmpty = isRuleEmpty(rule.value);
1781
- setSelectedRule(rule);
1782
- if (isPreviousRuleEmpty || !isNewRuleEmpty && isNotPresent(filter === null || filter === void 0 ? void 0 : filter.value)) {
1783
- return handleApplyFilter({
1784
- _delete: true
1785
- });
1786
- }
1787
- var updatedFilter = buildUpdatedFilter({
1788
- column: column,
1789
- defaultType: defaultType,
1790
- option: isNewRuleEmpty ? [options[0]] : selectedOption,
1791
- rule: rule.value
1792
- });
1793
- return handleApplyFilter(updatedFilter);
1794
- };
1795
- return /*#__PURE__*/jsxs("div", {
1796
- className: "neeto-filters-pane-filter__item-wrapper",
1797
- children: [showRuleSelector && /*#__PURE__*/jsx(Select, {
1798
- label: label,
1799
- defaultValue: TREE_SELECT_RULES[0],
1800
- options: TREE_SELECT_RULES,
1801
- value: selectedRule,
1802
- onChange: handleRuleChange
1803
- }), !isRuleEmpty(selectedRule.value) &&
1804
- /*#__PURE__*/
1805
- // eslint-disable-next-line @bigbinary/neeto/merge-spread-attributes
1806
- jsx(NeetoUITreeSelect, _objectSpread$6(_objectSpread$6({
1807
- autoFocus: autoFocus,
1808
- multiple: true,
1809
- showSearch: true,
1810
- treeDataSimpleMode: true,
1811
- allowClear: !defaultValue && isClearable,
1812
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
1813
- label: !showRuleSelector && label,
1814
- treeData: options,
1815
- value: selectedOption,
1816
- placeholder: t("neetoFilters.messages.selectResource", {
1817
- resource: label
1818
- }),
1819
- onChange: handleChange
1820
- }, isNotEmpty(helpIconProps) && {
1821
- labelProps: {
1822
- helpIconProps: buildHelpIconProps(helpIconProps)
1823
- }
1824
- }), getOtherProps(column)))]
1825
- });
1826
- };
1827
- var TreeSelect$1 = /*#__PURE__*/React.memo(TreeSelect);
1828
-
1829
- var Item = function Item(_ref) {
1830
- var column = _ref.column,
1831
- filters = _ref.filters,
1832
- onChange = _ref.onChange,
1833
- autoFocus = _ref.autoFocus,
1834
- _ref$onClose = _ref.onClose,
1835
- onClose = _ref$onClose === void 0 ? noop : _ref$onClose;
1836
- var key = column.key,
1837
- _column$defaultType = column.defaultType,
1838
- defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType;
1839
- var filter = useMemo(function () {
1840
- return findBy({
1841
- key: key
1842
- }, filters);
1843
- }, [filters, key]);
1844
- var handleApplyFilter = function handleApplyFilter(updatedFilter) {
1845
- if (updatedFilter._delete) onChange(removeBy({
1846
- key: key
1847
- }, filters));else if (!filter) onChange(append(updatedFilter, filters));else onChange(replaceBy({
1848
- key: key
1849
- }, updatedFilter, filters));
1850
- };
1851
- if (isText(defaultType) || isDigit(defaultType)) {
1852
- return /*#__PURE__*/jsx(Text, {
1853
- autoFocus: autoFocus,
1854
- column: column,
1855
- filter: filter,
1856
- filters: filters,
1857
- handleApplyFilter: handleApplyFilter,
1858
- onClose: onClose
1859
- });
1860
- }
1861
- if (isDate(defaultType)) {
1862
- return /*#__PURE__*/jsx(Datetime$1, {
1863
- autoFocus: autoFocus,
1864
- column: column,
1865
- filter: filter,
1866
- handleApplyFilter: handleApplyFilter
1867
- });
1868
- }
1869
- if (isTime(defaultType)) {
1870
- return /*#__PURE__*/jsx(Time$1, {
1871
- autoFocus: autoFocus,
1872
- column: column,
1873
- filter: filter,
1874
- handleApplyFilter: handleApplyFilter
1875
- });
1876
- }
1877
- if (isSingleDate(defaultType)) {
1878
- return /*#__PURE__*/jsx(SingleDatetime, {
1879
- autoFocus: autoFocus,
1880
- column: column,
1881
- filter: filter,
1882
- filters: filters,
1883
- handleApplyFilter: handleApplyFilter
1884
- });
1885
- }
1886
- if (isSingleTime(defaultType)) {
1887
- return /*#__PURE__*/jsx(SingleTime, {
1888
- autoFocus: autoFocus,
1889
- column: column,
1890
- filter: filter,
1891
- filters: filters,
1892
- handleApplyFilter: handleApplyFilter
1893
- });
1894
- }
1895
- if (isBoolean(defaultType) || isCheckbox(defaultType)) {
1896
- return /*#__PURE__*/jsx(Boolean$1, {
1897
- autoFocus: autoFocus,
1898
- column: column,
1899
- filter: filter,
1900
- handleApplyFilter: handleApplyFilter
1901
- });
1902
- }
1903
- if (isTreeSelect(defaultType)) {
1904
- return /*#__PURE__*/jsx(TreeSelect$1, {
1905
- autoFocus: autoFocus,
1906
- column: column,
1907
- filter: filter,
1908
- handleApplyFilter: handleApplyFilter
1909
- });
1910
- }
1911
- return /*#__PURE__*/jsx(Dropdown$1, {
1912
- autoFocus: autoFocus,
1913
- column: column,
1914
- filter: filter,
1915
- filters: filters,
1916
- handleApplyFilter: handleApplyFilter
1917
- });
1918
- };
1919
-
1920
- var STEPS = {
1921
- ADD: "add",
1922
- COLUMN: "column",
1923
- VALUE: "value"
1924
- };
1925
-
1926
- var AddFilter = function AddFilter(_ref) {
1927
- var _findBy;
1928
- var columns = _ref.columns,
1929
- filters = _ref.filters,
1930
- handleChange = _ref.handleChange,
1931
- handleClearFilter = _ref.handleClearFilter,
1932
- _ref$disabled = _ref.disabled,
1933
- disabled = _ref$disabled === void 0 ? false : _ref$disabled;
1934
- var _useTranslation = useTranslation(),
1935
- t = _useTranslation.t;
1936
- var _useState = useState({
1937
- step: STEPS.ADD,
1938
- column: {}
1939
- }),
1940
- _useState2 = _slicedToArray(_useState, 2),
1941
- selectedColumn = _useState2[0],
1942
- setSelectedColumn = _useState2[1];
1943
-
1944
- // Disable the add button when
1945
- // 1. No value is entered for previous filter
1946
- // 2. There are no more columns
1947
- var disableAddButton = selectedColumn.step !== STEPS.ADD && isNotPresent((_findBy = findBy({
1948
- key: selectedColumn.column.key
1949
- }, filters)) === null || _findBy === void 0 ? void 0 : _findBy.value) || isEmpty(columns);
1950
- return /*#__PURE__*/jsx(Fragment, {
1951
- children: selectedColumn.step !== STEPS.ADD ? /*#__PURE__*/jsxs(Fragment, {
1952
- children: [/*#__PURE__*/jsxs("div", {
1953
- className: "flex w-full gap-4",
1954
- children: [selectedColumn.step === STEPS.COLUMN && /*#__PURE__*/jsx(Select, {
1955
- isSearchable: true,
1956
- label: t("neetoFilters.segments.newFilter"),
1957
- optionRemapping: {
1958
- label: "label",
1959
- value: "key"
1960
- },
1961
- options: columns,
1962
- placeholder: t("neetoFilters.segments.selectFilter"),
1963
- onChange: function onChange(column) {
1964
- return setSelectedColumn({
1965
- step: STEPS.VALUE,
1966
- column: column
1967
- });
1968
- }
1969
- }), selectedColumn.step === STEPS.VALUE && /*#__PURE__*/jsx(Item, {
1970
- filters: filters,
1971
- autoFocus: true,
1972
- column: selectedColumn.column,
1973
- onChange: handleChange
1974
- }), /*#__PURE__*/jsx(Button, {
1975
- className: "mt-6 self-center",
1976
- icon: Delete$1,
1977
- style: "text",
1978
- onClick: function onClick() {
1979
- handleClearFilter(selectedColumn.column);
1980
- setSelectedColumn(assoc("step", STEPS.ADD));
1981
- }
1982
- })]
1983
- }), /*#__PURE__*/jsx(AddFilter, {
1984
- filters: filters,
1985
- handleChange: handleChange,
1986
- handleClearFilter: handleClearFilter,
1987
- columns: columns.filter(function (_ref2) {
1988
- var key = _ref2.key;
1989
- return !existsBy({
1990
- key: key
1991
- }, filters);
1992
- }),
1993
- disabled: disableAddButton
1994
- })]
1995
- }) : /*#__PURE__*/jsx(Button, {
1996
- disabled: disabled,
1997
- className: "self-start",
1998
- icon: Plus,
1999
- iconPosition: "left",
2000
- label: t("neetoFilters.segments.addFilter"),
2001
- style: "link",
2002
- onClick: function onClick() {
2003
- return setSelectedColumn(assoc("step", STEPS.COLUMN));
2004
- }
2005
- })
2006
- });
2007
- };
2008
-
2009
- var buildSegmentsValidationSchema = function buildSegmentsValidationSchema(defaultSegmentName) {
2010
- return yup.object({
2011
- name: yup.string().trim().required(t$1("neetoFilters.segments.nameIsRequired")).test({
2012
- name: "not-default-segment-name",
2013
- test: function test(value) {
2014
- return (value === null || value === void 0 ? void 0 : value.toLocaleLowerCase()) !== defaultSegmentName.toLocaleLowerCase();
2015
- },
2016
- message: t$1("neetoFilters.segments.reservedNameErrorMessage")
2017
- })
2018
- });
2019
- };
2020
-
2021
- 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; }
2022
- 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) { _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; }
2023
- var SegmentForm = function SegmentForm(_ref) {
2024
- var _ref$isEdit = _ref.isEdit,
2025
- isEdit = _ref$isEdit === void 0 ? false : _ref$isEdit,
2026
- segmentFormInitialRef = _ref.segmentFormInitialRef,
2027
- isOpen = _ref.isOpen,
2028
- onClose = _ref.onClose,
2029
- isSubmitting = _ref.isSubmitting,
2030
- handleSubmit = _ref.handleSubmit,
2031
- defaultSegmentName = _ref.defaultSegmentName,
2032
- initialValues = _ref.initialValues,
2033
- customFilters = _ref.customFilters,
2034
- columns = _ref.columns,
2035
- filters = _ref.filters,
2036
- childrenKeys = _ref.childrenKeys;
2037
- var history = useHistory();
2038
- var _useTranslation = useTranslation(),
2039
- t = _useTranslation.t;
2040
- var _buildFilteredColumns = buildFilteredColumns({
2041
- searchTerm: "",
2042
- columns: columns
2043
- }),
2044
- _buildFilteredColumns2 = _buildFilteredColumns.groupedColumns,
2045
- groupedColumns = _buildFilteredColumns2 === void 0 ? [] : _buildFilteredColumns2,
2046
- _buildFilteredColumns3 = _buildFilteredColumns.ungroupedColumns,
2047
- ungroupedColumns = _buildFilteredColumns3 === void 0 ? [] : _buildFilteredColumns3;
2048
- var handleChange = function handleChange(newFilters) {
2049
- var isClearAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
2050
- var params = buildUrlFromFilters(_objectSpread$5({
2051
- columns: columns,
2052
- filters: newFilters
2053
- }, isClearAll && {
2054
- isClearAll: true,
2055
- childrenKeys: childrenKeys
2056
- }));
2057
- history.push({
2058
- search: params
2059
- });
2060
- };
2061
- var handleClearFilter = function handleClearFilter(column, values, setFieldValue) {
2062
- var formState = [{
2063
- conditions: removeBy({
2064
- key: column.key
2065
- }, values.filters[0].conditions)
2066
- }];
2067
- var globalState = removeBy({
2068
- key: column.key
2069
- }, filters);
2070
- setFieldValue("filters", formState);
2071
- handleChange(globalState);
2072
- };
2073
- return /*#__PURE__*/jsxs(Pane$1, {
2074
- isOpen: isOpen,
2075
- onClose: onClose,
2076
- initialFocusRef: segmentFormInitialRef,
2077
- children: [/*#__PURE__*/jsx(Pane$1.Header, {
2078
- children: /*#__PURE__*/jsx(Typography, {
2079
- style: "h2",
2080
- weight: "semibold",
2081
- children: isEdit ? t("neetoFilters.segments.editSegment") : t("neetoFilters.segments.addNewSegment")
2082
- })
2083
- }), /*#__PURE__*/jsx(Form, {
2084
- className: "w-full",
2085
- formProps: {
2086
- noValidate: true
2087
- },
2088
- formikProps: {
2089
- initialValues: initialValues,
2090
- validateOnChange: true,
2091
- validateOnBlur: true,
2092
- validationSchema: buildSegmentsValidationSchema(defaultSegmentName),
2093
- onSubmit: handleSubmit
2094
- },
2095
- children: function children(_ref2) {
2096
- var errors = _ref2.errors,
2097
- values = _ref2.values,
2098
- setFieldValue = _ref2.setFieldValue;
2099
- return /*#__PURE__*/jsxs(Fragment, {
2100
- children: [/*#__PURE__*/jsxs(Pane$1.Body, {
2101
- children: [/*#__PURE__*/jsx(Input$1, {
2102
- className: "w-full flex-grow-0",
2103
- error: errors.name,
2104
- label: t("neetoFilters.segments.name"),
2105
- name: "name",
2106
- placeholder: t("neetoFilters.segments.segmentName"),
2107
- ref: segmentFormInitialRef
2108
- }), /*#__PURE__*/jsx(Typography, {
2109
- className: "mb-2 mt-4",
2110
- style: "h4",
2111
- children: t("neetoFilters.common.filters")
2112
- }), /*#__PURE__*/jsxs("div", {
2113
- className: "neeto-filters-pane-filter__body flex w-full flex-col gap-5",
2114
- children: [ungroupedColumns.filter(function (_ref3) {
2115
- var key = _ref3.key;
2116
- return _existsBy({
2117
- key: key
2118
- }, values.filters[0].conditions);
2119
- }).map(function (column) {
2120
- return /*#__PURE__*/jsxs("div", {
2121
- className: "flex w-full gap-4",
2122
- children: [/*#__PURE__*/jsx(Item, {
2123
- column: column,
2124
- filters: filters,
2125
- autoFocus: column.key === isOpen,
2126
- onChange: function onChange(filters) {
2127
- setFieldValue("filters", [{
2128
- conditions: filters
2129
- }]);
2130
- handleChange(filters);
2131
- }
2132
- }), /*#__PURE__*/jsx(Button, {
2133
- className: "mt-6 self-center",
2134
- icon: Delete$1,
2135
- style: "text",
2136
- onClick: function onClick() {
2137
- return handleClearFilter(column, values, setFieldValue);
2138
- }
2139
- })]
2140
- }, column.key);
2141
- }), isPresent(groupedColumns) && /*#__PURE__*/jsx(Accordion, {
2142
- children: groupedColumns.map(function (_ref4) {
2143
- var group = _ref4.group,
2144
- columns = _ref4.columns;
2145
- return /*#__PURE__*/jsx(Accordion.Item, {
2146
- className: "accordion_item",
2147
- title: group,
2148
- children: columns.map(function (column) {
2149
- return /*#__PURE__*/createElement(Item, {
2150
- column: column,
2151
- filters: filters,
2152
- autoFocus: column.key === isOpen,
2153
- key: column.key,
2154
- onChange: handleChange
2155
- });
2156
- })
2157
- }, group);
2158
- })
2159
- }), isEmpty([].concat(_toConsumableArray(groupedColumns), _toConsumableArray(ungroupedColumns))) && /*#__PURE__*/jsx(Typography, {
2160
- style: "body2",
2161
- children: t("neetoFilters.messages.noResourcesFound", {
2162
- resources: t("neetoFilters.common.columns")
2163
- })
2164
- }), customFilters, /*#__PURE__*/jsx(AddFilter, {
2165
- filters: filters,
2166
- handleChange: handleChange,
2167
- columns: ungroupedColumns.filter(function (_ref5) {
2168
- var key = _ref5.key;
2169
- return !existsBy({
2170
- key: key
2171
- }, filters);
2172
- }),
2173
- handleClearFilter: function handleClearFilter(_ref6) {
2174
- var key = _ref6.key;
2175
- return handleChange(removeBy({
2176
- key: key
2177
- }, filters));
2178
- }
2179
- })]
2180
- })]
2181
- }), /*#__PURE__*/jsx(Pane$1.Footer, {
2182
- children: /*#__PURE__*/jsx(ActionBlock, {
2183
- isSubmitting: isSubmitting,
2184
- cancelButtonProps: {
2185
- onClick: onClose
2186
- },
2187
- submitButtonProps: {
2188
- disabled: isSubmitting || isEmpty(filters)
2189
- }
2190
- })
2191
- })]
2192
- });
2193
- }
2194
- })]
2195
- });
2196
- };
2197
-
2198
- var QUERY_KEYS = {
2199
- SEGMENTS_LIST: "segments-list"
2200
- };
2201
- var SEGMENTS_STALE_TIME = 900000; // 15 mins
2202
-
2203
- var DEFAULT_SEGMENTS_CACHE = {
2204
- segments: []
2205
- };
2206
- var SEGMENT_ACTIONS$1 = {
2207
- EDIT: "edit",
2208
- CREATE: "create"
2209
- };
2210
-
2211
- var SHORTCUTS = {
2212
- closePane: {
2213
- sequence: "escape",
2214
- description: t$1("neetoFilters.shortcuts.closePane")
2215
- },
2216
- deleteBlock: {
2217
- sequence: "backspace",
2218
- description: t$1("neetoFilters.shortcuts.deleteBlock")
2219
- },
2220
- openFilterPane: {
2221
- sequence: "enter",
2222
- description: t$1("neetoFilters.shortcuts.openFilterPane")
2223
- }
2224
- };
2225
-
2226
- var buildCustomDateValue = function buildCustomDateValue(value) {
2227
- var isBeforeOrAfter = Math.abs(dayjs(value[1]).diff(dayjs(value[0]), "year")) >= 90;
2228
- if (isBeforeOrAfter) {
2229
- var currentMoment = dayjs();
2230
- var diffWithStart = Math.abs(currentMoment.diff(dayjs(value[0]), "year"));
2231
- var diffWithEnd = Math.abs(currentMoment.diff(dayjs(value[1]), "year"));
2232
- return diffWithStart < diffWithEnd ? "after-".concat(dateFormat.date(dayjs(value[0]).subtract(1, "day"))) : "before-".concat(dateFormat.date(dayjs(value[1]).add(1, "day")));
2233
- }
2234
- return value.map(dateFormat.date).join(" - ");
2235
- };
2236
- var buildFilterValue = function buildFilterValue(filter) {
2237
- var _findBy2;
2238
- var _filter$defaultType = filter.defaultType,
2239
- defaultType = _filter$defaultType === void 0 ? filter.type : _filter$defaultType,
2240
- value = filter.value,
2241
- rule = filter.rule,
2242
- _filter$values = filter.values,
2243
- initialValues = _filter$values === void 0 ? [] : _filter$values;
2244
- var values = initialValues.map(modify("value", function (value) {
2245
- return value.toString();
2246
- }));
2247
- if (isDate(defaultType) && isCustomDateRange(value)) {
2248
- return buildCustomDateValue(value);
2249
- } else if (isTime(defaultType) && isCustomTimeRange(value)) {
2250
- return value.map(dateFormat.time).join(" - ");
2251
- } else if (isDate(defaultType) || isTime(defaultType)) {
2252
- return humanize(value);
2253
- } else if (isMulti(defaultType) || isTreeSelect(defaultType)) {
2254
- return value.map(function (value) {
2255
- var _findBy;
2256
- return ((_findBy = findBy({
2257
- value: value
2258
- }, values)) === null || _findBy === void 0 ? void 0 : _findBy.label) || value;
2259
- }).join(", ");
2260
- } else if (isSingleDate(defaultType)) {
2261
- return rule === "between" ? value.map(dateFormat.date).join(" - ") : dateFormat.date(value);
2262
- } else if (isSingleTime(defaultType)) {
2263
- return rule === "between" ? value.map(dateFormat.time).join(" - ") : dateFormat.time(value);
2264
- } else if (isBoolean(defaultType)) {
2265
- return getLabelFromBool({
2266
- value: value,
2267
- values: values
2268
- });
2269
- }
2270
- return ((_findBy2 = findBy({
2271
- value: value
2272
- }, values)) === null || _findBy2 === void 0 ? void 0 : _findBy2.label) || value;
2273
- };
2274
- var buildRuleValue = function buildRuleValue(_ref) {
2275
- var rule = _ref.rule,
2276
- defaultType = _ref.defaultType;
2277
- if (isText(defaultType)) {
2278
- return findBy({
2279
- value: rule
2280
- }, TEXT_RULES).label;
2281
- } else if (isDigit(defaultType)) {
2282
- return findBy({
2283
- value: rule
2284
- }, NUMBER_RULES).label;
2285
- } else if (isSingleDate(defaultType)) {
2286
- return findBy({
2287
- value: rule
2288
- }, SINGLE_DATE_OPTIONS).label;
2289
- } else if (isSingleTime(defaultType)) {
2290
- return findBy({
2291
- value: rule
2292
- }, SINGLE_TIME_OPTIONS).label;
2293
- } else if (isMulti(defaultType) || isSingle(defaultType) || isTreeSelect(defaultType)) {
2294
- return isRuleEmpty(rule) ? t$1("neetoFilters.rules.isEmpty") : "";
2295
- }
2296
- return "";
2297
- };
2298
- var hasOnlyKeywordFilter = function hasOnlyKeywordFilter(filters) {
2299
- return filters.length === 1 && filters[0].key === SEARCH_TERM_KEY;
2300
- };
2301
- var deepCompare = function deepCompare(segments, filters) {
2302
- var comparisonHelper = function comparisonHelper(filters) {
2303
- return sortBy(prop("key"), removeBy({
2304
- key: SEARCH_TERM_KEY
2305
- }, project(["key", "rule", "value", "label"], filters)));
2306
- };
2307
- return reject(function (filters) {
2308
- var segment = findBy({
2309
- key: filters.key
2310
- }, segments);
2311
- return segment && segment.value === filters.value;
2312
- }, comparisonHelper(filters));
2313
- };
2314
-
2315
- var Block = function Block(_ref) {
2316
- var filter = _ref.filter,
2317
- handleDelete = _ref.handleDelete,
2318
- setIsPaneOpen = _ref.setIsPaneOpen;
2319
- var key = filter.key,
2320
- _filter$defaultType = filter.defaultType,
2321
- defaultType = _filter$defaultType === void 0 ? filter.type : _filter$defaultType,
2322
- label = filter.label,
2323
- rule = filter.rule,
2324
- defaultValue = filter.defaultValue;
2325
- var filterValue = buildFilterValue(filter);
2326
- var ruleContent = buildRuleValue({
2327
- rule: rule,
2328
- defaultType: defaultType
2329
- });
2330
- var blockLength = label.length + ruleContent.length + filterValue.length;
2331
- var toolTipDisabled = blockLength <= 50;
2332
- var blockContent = !toolTipDisabled ? "".concat(filterValue.slice(0, 50 - blockLength), "...") : filterValue;
2333
- var deleteBlockHotKeyRef = useHotkeys(SHORTCUTS.deleteBlock.sequence, function () {
2334
- return handleDelete(key);
2335
- }, {
2336
- mode: "scoped"
2337
- });
2338
- var openFilterPaneHotKeyRef = useHotkeys(SHORTCUTS.openFilterPane.sequence, function () {
2339
- return setIsPaneOpen(key);
2340
- }, {
2341
- mode: "scoped"
2342
- });
2343
- return /*#__PURE__*/jsx(Tooltip, {
2344
- content: filterValue,
2345
- disabled: toolTipDisabled,
2346
- position: "bottom",
2347
- theme: "light",
2348
- children: /*#__PURE__*/jsxs("div", {
2349
- className: "neeto-filters-bar__block",
2350
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-block"),
2351
- tabIndex: 0,
2352
- ref: function ref(node) {
2353
- deleteBlockHotKeyRef.current = node;
2354
- openFilterPaneHotKeyRef.current = node;
2355
- },
2356
- onClick: function onClick() {
2357
- return setIsPaneOpen(key);
2358
- },
2359
- children: [/*#__PURE__*/jsxs(Typography, {
2360
- style: "body2",
2361
- children: [label, ":"]
2362
- }), /*#__PURE__*/jsx(Typography, {
2363
- className: "neeto-ui-text-gray-600",
2364
- style: "body2",
2365
- children: ruleContent
2366
- }), !isRuleEmpty(rule) && /*#__PURE__*/jsx(Typography, {
2367
- style: "body2",
2368
- children: blockContent
2369
- }), !defaultValue && /*#__PURE__*/jsx("div", {
2370
- className: "neeto-filters-bar__block-close",
2371
- children: /*#__PURE__*/jsx(Close, {
2372
- "data-cy": "neeto-filters-".concat(hyphenate(key), "-block-close-btn"),
2373
- size: 16,
2374
- strokeWidth: 2,
2375
- onClick: function onClick(event) {
2376
- event.stopPropagation();
2377
- handleDelete(key);
2378
- }
2379
- })
2380
- })]
2381
- })
2382
- });
2383
- };
2384
-
2385
- var ChildBlock = function ChildBlock(_ref) {
2386
- var childKey = _ref.childKey,
2387
- setIsPaneOpen = _ref.setIsPaneOpen,
2388
- handleDelete = _ref.handleDelete;
2389
- var deleteBlockHotKeyRef = useHotkeys(SHORTCUTS.deleteBlock.sequence, function () {
2390
- return handleDelete(childKey);
2391
- }, {
2392
- mode: "scoped"
2393
- });
2394
- var openFilterPaneHotKeyRef = useHotkeys(SHORTCUTS.openFilterPane.sequence, function () {
2395
- return setIsPaneOpen(childKey);
2396
- }, {
2397
- mode: "scoped"
2398
- });
2399
- return /*#__PURE__*/jsxs("div", {
2400
- className: "neeto-filters-bar__block",
2401
- "data-cy": "neeto-filters-".concat(hyphenate(childKey), "-block"),
2402
- tabIndex: 0,
2403
- ref: function ref(node) {
2404
- deleteBlockHotKeyRef.current = node;
2405
- openFilterPaneHotKeyRef.current = node;
2406
- },
2407
- onClick: function onClick() {
2408
- return setIsPaneOpen(childKey);
2409
- },
2410
- children: [/*#__PURE__*/jsx(Typography, {
2411
- style: "body2",
2412
- weight: "medium",
2413
- children: childKey
2414
- }), /*#__PURE__*/jsx("div", {
2415
- className: "neeto-filters-bar__block-close",
2416
- children: /*#__PURE__*/jsx(Close, {
2417
- "data-cy": "neeto-filters-".concat(hyphenate(childKey), "-block-close-btn"),
2418
- size: 16,
2419
- strokeWidth: 2,
2420
- onClick: function onClick(event) {
2421
- event.stopPropagation();
2422
- handleDelete(childKey);
2423
- }
2424
- })
2425
- })]
2426
- });
2427
- };
2428
-
2429
- var FilterBar = function FilterBar(_ref) {
2430
- var entity = _ref.entity,
2431
- filters = _ref.filters,
2432
- setIsSavePaneOpen = _ref.setIsSavePaneOpen,
2433
- setIsPaneOpen = _ref.setIsPaneOpen,
2434
- childrenKeys = _ref.childrenKeys,
2435
- nonHiddenFilters = _ref.nonHiddenFilters,
2436
- childrenFiltersApplied = _ref.childrenFiltersApplied,
2437
- keywordFilter = _ref.keywordFilter,
2438
- handleApplyFilters = _ref.handleApplyFilters;
2439
- var _useTranslation = useTranslation(),
2440
- t = _useTranslation.t;
2441
- var history = useHistory$1();
2442
- var searchParams = useQueryParams({
2443
- toCamelCase: false
2444
- });
2445
- var handleDelete = function handleDelete(key) {
2446
- if (key === SEARCH_TERM_KEY) {
2447
- var params = omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());
2448
- var pathname = window.location.pathname;
2449
- history.push(buildUrl(pathname, params));
2450
- return;
2451
- }
2452
- if (childrenKeys.includes(key)) {
2453
- var _params = omit([key], getSnakeCasedQueryParams());
2454
- var _pathname = window.location.pathname;
2455
- history.push(buildUrl(_pathname, _params));
2456
- }
2457
- var newFilters = removeBy({
2458
- key: key
2459
- }, filters);
2460
- handleApplyFilters(newFilters);
2461
- };
2462
- var handleClearAll = function handleClearAll() {
2463
- var params = isKeywordFilterPresent(keywordFilter) ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams()) : getSnakeCasedQueryParams();
2464
- var pathname = window.location.pathname;
2465
- history.push(buildUrl(pathname, params));
2466
- handleApplyFilters([], true);
2467
- };
2468
- var hideClearButton = nonHiddenFilters.every(function (_ref2) {
2469
- var defaultValue = _ref2.defaultValue,
2470
- isClearable = _ref2.isClearable;
2471
- return defaultValue && !isClearable;
2472
- }) && !childrenFiltersApplied;
2473
- return /*#__PURE__*/jsxs(Fragment, {
2474
- children: [nonHiddenFilters.map(function (filter) {
2475
- var _filter$suffixCompone;
2476
- return /*#__PURE__*/jsxs(React.Fragment, {
2477
- children: [/*#__PURE__*/jsx(Block, {
2478
- filter: filter,
2479
- handleDelete: handleDelete,
2480
- setIsPaneOpen: setIsPaneOpen
2481
- }), (_filter$suffixCompone = filter.suffixComponent) === null || _filter$suffixCompone === void 0 ? void 0 : _filter$suffixCompone.call(filter), /*#__PURE__*/jsx("div", {
2482
- className: "neeto-filters-bar--separator"
2483
- })]
2484
- }, filter.key);
2485
- }), childrenKeys.filter(function (childKey) {
2486
- return has(childKey, searchParams);
2487
- }).map(function (childKey) {
2488
- return /*#__PURE__*/jsxs(React.Fragment, {
2489
- children: [/*#__PURE__*/jsx(ChildBlock, {
2490
- childKey: childKey,
2491
- handleDelete: handleDelete,
2492
- setIsPaneOpen: setIsPaneOpen
2493
- }), /*#__PURE__*/jsx("div", {
2494
- className: "neeto-filters-bar--separator"
2495
- })]
2496
- }, childKey);
2497
- }), /*#__PURE__*/jsxs("div", {
2498
- className: "flex items-center gap-x-2",
2499
- children: [isPresent(entity) && !hasOnlyKeywordFilter(filters) && /*#__PURE__*/jsx(Button, {
2500
- "data-cy": "save-segment-button",
2501
- label: t("neetoFilters.segments.saveAsNewSegment"),
2502
- style: "secondary",
2503
- onClick: function onClick() {
2504
- setIsPaneOpen(false);
2505
- setIsSavePaneOpen({
2506
- action: SEGMENT_ACTIONS$1.CREATE
2507
- });
2508
- }
2509
- }), !hideClearButton && /*#__PURE__*/jsx(Button, {
2510
- "data-cy": "neeto-filters-bar-clear-btn",
2511
- label: t("neetoFilters.common.clearFilters"),
2512
- style: "text",
2513
- onClick: handleClearAll
2514
- })]
2515
- })]
2516
- });
2517
- };
2518
-
2519
- var fetch = function fetch(params) {
2520
- return axios.get(SEGMENTS_BASE_URL, {
2521
- params: params
2522
- });
2523
- };
2524
- var show = function show(id) {
2525
- return axios.get("".concat(SEGMENTS_BASE_URL, "/").concat(id), {
2526
- transformResponseCase: false
2527
- });
2528
- };
2529
- var create = function create(payload) {
2530
- return axios.post(SEGMENTS_BASE_URL, {
2531
- segment: payload
2532
- }, {
2533
- showToastr: false
2534
- });
2535
- };
2536
- var update = function update(_ref) {
2537
- var id = _ref.id,
2538
- payload = _ref.payload,
2539
- _ref$showToastr = _ref.showToastr,
2540
- showToastr = _ref$showToastr === void 0 ? true : _ref$showToastr;
2541
- return axios.put("".concat(SEGMENTS_BASE_URL, "/").concat(id), payload, {
2542
- showToastr: showToastr
2543
- });
2544
- };
2545
- var destroy = function destroy(id) {
2546
- return axios["delete"]("".concat(SEGMENTS_BASE_URL, "/").concat(id));
2547
- };
2548
- var segmentsApi = {
2549
- fetch: fetch,
2550
- show: show,
2551
- create: create,
2552
- update: update,
2553
- destroy: destroy
2554
- };
2555
-
2556
- 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; }
2557
- 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) { _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; }
2558
- var SEGMENTS_LIST = QUERY_KEYS.SEGMENTS_LIST;
2559
- var useFetchSegments = function useFetchSegments(_ref) {
2560
- var entity = _ref.entity,
2561
- _ref$searchTerm = _ref.searchTerm,
2562
- searchTerm = _ref$searchTerm === void 0 ? "" : _ref$searchTerm;
2563
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2564
- return useQuery(_objectSpread$4({
2565
- queryKey: [SEGMENTS_LIST, entity, searchTerm],
2566
- queryFn: function queryFn() {
2567
- return segmentsApi.fetch({
2568
- entity: entity,
2569
- searchTerm: searchTerm
2570
- });
2571
- },
2572
- select: prop("segments"),
2573
- staleTime: SEGMENTS_STALE_TIME
2574
- }, options));
2575
- };
2576
- var useCreateSegment = function useCreateSegment(options) {
2577
- return useMutationWithInvalidation(segmentsApi.create, _objectSpread$4({
2578
- keysToInvalidate: [[SEGMENTS_LIST]]
2579
- }, options));
2580
- };
2581
- var useUpdateSegment = function useUpdateSegment(options) {
2582
- return useMutationWithInvalidation(segmentsApi.update, _objectSpread$4({
2583
- keysToInvalidate: [[SEGMENTS_LIST]]
2584
- }, options));
2585
- };
2586
- var useDestroySegment = function useDestroySegment(options) {
2587
- return useMutationWithInvalidation(segmentsApi.destroy, _objectSpread$4({
2588
- keysToInvalidate: [[SEGMENTS_LIST]]
2589
- }, options));
2590
- };
2591
-
2592
- 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; }
2593
- 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) { _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; }
2594
- var useSegment = function useSegment(_ref) {
2595
- var entity = _ref.entity,
2596
- keyword = _ref.keyword,
2597
- columns = _ref.columns,
2598
- childrenKeys = _ref.childrenKeys;
2599
- var history = useHistory$1();
2600
- var _useTranslation = useTranslation(),
2601
- t = _useTranslation.t;
2602
- var initialRenderRef = useRef(true);
2603
- var _useQueryParams = useQueryParams(),
2604
- segmentId = _useQueryParams.segmentId;
2605
- var _useState = useState({
2606
- action: undefined
2607
- }),
2608
- _useState2 = _slicedToArray(_useState, 2),
2609
- isSavePaneOpen = _useState2[0],
2610
- setIsSavePaneOpen = _useState2[1];
2611
- var _useCreateSegment = useCreateSegment(),
2612
- createSegment = _useCreateSegment.mutate,
2613
- isCreating = _useCreateSegment.isPending;
2614
- var _useUpdateSegment = useUpdateSegment(),
2615
- updateSegment = _useUpdateSegment.mutate,
2616
- isUpdating = _useUpdateSegment.isPending;
2617
- var isSubmitting = isCreating || isUpdating;
2618
- var searchParams = useQueryParams({
2619
- toCamelCase: false
2620
- });
2621
- var keywordValue = searchParams[SEARCH_TERM_KEY] || "";
2622
- var isEdit = isSavePaneOpen.action === SEGMENT_ACTIONS$1.EDIT;
2623
- var keywordFilter = _objectSpread$3(_objectSpread$3({
2624
- type: "text",
2625
- rule: "contains",
2626
- label: t("neetoFilters.common.searchTerm")
2627
- }, keyword), {}, {
2628
- key: SEARCH_TERM_KEY,
2629
- value: keywordValue
2630
- });
2631
- var filters = buildFiltersFromSearchParams(isKeywordFilterPresent(keywordFilter) && isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
2632
- var nonHiddenFilters = removeBy({
2633
- hidden: true
2634
- }, filters);
2635
- var handleApplyFilters = function handleApplyFilters(newFilters, isClearAll) {
2636
- var params = buildUrlFromFilters(_objectSpread$3({
2637
- columns: columns,
2638
- filters: isKeywordFilterPresent(keywordFilter) && isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
2639
- }, isClearAll && {
2640
- isClearAll: true,
2641
- childrenKeys: childrenKeys
2642
- }));
2643
- history.push({
2644
- search: params
2645
- });
2646
- };
2647
- var childrenFiltersApplied = childrenKeys.some(function (key) {
2648
- return has(key, searchParams);
2649
- });
2650
- useEffect(function () {
2651
- if (initialRenderRef.current) {
2652
- initialRenderRef.current = false;
2653
- return noop;
2654
- }
2655
- var handler = setTimeout(function () {
2656
- handleApplyFilters(filters);
2657
- }, 500);
2658
- return function () {
2659
- return clearTimeout(handler);
2660
- };
2661
- }, [keywordValue]);
2662
- var handleCreateSuccess = function handleCreateSuccess(_ref2) {
2663
- var _filters$;
2664
- var _ref2$segment = _ref2.segment,
2665
- id = _ref2$segment.id,
2666
- filters = _ref2$segment.filters;
2667
- history.push({
2668
- search: buildUrlFromSegment({
2669
- columns: columns,
2670
- filters: (_filters$ = filters[0]) === null || _filters$ === void 0 ? void 0 : _filters$.conditions,
2671
- id: id
2672
- })
2673
- });
2674
- setIsSavePaneOpen({
2675
- action: undefined
2676
- });
2677
- showThumbsUpToastr();
2678
- };
2679
- var handleCreate = function handleCreate(_ref3, _ref4) {
2680
- var name = _ref3.name;
2681
- var setFieldError = _ref4.setFieldError;
2682
- var filtersPayload = buildSegmentsPayload(filters, childrenKeys);
2683
- createSegment({
2684
- name: name,
2685
- entity: entity,
2686
- filters: filtersPayload
2687
- }, {
2688
- onSuccess: handleCreateSuccess,
2689
- onError: function onError(error) {
2690
- return setFieldError("name", error.response.data.error);
2691
- }
2692
- });
2693
- };
2694
- var handleUpdate = function handleUpdate(_ref5, _ref6) {
2695
- var name = _ref5.name;
2696
- var setFieldError = _ref6.setFieldError;
2697
- var filtersPayload = buildSegmentsPayload(filters, childrenKeys);
2698
- updateSegment({
2699
- id: segmentId,
2700
- payload: {
2701
- name: name,
2702
- filters: filtersPayload
2703
- }
2704
- }, {
2705
- onSuccess: function onSuccess() {
2706
- setIsSavePaneOpen({
2707
- action: undefined
2708
- });
2709
- showThumbsUpToastr();
2710
- },
2711
- onError: function onError(error) {
2712
- return setFieldError("name", error.response.data.error);
2713
- }
2714
- });
2715
- };
2716
- return {
2717
- isEdit: isEdit,
2718
- filters: filters,
2719
- keywordFilter: keywordFilter,
2720
- isSubmitting: isSubmitting,
2721
- nonHiddenFilters: nonHiddenFilters,
2722
- isSavePaneOpen: isSavePaneOpen,
2723
- setIsSavePaneOpen: setIsSavePaneOpen,
2724
- handleApplyFilters: handleApplyFilters,
2725
- childrenFiltersApplied: childrenFiltersApplied,
2726
- handleSubmit: isEdit ? handleUpdate : handleCreate
2727
- };
2728
- };
2729
-
2730
- var Menu = Dropdown$2.Menu,
2731
- MenuItem = Dropdown$2.MenuItem;
2732
- var SegmentBar = function SegmentBar(_ref) {
2733
- var entity = _ref.entity,
2734
- filters = _ref.filters,
2735
- setIsSavePaneOpen = _ref.setIsSavePaneOpen,
2736
- setIsPaneOpen = _ref.setIsPaneOpen,
2737
- handleApplyFilters = _ref.handleApplyFilters,
2738
- childrenKeys = _ref.childrenKeys;
2739
- var _useTranslation = useTranslation(),
2740
- t = _useTranslation.t;
2741
- var history = useHistory$1();
2742
- var _useQueryParams = useQueryParams(),
2743
- segmentId = _useQueryParams.segmentId;
2744
- var queryClient = useQueryClient();
2745
- var cachedSegments = queryClient.getQueryData([QUERY_KEYS.SEGMENTS_LIST, entity, ""]) || DEFAULT_SEGMENTS_CACHE;
2746
- var segment = findById(segmentId, cachedSegments.segments);
2747
- if (isNotPresent(segment)) return null;
2748
- var handleDelete = function handleDelete(key) {
2749
- if (key === SEARCH_TERM_KEY) {
2750
- var params = omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());
2751
- var pathname = window.location.pathname;
2752
- history.push(buildUrl(pathname, params));
2753
- return;
2754
- }
2755
- if (childrenKeys.includes(key)) {
2756
- var _params = omit([key], getSnakeCasedQueryParams());
2757
- var _pathname = window.location.pathname;
2758
- history.push(buildUrl(_pathname, _params));
2759
- }
2760
- var newFilters = removeBy({
2761
- key: key
2762
- }, filters);
2763
- handleApplyFilters(newFilters);
2764
- };
2765
- var changedFilters = deepCompare(segment.filters[0].conditions, filters);
2766
- return /*#__PURE__*/jsxs(Fragment, {
2767
- children: [/*#__PURE__*/jsx(Typography, {
2768
- className: "neeto-ui-text-gray-600 mr-4 px-2",
2769
- "data-cy": "neeto-filters-segment-name",
2770
- style: "h4",
2771
- children: segment.name
2772
- }), isNotEmpty(changedFilters) && /*#__PURE__*/jsxs(Fragment, {
2773
- children: [/*#__PURE__*/jsx(Dropdown$2, {
2774
- buttonProps: {
2775
- className: "mr-2"
2776
- },
2777
- buttonStyle: "secondary",
2778
- label: t("neetoFilters.segments.updateSegment"),
2779
- children: /*#__PURE__*/jsxs(Menu, {
2780
- children: [/*#__PURE__*/jsx(MenuItem.Button, {
2781
- onClick: function onClick() {
2782
- return setIsSavePaneOpen({
2783
- action: SEGMENT_ACTIONS$1.EDIT
2784
- });
2785
- },
2786
- children: t("neetoFilters.segments.updateSegment")
2787
- }), /*#__PURE__*/jsx(MenuItem.Button, {
2788
- onClick: function onClick() {
2789
- setIsPaneOpen(false);
2790
- setIsSavePaneOpen({
2791
- action: SEGMENT_ACTIONS$1.CREATE
2792
- });
2793
- },
2794
- children: t("neetoFilters.segments.saveAsNewSegment")
2795
- })]
2796
- })
2797
- }), changedFilters.map(function (filter) {
2798
- var _filter$suffixCompone;
2799
- return /*#__PURE__*/jsxs(React.Fragment, {
2800
- children: [/*#__PURE__*/jsx(Block, {
2801
- filter: filter,
2802
- handleDelete: handleDelete,
2803
- setIsPaneOpen: setIsPaneOpen
2804
- }), (_filter$suffixCompone = filter.suffixComponent) === null || _filter$suffixCompone === void 0 ? void 0 : _filter$suffixCompone.call(filter), /*#__PURE__*/jsx("div", {
2805
- className: "neeto-filters-bar--separator"
2806
- })]
2807
- }, filter.key);
2808
- })]
2809
- })]
2810
- });
2811
- };
2812
-
2813
- var Bar = function Bar(_ref) {
2814
- var entity = _ref.entity,
2815
- className = _ref.className,
2816
- _ref$columns = _ref.columns,
2817
- columns = _ref$columns === void 0 ? [] : _ref$columns,
2818
- _ref$keyword = _ref.keyword,
2819
- keyword = _ref$keyword === void 0 ? {
2820
- node: "",
2821
- value: "",
2822
- setValue: noop
2823
- } : _ref$keyword,
2824
- _ref$setIsPaneOpen = _ref.setIsPaneOpen,
2825
- setIsPaneOpen = _ref$setIsPaneOpen === void 0 ? identity : _ref$setIsPaneOpen,
2826
- _ref$childrenKeys = _ref.childrenKeys,
2827
- childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
2828
- _ref$defaultSegmentNa = _ref.defaultSegmentName,
2829
- defaultSegmentName = _ref$defaultSegmentNa === void 0 ? t$1("neetoFilters.common.allResults") : _ref$defaultSegmentNa,
2830
- customFilters = _ref.customFilters;
2831
- var queryClient = useQueryClient();
2832
- var _useQueryParams = useQueryParams(),
2833
- segmentId = _useQueryParams.segmentId;
2834
- var segmentFormInitialRef = useRef(null);
2835
- var _useSegment = useSegment({
2836
- entity: entity,
2837
- keyword: keyword,
2838
- columns: columns,
2839
- childrenKeys: childrenKeys
2840
- }),
2841
- isEdit = _useSegment.isEdit,
2842
- filters = _useSegment.filters,
2843
- handleSubmit = _useSegment.handleSubmit,
2844
- isSubmitting = _useSegment.isSubmitting,
2845
- keywordFilter = _useSegment.keywordFilter,
2846
- isSavePaneOpen = _useSegment.isSavePaneOpen,
2847
- nonHiddenFilters = _useSegment.nonHiddenFilters,
2848
- setIsSavePaneOpen = _useSegment.setIsSavePaneOpen,
2849
- handleApplyFilters = _useSegment.handleApplyFilters,
2850
- childrenFiltersApplied = _useSegment.childrenFiltersApplied;
2851
- var BarComponent = segmentId ? SegmentBar : FilterBar;
2852
- var cachedSegments = queryClient.getQueryData([QUERY_KEYS.SEGMENTS_LIST, entity, ""]) || DEFAULT_SEGMENTS_CACHE;
2853
- var segment = findById(segmentId, cachedSegments.segments);
2854
- if (isEmpty(nonHiddenFilters) && !childrenFiltersApplied) return null;
2855
- return /*#__PURE__*/jsxs(Fragment, {
2856
- children: [/*#__PURE__*/jsx("div", {
2857
- className: classnames("neeto-filters-bar", _defineProperty({}, className, className)),
2858
- children: /*#__PURE__*/jsx(BarComponent, {
2859
- childrenFiltersApplied: childrenFiltersApplied,
2860
- childrenKeys: childrenKeys,
2861
- entity: entity,
2862
- filters: filters,
2863
- handleApplyFilters: handleApplyFilters,
2864
- keywordFilter: keywordFilter,
2865
- nonHiddenFilters: nonHiddenFilters,
2866
- setIsPaneOpen: setIsPaneOpen,
2867
- setIsSavePaneOpen: setIsSavePaneOpen
2868
- })
2869
- }), /*#__PURE__*/jsx(SegmentForm, {
2870
- childrenKeys: childrenKeys,
2871
- columns: columns,
2872
- customFilters: customFilters,
2873
- defaultSegmentName: defaultSegmentName,
2874
- filters: filters,
2875
- handleSubmit: handleSubmit,
2876
- isEdit: isEdit,
2877
- isSubmitting: isSubmitting,
2878
- keywordFilter: keywordFilter,
2879
- segmentFormInitialRef: segmentFormInitialRef,
2880
- isOpen: isPresent(isSavePaneOpen.action),
2881
- initialValues: isEdit ? assoc("filters", [{
2882
- conditions: filters
2883
- }], segment) : {
2884
- name: "",
2885
- filters: [{
2886
- conditions: filters
2887
- }]
2888
- },
2889
- onClose: function onClose() {
2890
- return setIsSavePaneOpen({
2891
- action: undefined
2892
- });
2893
- }
2894
- })]
2895
- });
2896
- };
2897
-
2898
- function _objectWithoutPropertiesLoose(source, excluded) {
2899
- if (source == null) return {};
2900
- var target = {};
2901
- var sourceKeys = Object.keys(source);
2902
- var key, i;
2903
- for (i = 0; i < sourceKeys.length; i++) {
2904
- key = sourceKeys[i];
2905
- if (excluded.indexOf(key) >= 0) continue;
2906
- target[key] = source[key];
2907
- }
2908
- return target;
2909
- }
2910
-
2911
- function _objectWithoutProperties(source, excluded) {
2912
- if (source == null) return {};
2913
- var target = _objectWithoutPropertiesLoose(source, excluded);
2914
- var key, i;
2915
- if (Object.getOwnPropertySymbols) {
2916
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
2917
- for (i = 0; i < sourceSymbolKeys.length; i++) {
2918
- key = sourceSymbolKeys[i];
2919
- if (excluded.indexOf(key) >= 0) continue;
2920
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
2921
- target[key] = source[key];
2922
- }
2923
- }
2924
- return target;
2925
- }
2926
-
2927
- var useFilters = function useFilters(_ref) {
2928
- var onFiltersChange = _ref.onFiltersChange,
2929
- columns = _ref.columns,
2930
- keywordFilter = _ref.keywordFilter,
2931
- onSelectorsChange = _ref.onSelectorsChange;
2932
- var _useTransition = useTransition(),
2933
- _useTransition2 = _slicedToArray(_useTransition, 2);
2934
- _useTransition2[0];
2935
- var startTransition = _useTransition2[1];
2936
- var initialRender = useRef(true);
2937
- var prevFilters = useRef([]);
2938
- var location = useLocation();
2939
- var filters = buildFiltersFromSearchParams(columns, false);
2940
- var history = useHistory$1();
2941
- var defaultValuesOfColumns = JSON.stringify(pluck("defaultValue", columns));
2942
- var handlePrecenseOfDefaultFilters = function handlePrecenseOfDefaultFilters(defaultFilters) {
2943
- var params = buildUrlFromFilters({
2944
- columns: columns,
2945
- filters: isKeywordFilterPresent(keywordFilter) && isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(defaultFilters), [keywordFilter]) : defaultFilters
2946
- });
2947
- history.replace({
2948
- search: params
2949
- });
2950
- };
2951
- var handleFiltersChange = function handleFiltersChange(filtersPayload) {
2952
- startTransition(function () {
2953
- onFiltersChange(buildFiltersPayload(filtersPayload.filter(function (filter) {
2954
- return !isNil(filter.node);
2955
- })));
2956
- });
2957
- };
2958
-
2959
- //This function sends the updated filters to host via callbacks.
2960
- var sendUpdatedFilters = function sendUpdatedFilters() {
2961
- if (compareFilters(append(keywordFilter, filters), prevFilters.current)) {
2962
- return;
2963
- }
2964
- var newFilters = buildFiltersFromSearchParams(columns);
2965
- var filtersPayload = isKeywordFilterPresent(keywordFilter) && isNotEmpty(getSearchTermFromUrl()) ? append(keywordFilter, newFilters) : newFilters;
2966
- handleFiltersChange(filtersPayload);
2967
- onSelectorsChange(buildSelectorsFromURL(columns));
2968
- };
2969
- var handleChangesInURL = function handleChangesInURL() {
2970
- var defaultFilters = buildDefaultFilters(columns, filters);
2971
- var searchParams = getSnakeCasedQueryParams();
2972
- var keys = pluck("key", append(keywordFilter, columns));
2973
- if (keys.every(function (key) {
2974
- return isNil(searchParams[key]);
2975
- }) && !isEmpty(defaultFilters)) {
2976
- history.replace({
2977
- search: buildUrlFromFilters({
2978
- columns: columns,
2979
- filters: concat(defaultFilters, filters)
2980
- })
2981
- });
2982
- filters = buildFiltersFromSearchParams(columns, false);
2983
- }
2984
- };
2985
- useEffect(function () {
2986
- if (initialRender.current) {
2987
- initialRender.current = false;
2988
- var keywordValue = getSearchTermFromUrl();
2989
- var defaultFilters = buildDefaultFilters(columns, filters);
2990
- isNotEmpty(defaultFilters) && handlePrecenseOfDefaultFilters(defaultFilters);
2991
- prevFilters.current = append(mergeRight(keywordFilter, {
2992
- value: keywordValue
2993
- }), filters);
2994
- } else {
2995
- handleChangesInURL();
2996
- sendUpdatedFilters();
2997
- prevFilters.current = append(keywordFilter, filters);
2998
- }
2999
- }, [location.search, defaultValuesOfColumns]);
3000
- return filters;
3001
- };
3002
-
3003
- var _excluded = ["isOpen", "onClose", "columns", "onChange", "isSearchable", "keyword", "onSelectorsChange", "childrenKeys", "children", "className"];
3004
- 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; }
3005
- 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) { _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; }
3006
- var Pane = function Pane(_ref) {
3007
- var isOpen = _ref.isOpen,
3008
- onClose = _ref.onClose,
3009
- columns = _ref.columns,
3010
- onChange = _ref.onChange,
3011
- isSearchable = _ref.isSearchable,
3012
- keyword = _ref.keyword,
3013
- onSelectorsChange = _ref.onSelectorsChange,
3014
- _ref$childrenKeys = _ref.childrenKeys,
3015
- childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
3016
- children = _ref.children,
3017
- className = _ref.className,
3018
- otherProps = _objectWithoutProperties(_ref, _excluded);
3019
- var searchParams = useQueryParams({
3020
- toCamelCase: false
3021
- });
3022
- var _useState = useState(""),
3023
- _useState2 = _slicedToArray(_useState, 2),
3024
- searchTerm = _useState2[0],
3025
- setSearchTerm = _useState2[1];
3026
- var history = useHistory$1();
3027
- var _useTranslation = useTranslation(),
3028
- t = _useTranslation.t;
3029
- columns = useMemo(function () {
3030
- return getColumnsWithStandardizedType(columns);
3031
- }, [columns]);
3032
- var _buildFilteredColumns = buildFilteredColumns({
3033
- searchTerm: searchTerm,
3034
- columns: columns
3035
- }),
3036
- _buildFilteredColumns2 = _buildFilteredColumns.groupedColumns,
3037
- groupedColumns = _buildFilteredColumns2 === void 0 ? [] : _buildFilteredColumns2,
3038
- _buildFilteredColumns3 = _buildFilteredColumns.ungroupedColumns,
3039
- ungroupedColumns = _buildFilteredColumns3 === void 0 ? [] : _buildFilteredColumns3;
3040
- var keywordFilter = _objectSpread$2(_objectSpread$2({
3041
- type: "text",
3042
- rule: "contains",
3043
- label: t("neetoFilters.common.searchTerm")
3044
- }, keyword), {}, {
3045
- key: SEARCH_TERM_KEY,
3046
- value: searchParams[SEARCH_TERM_KEY] || ""
3047
- });
3048
- var filters = useFilters({
3049
- onFiltersChange: onChange,
3050
- columns: columns,
3051
- keywordFilter: keywordFilter,
3052
- onSelectorsChange: onSelectorsChange
3053
- });
3054
- var handleChange = function handleChange(newFilters) {
3055
- var isClearAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
3056
- var params = buildUrlFromFilters(_objectSpread$2({
3057
- columns: columns,
3058
- filters: isKeywordFilterPresent(keywordFilter) && isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
3059
- }, isClearAll && {
3060
- isClearAll: true,
3061
- childrenKeys: childrenKeys
3062
- }));
3063
- history.push({
3064
- search: params
3065
- });
3066
- };
3067
- var handleClearAll = function handleClearAll() {
3068
- var params = isKeywordFilterPresent(keywordFilter) ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams()) : getSnakeCasedQueryParams();
3069
- var pathname = window.location.pathname;
3070
- history.push(buildUrl(pathname, params));
3071
- handleChange([], true);
3072
- };
3073
- var handleClearTermAndClose = function handleClearTermAndClose() {
3074
- setSearchTerm("");
3075
- onClose();
3076
- };
3077
- var handleClose = function handleClose() {
3078
- columns.forEach(function (_ref2) {
3079
- var key = _ref2.key;
3080
- var filter = findBy({
3081
- key: key
3082
- }, filters);
3083
- if ((filter === null || filter === void 0 ? void 0 : filter.value) === "") delete searchParams[key];
3084
- });
3085
- handleClearTermAndClose();
3086
- };
3087
- var isClearFiltersDisabled = !filters.some(function (_ref3) {
3088
- var value = _ref3.value,
3089
- defaultValue = _ref3.defaultValue;
3090
- return isPresent(value) && value !== defaultValue;
3091
- }) && !childrenKeys.some(function (key) {
3092
- return searchParams[key];
3093
- });
3094
- return /*#__PURE__*/jsxs(Pane$1, _objectSpread$2(_objectSpread$2({
3095
- isOpen: isOpen,
3096
- backdropClassName: "neeto-filters-pane-backdrop",
3097
- className: classnames("neeto-filters-pane-filter", _defineProperty({}, className, className)),
3098
- onClose: handleClose
3099
- }, otherProps), {}, {
3100
- children: [/*#__PURE__*/jsx(Pane$1.Header, {
3101
- "data-cy": "neeto-filters-pane-header",
3102
- children: /*#__PURE__*/jsx(Typography, {
3103
- style: "h2",
3104
- weight: "semibold",
3105
- children: t("neetoFilters.common.filters")
3106
- })
3107
- }), /*#__PURE__*/jsxs(Pane$1.Body, {
3108
- className: "neeto-filters-pane-filter__body neeto-ui-pt-2",
3109
- children: [isSearchable && /*#__PURE__*/jsx(Search, {
3110
- "data-cy": "neeto-filters-column-search",
3111
- placeholder: t("neetoFilters.messages.searchResources", {
3112
- resources: t("neetoFilters.common.filters")
3113
- }),
3114
- onSearch: function onSearch(value) {
3115
- return setSearchTerm(value);
3116
- }
3117
- }), ungroupedColumns.map(function (column) {
3118
- return /*#__PURE__*/createElement(Item, {
3119
- column: column,
3120
- filters: filters,
3121
- autoFocus: column.key === isOpen,
3122
- key: column.key,
3123
- onChange: handleChange,
3124
- onClose: handleClearTermAndClose
3125
- });
3126
- }), isPresent(groupedColumns) && /*#__PURE__*/jsx(Accordion, {
3127
- defaultActiveKey: groupedColumns.findIndex(function (_ref4) {
3128
- var columns = _ref4.columns;
3129
- return existsBy({
3130
- key: isOpen
3131
- }, columns);
3132
- }),
3133
- children: groupedColumns.map(function (_ref5) {
3134
- var group = _ref5.group,
3135
- columns = _ref5.columns;
3136
- return /*#__PURE__*/jsx(Accordion.Item, {
3137
- className: "accordion_item",
3138
- title: group,
3139
- children: columns.map(function (column) {
3140
- return /*#__PURE__*/createElement(Item, {
3141
- column: column,
3142
- filters: filters,
3143
- autoFocus: column.key === isOpen,
3144
- key: column.key,
3145
- onChange: handleChange,
3146
- onClose: handleClearTermAndClose
3147
- });
3148
- })
3149
- }, group);
3150
- })
3151
- }), isEmpty(ungroupedColumns) && isEmpty(groupedColumns) && /*#__PURE__*/jsx(Typography, {
3152
- style: "body2",
3153
- children: t("neetoFilters.messages.noResourcesFound", {
3154
- resources: t("neetoFilters.common.columns")
3155
- })
3156
- }), children]
3157
- }), /*#__PURE__*/jsxs(Pane$1.Footer, {
3158
- className: "gap-x-2",
3159
- children: [/*#__PURE__*/jsx(Button, {
3160
- "data-cy": "neeto-filters-done-btn",
3161
- label: t("neetoFilters.common.done"),
3162
- onClick: handleClearTermAndClose
3163
- }), /*#__PURE__*/jsx(Button, {
3164
- "data-cy": "neeto-filters-clear-btn",
3165
- disabled: isClearFiltersDisabled,
3166
- label: t("neetoFilters.common.clearFilters"),
3167
- style: "text",
3168
- onClick: handleClearAll
3169
- })]
3170
- })]
3171
- }));
3172
- };
3173
-
3174
- var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
3175
-
3176
- var css = ".neeto-filters-bar{align-items:center;display:flex;flex-wrap:wrap}.neeto-filters-bar__block{border-radius:var(--neeto-ui-rounded);display:flex;gap:4px;margin:4px 0;max-width:384px;overflow:hidden;padding:4px 8px;position:relative;transition:var(--neeto-ui-transition);white-space:nowrap}.neeto-filters-bar__block p:first-child{color:rgb(var(--neeto-ui-gray-700))}.neeto-filters-bar__block-close{background-image:linear-gradient(90deg,rgba(var(--neeto-ui-gray-200),.5) 0,rgba(var(--neeto-ui-gray-200),1) 25%);color:rgb(var(--neeto-ui-gray-800));opacity:0;padding:8px;position:absolute;right:0;top:0;transition:var(--neeto-ui-transition)}.neeto-filters-bar__block:active,.neeto-filters-bar__block:hover{background-color:rgb(var(--neeto-ui-gray-200));cursor:pointer}.neeto-filters-bar__block:active .neeto-filters-bar__block-close,.neeto-filters-bar__block:hover .neeto-filters-bar__block-close{border-radius:var(--neeto-ui-rounded);color:rgb(var(--neeto-ui-black));opacity:1}.neeto-filters-bar__block:focus{box-shadow:0 0 0 3px rgba(var(--neeto-ui-gray-800),15%);outline:none}.neeto-filters-bar--separator{align-self:stretch;border-left:1px solid rgb(var(--neeto-ui-gray-400));margin:12px 8px}.neeto-filters-pane-filter{overflow:visible;width:360px}.neeto-filters-pane-filter__body{align-items:stretch!important;gap:20px}.neeto-filters-pane-filter__body>*{flex-grow:0!important}.neeto-filters-pane-filter__body p{text-align:center}.neeto-filters-pane-filter__body .neeto-filters-pane-filter__item-wrapper{display:flex;flex:1;flex-direction:column;gap:8px}.neeto-filters-pane-filter__body .accordion_item .neeto-filters-pane-filter__item-wrapper{flex:1;margin-top:16px}.neeto-filters-pane-filter__body .accordion_item .neeto-filters-pane-filter__item-wrapper:first-of-type{margin-top:0}.neeto-filters-pane-filter__body .accordion_item:first-of-type .neeto-ui-accordion__item{padding-top:0}.neeto-filters-pane-filter__body .neeto-ui-accordion__wrapper--last-item{border-bottom:thin solid rgb(var(--neeto-ui-gray-300))}@media screen and (max-width:767px){.neeto-filters-pane-filter{width:100vw}}.neeto-filters-pane-backdrop{-webkit-backdrop-filter:blur(0)!important;backdrop-filter:blur(0)!important;background-color:rgba(var(--neeto-ui-gray-700),.2)}.neeto-filters-segment--active{border-color:rgb(var(--neeto-ui-primary-500))!important;box-shadow:0 0 0 1px rgb(var(--neeto-ui-primary-500))!important}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL19iYXIuc2NzcyIsImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9pbmRleC5zY3NzIiwiYXBwL2phdmFzY3JpcHQvc3JjL3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2ZpbHRlcnMuc2NzcyIsImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwiYXBwL2phdmFzY3JpcHQvc3JjL3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX3NlZ21lbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUJBR0Usa0JBQUEsQ0FGQSxZQUFBLENBQ0EsY0NFRixDRENFLDBCQUtFLHFDQUFBLENBSEEsWUFBQSxDQUVBLE9BQUEsQ0FHQSxZQUFBLENBQ0EsZUFBQSxDQUVBLGVBQUEsQ0FUQSxlQUFBLENBRUEsaUJBQUEsQ0FHQSxxQ0FBQSxDQUdBLGtCQ0VKLENEQ0ksd0NBQ0UsbUNDQ04sQ0RFSSxnQ0FRRSxnSEFBQSxDQUZBLG1DQUFBLENBREEsU0FBQSxDQURBLFdBQUEsQ0FIQSxpQkFBQSxDQUVBLE9BQUEsQ0FEQSxLQUFBLENBS0EscUNDQ04sQ0RPSSxpRUFFRSw4Q0FBQSxDQUNBLGNDTk4sQ0RRTSxpSUFHRSxxQ0FBQSxDQURBLGdDQUFBLENBREEsU0NKUixDRFVJLGdDQUVFLHVEQUFBLENBREEsWUNQTixDRFlFLDhCQUdFLGtCQUFBLENBRkEsbURBQUEsQ0FDQSxlQ1RKLENDL0NBLDJCQUVFLGdCQUFBLENBREEsV0RtREYsQ0NoREUsaUNBQ0UsNkJBQUEsQ0FDQSxRRGtESixDQ2hESSxtQ0FDRSxxQkRrRE4sQ0MvQ0ksbUNBQ0UsaUJEaUROLENDOUNJLDBFQUNFLFlBQUEsQ0FHQSxNQUFBLENBRkEscUJBQUEsQ0FDQSxPRGlETixDQzVDTSwwRkFFRSxNQUFBLENBREEsZUQrQ1IsQ0M1Q1Esd0dBQ0UsWUQ4Q1YsQ0MxQ1EseUZBQ0UsYUQ0Q1YsQ0N4Q0kseUVBQ0Usc0REMENOLENFbkVJLG9DRGRKLDJCQTRDSSxXRHlDRixDQUNGLENDdENBLDZCQUNFLHlDQUFBLENBQUEsaUNBQUEsQ0FDQSxrRER5Q0YsQ0czRkEsK0JBQ0UsdURBQUEsQ0FDQSwrREg4RkYiLCJzb3VyY2VzQ29udGVudCI6WyIubmVldG8tZmlsdGVycy1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJl9fYmxvY2sge1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZ2FwOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbmVldG8tdWktcm91bmRlZCk7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tbmVldG8tdWktdHJhbnNpdGlvbik7XG4gICAgbWFyZ2luOiA0cHggMDtcbiAgICBtYXgtd2lkdGg6IDM4NHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTcwMCkpO1xuICAgIH1cblxuICAgICYtY2xvc2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTgwMCkpO1xuICAgICAgdHJhbnNpdGlvbjogdmFyKC0tbmVldG8tdWktdHJhbnNpdGlvbik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICByZ2JhKHZhcigtLW5lZXRvLXVpLWdyYXktMjAwKSwgMC41KSAwJSxcbiAgICAgICAgcmdiYSh2YXIoLS1uZWV0by11aS1ncmF5LTIwMCksIDEpIDI1JVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTIwMCkpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAubmVldG8tZmlsdGVycy1iYXJfX2Jsb2NrLWNsb3NlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ibGFjaykpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1uZWV0by11aS1yb3VuZGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSh2YXIoLS1uZWV0by11aS1ncmF5LTgwMCksIDE1JSk7XG4gICAgfVxuICB9XG5cbiAgJi0tc2VwYXJhdG9yIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTQwMCkpO1xuICAgIG1hcmdpbjogMTJweCA4cHg7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgfVxufVxuIiwiLm5lZXRvLWZpbHRlcnMtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLm5lZXRvLWZpbHRlcnMtYmFyX19ibG9jayB7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ2FwOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW5lZXRvLXVpLXJvdW5kZWQpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS1uZWV0by11aS10cmFuc2l0aW9uKTtcbiAgbWFyZ2luOiA0cHggMDtcbiAgbWF4LXdpZHRoOiAzODRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5uZWV0by1maWx0ZXJzLWJhcl9fYmxvY2sgcDpmaXJzdC1jaGlsZCB7XG4gIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS03MDApKTtcbn1cbi5uZWV0by1maWx0ZXJzLWJhcl9fYmxvY2stY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDhweDtcbiAgb3BhY2l0eTogMDtcbiAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTgwMCkpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS1uZWV0by11aS10cmFuc2l0aW9uKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKHZhcigtLW5lZXRvLXVpLWdyYXktMjAwKSwgMC41KSAwJSwgcmdiYSh2YXIoLS1uZWV0by11aS1ncmF5LTIwMCksIDEpIDI1JSk7XG59XG4ubmVldG8tZmlsdGVycy1iYXJfX2Jsb2NrOmhvdmVyLCAubmVldG8tZmlsdGVycy1iYXJfX2Jsb2NrOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTIwMCkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubmVldG8tZmlsdGVycy1iYXJfX2Jsb2NrOmhvdmVyIC5uZWV0by1maWx0ZXJzLWJhcl9fYmxvY2stY2xvc2UsIC5uZWV0by1maWx0ZXJzLWJhcl9fYmxvY2s6YWN0aXZlIC5uZWV0by1maWx0ZXJzLWJhcl9fYmxvY2stY2xvc2Uge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWJsYWNrKSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW5lZXRvLXVpLXJvdW5kZWQpO1xufVxuLm5lZXRvLWZpbHRlcnMtYmFyX19ibG9jazpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKHZhcigtLW5lZXRvLXVpLWdyYXktODAwKSwgMTUlKTtcbn1cbi5uZWV0by1maWx0ZXJzLWJhci0tc2VwYXJhdG9yIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS00MDApKTtcbiAgbWFyZ2luOiAxMnB4IDhweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLm5lZXRvLWZpbHRlcnMtcGFuZS1maWx0ZXIge1xuICB3aWR0aDogMzYwcHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLm5lZXRvLWZpbHRlcnMtcGFuZS1maWx0ZXJfX2JvZHkge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xuICBnYXA6IDIwcHg7XG59XG4ubmVldG8tZmlsdGVycy1wYW5lLWZpbHRlcl9fYm9keSA+ICoge1xuICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbn1cbi5uZWV0by1maWx0ZXJzLXBhbmUtZmlsdGVyX19ib2R5IHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ubmVldG8tZmlsdGVycy1wYW5lLWZpbHRlcl9fYm9keSAubmVldG8tZmlsdGVycy1wYW5lLWZpbHRlcl9faXRlbS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXg6IDE7XG59XG4ubmVldG8tZmlsdGVycy1wYW5lLWZpbHRlcl9fYm9keSAuYWNjb3JkaW9uX2l0ZW0gLm5lZXRvLWZpbHRlcnMtcGFuZS1maWx0ZXJfX2l0ZW0td3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIGZsZXg6IDE7XG59XG4ubmVldG8tZmlsdGVycy1wYW5lLWZpbHRlcl9fYm9keSAuYWNjb3JkaW9uX2l0ZW0gLm5lZXRvLWZpbHRlcnMtcGFuZS1maWx0ZXJfX2l0ZW0td3JhcHBlcjpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5uZWV0by1maWx0ZXJzLXBhbmUtZmlsdGVyX19ib2R5IC5hY2NvcmRpb25faXRlbTpmaXJzdC1vZi10eXBlIC5uZWV0by11aS1hY2NvcmRpb25fX2l0ZW0ge1xuICBwYWRkaW5nLXRvcDogMDtcbn1cbi5uZWV0by1maWx0ZXJzLXBhbmUtZmlsdGVyX19ib2R5IC5uZWV0by11aS1hY2NvcmRpb25fX3dyYXBwZXItLWxhc3QtaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmVldG8tZmlsdGVycy1wYW5lLWZpbHRlciB7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICB9XG59XG5cbi5uZWV0by1maWx0ZXJzLXBhbmUtYmFja2Ryb3Age1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMHB4KSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLW5lZXRvLXVpLWdyYXktNzAwKSwgMC4yKTtcbn1cblxuLm5lZXRvLWZpbHRlcnMtc2VnbWVudC0tYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktcHJpbWFyeS01MDApKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiKHZhcigtLW5lZXRvLXVpLXByaW1hcnktNTAwKSkgIWltcG9ydGFudDtcbn0iLCIubmVldG8tZmlsdGVycy1wYW5lLWZpbHRlciB7XG4gIHdpZHRoOiAzNjBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgJl9fYm9keSB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgICBnYXA6IDIwcHg7XG5cbiAgICA+ICoge1xuICAgICAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm5lZXRvLWZpbHRlcnMtcGFuZS1maWx0ZXJfX2l0ZW0td3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAuYWNjb3JkaW9uX2l0ZW0ge1xuICAgICAgLm5lZXRvLWZpbHRlcnMtcGFuZS1maWx0ZXJfX2l0ZW0td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAubmVldG8tdWktYWNjb3JkaW9uX19pdGVtIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAubmVldG8tdWktYWNjb3JkaW9uX193cmFwcGVyLS1sYXN0LWl0ZW0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB2aWV3cG9ydChtb2IpIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cbn1cblxuLm5lZXRvLWZpbHRlcnMtcGFuZS1iYWNrZHJvcCB7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwcHgpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tbmVldG8tdWktZ3JheS03MDApLCAwLjIpO1xufVxuIiwiQG1peGluIHZpZXdwb3J0KCRtZWRpYSkge1xuICBAaWYgJG1lZGlhPT1kZXNrIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWVkaWE9PXRhYi1taW4ge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtZWRpYT09dGFiLW9ubHkge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1lZGlhPT1tb2Ige1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1lZGlhPT14cy1tb2Ige1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi5uZWV0by1maWx0ZXJzLXNlZ21lbnQtLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLXByaW1hcnktNTAwKSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYih2YXIoLS1uZWV0by11aS1wcmltYXJ5LTUwMCkpICFpbXBvcnRhbnQ7XG59XG4iXX0= */";
3177
- n(css,{});
3178
-
3179
- 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; }
3180
- 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) { _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; }
3181
- var Filters = withT(function (_ref) {
3182
- var t = _ref.t,
3183
- _ref$isOpen = _ref.isOpen,
3184
- isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
3185
- _ref$setIsOpen = _ref.setIsOpen,
3186
- setIsOpen = _ref$setIsOpen === void 0 ? identity : _ref$setIsOpen,
3187
- _ref$columns = _ref.columns,
3188
- columns = _ref$columns === void 0 ? [] : _ref$columns,
3189
- _ref$onChange = _ref.onChange,
3190
- onChange = _ref$onChange === void 0 ? identity : _ref$onChange,
3191
- _ref$buttonProps = _ref.buttonProps,
3192
- buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
3193
- _ref$paneProps = _ref.paneProps,
3194
- paneProps = _ref$paneProps === void 0 ? {} : _ref$paneProps,
3195
- _ref$isSearchable = _ref.isSearchable,
3196
- isSearchable = _ref$isSearchable === void 0 ? false : _ref$isSearchable,
3197
- className = _ref.className,
3198
- _ref$onSelectorsChang = _ref.onSelectorsChange,
3199
- onSelectorsChange = _ref$onSelectorsChang === void 0 ? noop : _ref$onSelectorsChang,
3200
- _ref$keyword = _ref.keyword,
3201
- keyword = _ref$keyword === void 0 ? {
3202
- node: "",
3203
- value: "",
3204
- setValue: noop
3205
- } : _ref$keyword,
3206
- childrenKeys = _ref.childrenKeys,
3207
- children = _ref.children;
3208
- return /*#__PURE__*/jsxs("span", {
3209
- className: classnames(_defineProperty({}, className, className)),
3210
- children: [/*#__PURE__*/jsx(Button, _objectSpread$1({
3211
- "data-cy": "neeto-filters-toggle-btn",
3212
- label: t("neetoFilters.common.filter"),
3213
- style: "secondary",
3214
- onClick: function onClick() {
3215
- return setIsOpen(true);
3216
- }
3217
- }, buttonProps)), /*#__PURE__*/jsx(Pane, _objectSpread$1(_objectSpread$1({
3218
- onClose: function onClose() {
3219
- return setIsOpen(false);
3220
- }
3221
- }, _objectSpread$1({
3222
- childrenKeys: childrenKeys,
3223
- columns: columns,
3224
- isOpen: isOpen,
3225
- isSearchable: isSearchable,
3226
- keyword: keyword,
3227
- onChange: onChange,
3228
- onSelectorsChange: onSelectorsChange
3229
- }, paneProps)), {}, {
3230
- children: children
3231
- }))]
3232
- });
3233
- });
3234
-
3235
- var ITEMS_MAX_COUNT = 20;
3236
- var SEGMENT_ACTIONS = {
3237
- EDIT: "edit",
3238
- DELETE: "delete"
3239
- };
3240
- var ALL_RESULTS = t$1("neetoFilters.common.allResults");
3241
-
3242
- var Delete = function Delete(_ref) {
3243
- var isOpen = _ref.isOpen,
3244
- onClose = _ref.onClose,
3245
- _ref$segment = _ref.segment,
3246
- segment = _ref$segment === void 0 ? {} : _ref$segment,
3247
- _ref$columns = _ref.columns,
3248
- columns = _ref$columns === void 0 ? [] : _ref$columns;
3249
- var _useTranslation = useTranslation(),
3250
- t = _useTranslation.t;
3251
- var history = useHistory$1();
3252
- var _getQueryParams = getQueryParams(),
3253
- segmentId = _getQueryParams.segmentId;
3254
- var _useDestroySegment = useDestroySegment(),
3255
- deleteSegment = _useDestroySegment.mutate,
3256
- isDeleting = _useDestroySegment.isPending;
3257
- var handleClearAll = function handleClearAll() {
3258
- var params = buildUrlFromFilters({
3259
- columns: columns,
3260
- filters: [],
3261
- isClearAll: true
3262
- });
3263
- history.push({
3264
- search: params
3265
- });
3266
- };
3267
- var handleDelete = function handleDelete() {
3268
- equals(segment.id, segmentId) && handleClearAll();
3269
- deleteSegment(segment.id, {
3270
- onSuccess: onClose
3271
- });
3272
- };
3273
- return /*#__PURE__*/jsx(Alert, {
3274
- isOpen: isOpen,
3275
- onClose: onClose,
3276
- isSubmitting: isDeleting,
3277
- submitButtonLabel: t("neetoFilters.common.delete"),
3278
- title: t("neetoFilters.segments.deleteAlertTitle"),
3279
- message: /*#__PURE__*/jsx(Trans, {
3280
- i18nKey: "neetoFilters.segments.deleteAlertMessage",
3281
- values: {
3282
- entity: segment.name
3283
- }
3284
- }),
3285
- onSubmit: handleDelete
3286
- });
3287
- };
3288
-
3289
- var reorderList = function reorderList(list, startIndex, endIndex) {
3290
- var result = Array.from(list);
3291
- var _result$splice = result.splice(startIndex, 1),
3292
- _result$splice2 = _slicedToArray(_result$splice, 1),
3293
- removed = _result$splice2[0];
3294
- result.splice(endIndex, 0, removed);
3295
- return result;
3296
- };
3297
-
3298
- var useSegments = function useSegments(_ref) {
3299
- var entity = _ref.entity,
3300
- columns = _ref.columns,
3301
- childrenKeys = _ref.childrenKeys;
3302
- var _useTranslation = useTranslation(),
3303
- t = _useTranslation.t;
3304
- var history = useHistory$1();
3305
- var appliedFilters = buildFiltersFromURL(columns);
3306
- var _useFetchSegments = useFetchSegments({
3307
- entity: entity
3308
- }),
3309
- fetchedSegments = _useFetchSegments.data,
3310
- isLoading = _useFetchSegments.isLoading;
3311
- var _useState = useState(fetchedSegments),
3312
- _useState2 = _slicedToArray(_useState, 2),
3313
- segments = _useState2[0],
3314
- setSegments = _useState2[1];
3315
- var _useUpdateSegment = useUpdateSegment(),
3316
- updateSegment = _useUpdateSegment.mutate,
3317
- isUpdating = _useUpdateSegment.isPending;
3318
- var _useState3 = useState({
3319
- action: "",
3320
- segment: undefined
3321
- }),
3322
- _useState4 = _slicedToArray(_useState3, 2),
3323
- confirmAction = _useState4[0],
3324
- setConfirmAction = _useState4[1];
3325
- var handleSegmentsReorder = function handleSegmentsReorder(_ref2) {
3326
- var source = _ref2.source,
3327
- destination = _ref2.destination;
3328
- if (!destination || source.index === destination.index) return;
3329
- var reorderedSegments = reorderList(segments, source.index, destination.index);
3330
- updateSegment({
3331
- id: segments[source.index].id,
3332
- payload: {
3333
- position: destination.index + 1
3334
- },
3335
- showToastr: false
3336
- });
3337
- setSegments(reorderedSegments);
3338
- };
3339
- var clearAppliedFilters = function clearAppliedFilters() {
3340
- var _filters$, _filters$2;
3341
- var filters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : appliedFilters;
3342
- history.push({
3343
- search: buildUrlFromFilters({
3344
- columns: columns,
3345
- filters: [],
3346
- isClearAll: true,
3347
- childrenKeys: ((_filters$ = filters[0]) === null || _filters$ === void 0 ? void 0 : _filters$.conditions) && pluck("key", filterBy({
3348
- node: "children"
3349
- }, (_filters$2 = filters[0]) === null || _filters$2 === void 0 ? void 0 : _filters$2.conditions))
3350
- })
3351
- });
3352
- };
3353
- var handleSelectSegment = function handleSelectSegment(_ref3) {
3354
- var _filters$3;
3355
- var id = _ref3.id,
3356
- filters = _ref3.filters;
3357
- history.push({
3358
- search: buildUrlFromSegment({
3359
- columns: columns,
3360
- filters: (_filters$3 = filters[0]) === null || _filters$3 === void 0 ? void 0 : _filters$3.conditions,
3361
- id: id
3362
- })
3363
- });
3364
- };
3365
- useEffect(function () {
3366
- setSegments(fetchedSegments);
3367
- }, [fetchedSegments]);
3368
- if (isLoading) {
3369
- return /*#__PURE__*/jsx(Spinner, {});
3370
- }
3371
- if (isEmpty(segments)) {
3372
- return /*#__PURE__*/jsx(Typography, {
3373
- style: "body2",
3374
- children: t("neetoFilters.segments.noSegmentsFound")
3375
- });
3376
- }
3377
- var handleUpdate = function handleUpdate(_ref4, _ref5) {
3378
- var name = _ref4.name;
3379
- var setFieldError = _ref5.setFieldError;
3380
- var filtersPayload = buildSegmentsPayload(filters, childrenKeys);
3381
- updateSegment({
3382
- id: confirmAction.segment.id,
3383
- payload: {
3384
- name: name,
3385
- filters: filtersPayload
3386
- },
3387
- showToastr: false
3388
- }, {
3389
- onSuccess: function onSuccess() {
3390
- showThumbsUpToastr();
3391
- setConfirmAction({
3392
- action: "",
3393
- segment: undefined
3394
- });
3395
- },
3396
- onError: function onError(error) {
3397
- return setFieldError("name", error.response.data.error);
3398
- }
3399
- });
3400
- };
3401
- var filters = buildFiltersFromSearchParams(columns);
3402
- return {
3403
- appliedFilters: appliedFilters,
3404
- segments: segments,
3405
- clearAppliedFilters: clearAppliedFilters,
3406
- handleSelectSegment: handleSelectSegment,
3407
- handleSegmentsReorder: handleSegmentsReorder,
3408
- setConfirmAction: setConfirmAction,
3409
- isUpdating: isUpdating,
3410
- handleUpdate: handleUpdate,
3411
- filters: filters,
3412
- onClose: function onClose() {
3413
- return setConfirmAction({
3414
- action: "",
3415
- segment: undefined
3416
- });
3417
- },
3418
- selectedSegment: confirmAction.segment,
3419
- isDeleteAlertOpen: confirmAction.action === SEGMENT_ACTIONS.DELETE,
3420
- isEditPaneOpen: confirmAction.action === SEGMENT_ACTIONS.EDIT
3421
- };
3422
- };
3423
-
3424
- var Segment = function Segment(_ref) {
3425
- var id = _ref.id,
3426
- isActive = _ref.isActive,
3427
- label = _ref.label,
3428
- onClick = _ref.onClick,
3429
- _ref$shouldShowDropdo = _ref.shouldShowDropdown,
3430
- shouldShowDropdown = _ref$shouldShowDropdo === void 0 ? false : _ref$shouldShowDropdo,
3431
- segments = _ref.segments,
3432
- setConfirmAction = _ref.setConfirmAction;
3433
- var _useTranslation = useTranslation(),
3434
- t = _useTranslation.t;
3435
- var menuItems = [{
3436
- key: "edit",
3437
- label: t("neetoFilters.common.edit"),
3438
- onClick: function onClick() {
3439
- return setConfirmAction({
3440
- action: SEGMENT_ACTIONS.EDIT,
3441
- segment: findById(id, segments)
3442
- });
3443
- }
3444
- }, {
3445
- key: "delete",
3446
- label: t("neetoFilters.common.delete"),
3447
- onClick: function onClick() {
3448
- return setConfirmAction({
3449
- action: SEGMENT_ACTIONS.DELETE,
3450
- segment: findById(id, segments)
3451
- });
3452
- }
3453
- }];
3454
- return /*#__PURE__*/jsxs("div", {
3455
- onClick: onClick,
3456
- "data-cy": "neeto-filters-segment-block-".concat(hyphenate(label)),
3457
- className: classnames("neeto-ui-border-gray-400 neeto-ui-bg-white hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-all duration-300 ease-in-out", {
3458
- "neeto-filters-segment--active": isActive
3459
- }),
3460
- children: [/*#__PURE__*/jsx("div", {
3461
- className: "flex flex-grow items-center gap-2 overflow-hidden",
3462
- "data-cy": "new-element-field",
3463
- children: /*#__PURE__*/jsx(Typography, {
3464
- className: "truncate leading-snug",
3465
- "data-cy": hyphenate(label),
3466
- style: "body2",
3467
- children: label
3468
- })
3469
- }), shouldShowDropdown && /*#__PURE__*/jsx(MoreDropdown, {
3470
- menuItems: menuItems,
3471
- dropdownButtonProps: {
3472
- className: "min-h-0 flex-shrink-0",
3473
- "data-cy": "".concat(hyphenate(label), "-more-dropdown")
3474
- }
3475
- })]
3476
- });
3477
- };
3478
-
3479
- 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; }
3480
- 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) { _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; }
3481
- var MenuBlocks = function MenuBlocks(_ref) {
3482
- var entity = _ref.entity,
3483
- segments = _ref.segments,
3484
- segmentId = _ref.segmentId,
3485
- isUpdating = _ref.isUpdating,
3486
- appliedFilters = _ref.appliedFilters,
3487
- setConfirmAction = _ref.setConfirmAction,
3488
- defaultSegmentName = _ref.defaultSegmentName,
3489
- handleSelectSegment = _ref.handleSelectSegment,
3490
- clearAppliedFilters = _ref.clearAppliedFilters,
3491
- handleSegmentsReorder = _ref.handleSegmentsReorder;
3492
- var _useTranslation = useTranslation(),
3493
- t = _useTranslation.t;
3494
- var _useState = useState(false),
3495
- _useState2 = _slicedToArray(_useState, 2),
3496
- showAll = _useState2[0],
3497
- setShowAll = _useState2[1];
3498
- return /*#__PURE__*/jsxs(Fragment, {
3499
- children: [/*#__PURE__*/jsx(MenuBar.SubTitle, {
3500
- children: /*#__PURE__*/jsx(Typography, {
3501
- component: "h4",
3502
- style: "h5",
3503
- textTransform: "uppercase",
3504
- weight: "bold",
3505
- children: t("neetoFilters.common.segments")
3506
- })
3507
- }), segments.length > ITEMS_MAX_COUNT && /*#__PURE__*/jsx(Button, {
3508
- icon: Down,
3509
- style: "link",
3510
- label: showAll ? t("neetoFilters.segments.showLess") : t("neetoFilters.segments.showMoreNumbers", {
3511
- entity: segments.length - ITEMS_MAX_COUNT
3512
- }),
3513
- onClick: function onClick() {
3514
- return setShowAll(function (open) {
3515
- return !open;
3516
- });
3517
- }
3518
- }), /*#__PURE__*/jsx(Segment, {
3519
- isActive: isEmpty(appliedFilters),
3520
- label: defaultSegmentName,
3521
- onClick: clearAppliedFilters
3522
- }), /*#__PURE__*/jsx(DragDropContext, {
3523
- onDragEnd: handleSegmentsReorder,
3524
- children: /*#__PURE__*/jsx(Droppable, {
3525
- droppableId: "neeto-filters-segments-".concat(entity),
3526
- children: function children(_ref2) {
3527
- var innerRef = _ref2.innerRef,
3528
- droppableProps = _ref2.droppableProps,
3529
- placeholder = _ref2.placeholder;
3530
- return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
3531
- ref: innerRef
3532
- }, droppableProps), {}, {
3533
- children: [segments.slice(0, showAll ? segments.length : ITEMS_MAX_COUNT).map(function (segment, index) {
3534
- return /*#__PURE__*/createElement(Draggable, {
3535
- index: index,
3536
- draggableId: segment.id.toString(),
3537
- isDragDisabled: isUpdating,
3538
- key: segment.id.toString()
3539
- }, function (_ref3) {
3540
- var innerRef = _ref3.innerRef,
3541
- draggableProps = _ref3.draggableProps,
3542
- dragHandleProps = _ref3.dragHandleProps;
3543
- return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread(_objectSpread({
3544
- ref: innerRef
3545
- }, draggableProps), dragHandleProps), {}, {
3546
- children: /*#__PURE__*/createElement(Segment, {
3547
- segments: segments,
3548
- setConfirmAction: setConfirmAction,
3549
- shouldShowDropdown: true,
3550
- id: segment.id,
3551
- isActive: segment.id === segmentId,
3552
- key: segment.id,
3553
- label: segment.name,
3554
- onClick: function onClick() {
3555
- return handleSelectSegment(segment);
3556
- }
3557
- })
3558
- }));
3559
- });
3560
- }), placeholder]
3561
- }));
3562
- }
3563
- })
3564
- })]
3565
- });
3566
- };
3567
- var MenuBlocks$1 = /*#__PURE__*/React.memo(MenuBlocks);
3568
-
3569
- var SidebarBlock = function SidebarBlock(_ref) {
3570
- var id = _ref.id,
3571
- isActive = _ref.isActive,
3572
- label = _ref.label,
3573
- onClick = _ref.onClick,
3574
- segments = _ref.segments,
3575
- setConfirmAction = _ref.setConfirmAction;
3576
- var _useTranslation = useTranslation(),
3577
- t = _useTranslation.t;
3578
- var menuItems = [{
3579
- key: "edit",
3580
- label: t("neetoFilters.common.edit"),
3581
- onClick: function onClick() {
3582
- return setConfirmAction({
3583
- action: SEGMENT_ACTIONS.EDIT,
3584
- segment: findById(id, segments)
3585
- });
3586
- }
3587
- }, {
3588
- key: "delete",
3589
- label: t("neetoFilters.common.delete"),
3590
- onClick: function onClick() {
3591
- return setConfirmAction({
3592
- action: SEGMENT_ACTIONS.DELETE,
3593
- segment: findById(id, segments)
3594
- });
3595
- }
3596
- }];
3597
- var dataCyPrefix = hyphenate(label);
3598
- return /*#__PURE__*/jsxs("button", {
3599
- onClick: onClick,
3600
- "data-cy": "".concat(dataCyPrefix, "-segment-link"),
3601
- className: classnames("neeto-molecules-sidebar-segment neeto-molecules-sidebar__sublink neeto-ui-flex neeto-ui-items-center neeto-ui-select-none mb-0 w-full py-1", {
3602
- active: isActive
3603
- }),
3604
- children: [/*#__PURE__*/jsx(Typography, {
3605
- className: "neeto-molecules-sidebar__link-sub-label neeto-molecules-sidebar-segment__label neeto-ui-flex-grow min-w-0",
3606
- component: "span",
3607
- "data-cy": "".concat(dataCyPrefix, "-sub-link-label"),
3608
- style: "body2",
3609
- children: label
3610
- }), /*#__PURE__*/jsx(MoreDropdown, {
3611
- menuItems: menuItems,
3612
- dropdownButtonProps: {
3613
- "data-testid": "segment-more-menu-".concat(dataCyPrefix),
3614
- className: "flex-shrink-0",
3615
- size: "small",
3616
- style: "secondary"
3617
- },
3618
- dropdownProps: {
3619
- position: "bottom-end",
3620
- strategy: "fixed",
3621
- autoWidth: true
3622
- }
3623
- })]
3624
- });
3625
- };
3626
-
3627
- var Segments = function Segments(_ref) {
3628
- var entity = _ref.entity,
3629
- columns = _ref.columns,
3630
- _ref$defaultSegmentNa = _ref.defaultSegmentName,
3631
- defaultSegmentName = _ref$defaultSegmentNa === void 0 ? ALL_RESULTS : _ref$defaultSegmentNa,
3632
- customFilters = _ref.customFilters,
3633
- _ref$childrenKeys = _ref.childrenKeys,
3634
- childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
3635
- _ref$isIndependent = _ref.isIndependent,
3636
- isIndependent = _ref$isIndependent === void 0 ? true : _ref$isIndependent;
3637
- var _useTranslation = useTranslation(),
3638
- t = _useTranslation.t;
3639
- var _useQueryParams = useQueryParams(),
3640
- segmentId = _useQueryParams.segmentId;
3641
- var segmentFormInitialRef = useRef(null);
3642
- var _useSegments = useSegments({
3643
- entity: entity,
3644
- columns: columns,
3645
- childrenKeys: childrenKeys
3646
- }),
3647
- _useSegments$segments = _useSegments.segments,
3648
- segments = _useSegments$segments === void 0 ? [] : _useSegments$segments,
3649
- clearAppliedFilters = _useSegments.clearAppliedFilters,
3650
- handleSelectSegment = _useSegments.handleSelectSegment,
3651
- handleSegmentsReorder = _useSegments.handleSegmentsReorder,
3652
- onClose = _useSegments.onClose,
3653
- setConfirmAction = _useSegments.setConfirmAction,
3654
- selectedSegment = _useSegments.selectedSegment,
3655
- isDeleteAlertOpen = _useSegments.isDeleteAlertOpen,
3656
- isEditPaneOpen = _useSegments.isEditPaneOpen,
3657
- isUpdating = _useSegments.isUpdating,
3658
- handleUpdate = _useSegments.handleUpdate,
3659
- filters = _useSegments.filters,
3660
- appliedFilters = _useSegments.appliedFilters;
3661
- return /*#__PURE__*/jsxs("div", {
3662
- "data-testid": "neeto-filters-segments",
3663
- children: [isIndependent ? /*#__PURE__*/jsx(MenuBlocks$1, {
3664
- appliedFilters: appliedFilters,
3665
- clearAppliedFilters: clearAppliedFilters,
3666
- defaultSegmentName: defaultSegmentName,
3667
- entity: entity,
3668
- handleSegmentsReorder: handleSegmentsReorder,
3669
- handleSelectSegment: handleSelectSegment,
3670
- isUpdating: isUpdating,
3671
- segmentId: segmentId,
3672
- segments: segments,
3673
- setConfirmAction: setConfirmAction
3674
- }) : /*#__PURE__*/jsxs(Fragment, {
3675
- children: [isNotEmpty(segments) && /*#__PURE__*/jsx(Typography, {
3676
- style: "body3",
3677
- weight: "semibold",
3678
- className: "neeto-molecules-sidebar-segments-header neeto-ui-text-transform-capitalize neeto-ui-text-gray-600 py-2 uppercase",
3679
- children: t("neetoFilters.segments.segment", PLURAL)
3680
- }), segments.map(function (segment) {
3681
- return /*#__PURE__*/createElement(SidebarBlock, {
3682
- segments: segments,
3683
- setConfirmAction: setConfirmAction,
3684
- id: segment.id,
3685
- isActive: segment.id === segmentId,
3686
- key: segment.id,
3687
- label: segment.name,
3688
- onClick: function onClick() {
3689
- return handleSelectSegment(segment);
3690
- }
3691
- });
3692
- })]
3693
- }), /*#__PURE__*/jsx(SegmentForm, {
3694
- childrenKeys: childrenKeys,
3695
- columns: columns,
3696
- customFilters: customFilters,
3697
- defaultSegmentName: defaultSegmentName,
3698
- filters: filters,
3699
- onClose: onClose,
3700
- segmentFormInitialRef: segmentFormInitialRef,
3701
- isEdit: true,
3702
- handleSubmit: handleUpdate,
3703
- initialValues: selectedSegment,
3704
- isOpen: isEditPaneOpen,
3705
- isSubmitting: isUpdating
3706
- }), /*#__PURE__*/jsx(Delete, {
3707
- columns: columns,
3708
- onClose: onClose,
3709
- isOpen: isDeleteAlertOpen,
3710
- segment: selectedSegment
3711
- })]
3712
- });
3713
- };
3714
- var index = /*#__PURE__*/React.memo(Segments);
3715
-
3716
- export { Bar, Filters, index as Segments, buildFilterColumnsFromFields, buildFiltersFromURL, buildSelectorsFromURL, buildUrlFromFilters, buildUrlFromSegment, useDestroySegment, useFetchSegments, useUpdateSegment };
1
+ export { default as Bar } from './Bar.js';
2
+ export { default as Filters } from './Filters.js';
3
+ export { default as Segments } from './Segments.js';
4
+ export { K as buildFilterColumnsFromFields, J as buildFiltersFromURL, f as buildSelectorsFromURL, c as buildUrlFromFilters, I as buildUrlFromSegment } from './utils-9ea34335.js';
5
+ export { b as useDestroySegment, c as useFetchSegments, a as useUpdateSegment } from './useSegmentsApi-c514647d.js';
6
+ import './constants-8f6e851e.js';
7
+ import 'react';
8
+ import '@tanstack/react-query';
9
+ import 'classnames';
10
+ import 'i18next';
11
+ import '@bigbinary/neeto-cist';
12
+ import '@bigbinary/neeto-commons-frontend/react-utils';
13
+ import 'ramda';
14
+ import './index-31aaf3e4.js';
15
+ import '@bigbinary/neeto-icons/Delete';
16
+ import '@bigbinary/neetoui/Accordion';
17
+ import '@bigbinary/neetoui/Button';
18
+ import '@bigbinary/neetoui/Pane';
19
+ import '@bigbinary/neetoui/Typography';
20
+ import '@bigbinary/neetoui/formik/ActionBlock';
21
+ import '@bigbinary/neetoui/formik/Form';
22
+ import '@bigbinary/neetoui/formik/Input';
23
+ import 'react-i18next';
24
+ import 'react-router-dom/cjs/react-router-dom.min';
25
+ import './index-95fe069e.js';
26
+ import '@bigbinary/neetoui/Select';
27
+ import 'dayjs';
28
+ import 'react/jsx-runtime';
29
+ import '@bigbinary/neetoui/DatePicker';
30
+ import '@bigbinary/neetoui/TimePicker';
31
+ import '@bigbinary/neetoui/Input';
32
+ import '@bigbinary/neetoui/TreeSelect';
33
+ import '@bigbinary/neeto-icons/Plus';
34
+ import 'yup';
35
+ import '@bigbinary/neeto-commons-frontend/utils';
36
+ import 'react-router-dom';
37
+ import '@bigbinary/neeto-hotkeys';
38
+ import '@bigbinary/neeto-icons/Close';
39
+ import '@bigbinary/neetoui/Tooltip';
40
+ import '@bigbinary/neetoui/Dropdown';
41
+ import 'axios';
42
+ import 'dayjs/plugin/timezone';
43
+ import 'dayjs/plugin/utc';
44
+ import 'dayjs/plugin/weekday';
45
+ import '@bigbinary/neeto-icons/Help';
46
+ import '@bigbinary/neeto-molecules/Search';
47
+ import '@bigbinary/neeto-commons-frontend/constants';
48
+ import '@bigbinary/neetoui/Alert';
49
+ import '@bigbinary/neetoui/Spinner';
50
+ import '@hello-pangea/dnd';
51
+ import '@bigbinary/neeto-icons/Down';
52
+ import '@bigbinary/neeto-molecules/MenuBar';
53
+ import '@bigbinary/neeto-molecules/MoreDropdown';
3717
54
  //# sourceMappingURL=index.js.map