@bigbinary/neeto-filters-frontend 4.3.5 → 4.3.7

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 (44) hide show
  1. package/dist/Bar.js +8 -7
  2. package/dist/Bar.js.map +1 -1
  3. package/dist/Filters.js +4 -4
  4. package/dist/Filters.js.map +1 -1
  5. package/dist/Segments.js +5 -5
  6. package/dist/cjs/Bar.js +30 -42
  7. package/dist/cjs/Bar.js.map +1 -1
  8. package/dist/cjs/Filters.js +25 -38
  9. package/dist/cjs/Filters.js.map +1 -1
  10. package/dist/cjs/Segments.js +24 -37
  11. package/dist/cjs/Segments.js.map +1 -1
  12. package/dist/cjs/hooks.js +2 -4
  13. package/dist/cjs/hooks.js.map +1 -1
  14. package/dist/cjs/index.js +7 -9
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/utils.js +2 -4
  17. package/dist/cjs/utils.js.map +1 -1
  18. package/dist/{constants-fad9a281.js → constants-CEZMHAxx.js} +2 -2
  19. package/dist/{constants-fad9a281.js.map → constants-CEZMHAxx.js.map} +1 -1
  20. package/dist/{constants-b2c7e869.js → constants-S_zU7eDN.js} +1 -1
  21. package/dist/{constants-b2c7e869.js.map → constants-S_zU7eDN.js.map} +1 -1
  22. package/dist/hooks.js +2 -2
  23. package/dist/{index-93da3b47.js → index-9XJ2QBWT.js} +3 -3
  24. package/dist/{index-93da3b47.js.map → index-9XJ2QBWT.js.map} +1 -1
  25. package/dist/{index-7257957a.js → index-B4GTy1mo.js} +27 -43
  26. package/dist/{index-7257957a.js.map → index-B4GTy1mo.js.map} +1 -1
  27. package/dist/{index-030a7902.js → index-Cnchjnt1.js} +33 -43
  28. package/dist/index-Cnchjnt1.js.map +1 -0
  29. package/dist/{index-566faa52.js → index-DL2dUxuB.js} +3 -3
  30. package/dist/{index-566faa52.js.map → index-DL2dUxuB.js.map} +1 -1
  31. package/dist/index.js +7 -7
  32. package/dist/{useSegmentsApi-3805ee98.js → useSegmentsApi-D4rKaXUX.js} +8 -13
  33. package/dist/useSegmentsApi-D4rKaXUX.js.map +1 -0
  34. package/dist/{useSegmentsApi-f084f44a.js → useSegmentsApi-DNEfAQG5.js} +3 -3
  35. package/dist/{useSegmentsApi-f084f44a.js.map → useSegmentsApi-DNEfAQG5.js.map} +1 -1
  36. package/dist/{utils-2e4fb117.js → utils-CPBlIPqx.js} +3 -3
  37. package/dist/{utils-2e4fb117.js.map → utils-CPBlIPqx.js.map} +1 -1
  38. package/dist/{utils-e0b52fa1.js → utils-PyL0UYCZ.js} +14 -22
  39. package/dist/utils-PyL0UYCZ.js.map +1 -0
  40. package/dist/utils.js +2 -2
  41. package/package.json +17 -16
  42. package/dist/index-030a7902.js.map +0 -1
  43. package/dist/useSegmentsApi-3805ee98.js.map +0 -1
  44. package/dist/utils-e0b52fa1.js.map +0 -1
package/dist/cjs/Bar.js CHANGED
@@ -8,19 +8,19 @@ var i18next = require('i18next');
8
8
  var neetoCist = require('@bigbinary/neeto-cist');
9
9
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
10
  var ramda = require('ramda');
11
- var index$1 = require('../index-7257957a.js');
12
- var useSegmentsApi = require('../useSegmentsApi-3805ee98.js');
11
+ var index$1 = require('../index-B4GTy1mo.js');
12
+ var useSegmentsApi = require('../useSegmentsApi-D4rKaXUX.js');
13
13
  var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
14
14
  var Button = require('@bigbinary/neetoui/Button');
15
15
  var reactI18next = require('react-i18next');
16
16
  var reactRouterDom = require('react-router-dom');
17
- var constants = require('../constants-b2c7e869.js');
17
+ var constants = require('../constants-S_zU7eDN.js');
18
18
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
19
19
  var Close = require('@bigbinary/neeto-icons/Close');
20
20
  var Tooltip = require('@bigbinary/neetoui/Tooltip');
21
21
  var Typography = require('@bigbinary/neetoui/Typography');
22
- var index = require('../index-030a7902.js');
23
- var utils = require('../utils-e0b52fa1.js');
22
+ var index = require('../index-Cnchjnt1.js');
23
+ var utils = require('../utils-PyL0UYCZ.js');
24
24
  var jsxRuntime = require('react/jsx-runtime');
25
25
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
26
26
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
@@ -42,19 +42,6 @@ require('@bigbinary/neetoui/Input');
42
42
  require('@bigbinary/neetoui/TreeSelect');
43
43
  require('@bigbinary/neeto-icons/Help');
44
44
 
45
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
46
-
47
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
48
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
49
- var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
50
- var useHotkeys__default = /*#__PURE__*/_interopDefaultLegacy(useHotkeys);
51
- var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
52
- var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
53
- var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
54
- var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
55
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
56
- var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
57
-
58
45
  var DEFAULT_SEGMENTS_CACHE = {
59
46
  segments: []
60
47
  };
@@ -185,17 +172,17 @@ var Block = function Block(_ref) {
185
172
  var blockLength = label.length + ruleContent.length + filterValue.length;
186
173
  var toolTipDisabled = blockLength <= 50;
187
174
  var blockContent = !toolTipDisabled ? "".concat(filterValue.slice(0, 50 - blockLength), "...") : filterValue;
188
- var deleteBlockHotKeyRef = useHotkeys__default["default"](SHORTCUTS.deleteBlock.sequence, function () {
175
+ var deleteBlockHotKeyRef = useHotkeys(SHORTCUTS.deleteBlock.sequence, function () {
189
176
  return handleDelete(key);
190
177
  }, {
191
178
  mode: "scoped"
192
179
  });
193
- var openFilterPaneHotKeyRef = useHotkeys__default["default"](SHORTCUTS.openFilterPane.sequence, function () {
180
+ var openFilterPaneHotKeyRef = useHotkeys(SHORTCUTS.openFilterPane.sequence, function () {
194
181
  return setIsPaneOpen(key);
195
182
  }, {
196
183
  mode: "scoped"
197
184
  });
198
- return /*#__PURE__*/jsxRuntime.jsx(Tooltip__default["default"], {
185
+ return /*#__PURE__*/jsxRuntime.jsx(Tooltip, {
199
186
  content: filterValue,
200
187
  disabled: toolTipDisabled,
201
188
  position: "bottom",
@@ -211,19 +198,19 @@ var Block = function Block(_ref) {
211
198
  onClick: function onClick() {
212
199
  return setIsPaneOpen(key);
213
200
  },
214
- children: [/*#__PURE__*/jsxRuntime.jsxs(Typography__default["default"], {
201
+ children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
215
202
  style: "body2",
216
203
  children: [label, ":"]
217
- }), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
218
- className: "neeto-ui-text-gray-600",
204
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
205
+ className: "neeto-ui-text-gray-500",
219
206
  style: "body2",
220
207
  children: ruleContent
221
- }), !index.isRuleEmpty(rule) && /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
208
+ }), !index.isRuleEmpty(rule) && /*#__PURE__*/jsxRuntime.jsx(Typography, {
222
209
  style: "body2",
223
210
  children: blockContent
224
211
  }), !defaultValue && /*#__PURE__*/jsxRuntime.jsx("div", {
225
212
  className: "neeto-filters-bar__block-close",
226
- children: /*#__PURE__*/jsxRuntime.jsx(Close__default["default"], {
213
+ children: /*#__PURE__*/jsxRuntime.jsx(Close, {
227
214
  "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-block-close-btn"),
228
215
  size: 16,
229
216
  strokeWidth: 2,
@@ -241,12 +228,12 @@ var ChildBlock = function ChildBlock(_ref) {
241
228
  var childKey = _ref.childKey,
242
229
  setIsPaneOpen = _ref.setIsPaneOpen,
243
230
  handleDelete = _ref.handleDelete;
244
- var deleteBlockHotKeyRef = useHotkeys__default["default"](SHORTCUTS.deleteBlock.sequence, function () {
231
+ var deleteBlockHotKeyRef = useHotkeys(SHORTCUTS.deleteBlock.sequence, function () {
245
232
  return handleDelete(childKey);
246
233
  }, {
247
234
  mode: "scoped"
248
235
  });
249
- var openFilterPaneHotKeyRef = useHotkeys__default["default"](SHORTCUTS.openFilterPane.sequence, function () {
236
+ var openFilterPaneHotKeyRef = useHotkeys(SHORTCUTS.openFilterPane.sequence, function () {
250
237
  return setIsPaneOpen(childKey);
251
238
  }, {
252
239
  mode: "scoped"
@@ -262,13 +249,13 @@ var ChildBlock = function ChildBlock(_ref) {
262
249
  onClick: function onClick() {
263
250
  return setIsPaneOpen(childKey);
264
251
  },
265
- children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
252
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
266
253
  style: "body2",
267
254
  weight: "medium",
268
255
  children: childKey
269
256
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
270
257
  className: "neeto-filters-bar__block-close",
271
- children: /*#__PURE__*/jsxRuntime.jsx(Close__default["default"], {
258
+ children: /*#__PURE__*/jsxRuntime.jsx(Close, {
272
259
  "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(childKey), "-block-close-btn"),
273
260
  size: 16,
274
261
  strokeWidth: 2,
@@ -351,7 +338,7 @@ var FilterBar = function FilterBar(_ref) {
351
338
  }, childKey);
352
339
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
353
340
  className: "flex items-center gap-x-2",
354
- children: [neetoCist.isPresent(entity) && !hasOnlyKeywordFilter(filters) && /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
341
+ children: [neetoCist.isPresent(entity) && !hasOnlyKeywordFilter(filters) && /*#__PURE__*/jsxRuntime.jsx(Button, {
355
342
  "data-cy": "save-segment-button",
356
343
  label: t("neetoFilters.segments.saveAsNewSegment"),
357
344
  style: "secondary",
@@ -361,10 +348,11 @@ var FilterBar = function FilterBar(_ref) {
361
348
  action: SEGMENT_ACTIONS.CREATE
362
349
  });
363
350
  }
364
- }), !hideClearButton && /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
351
+ }), !hideClearButton && /*#__PURE__*/jsxRuntime.jsx(Button, {
365
352
  "data-cy": "neeto-filters-bar-clear-btn",
366
353
  label: t("neetoFilters.common.clearFilters"),
367
- style: "text",
354
+ size: "small",
355
+ style: "secondary",
368
356
  onClick: handleClearAll
369
357
  })]
370
358
  })]
@@ -372,7 +360,7 @@ var FilterBar = function FilterBar(_ref) {
372
360
  };
373
361
 
374
362
  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; }
375
- 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__default["default"](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; }
363
+ 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; }
376
364
  var useSegment = function useSegment(_ref) {
377
365
  var entity = _ref.entity,
378
366
  keyword = _ref.keyword,
@@ -388,7 +376,7 @@ var useSegment = function useSegment(_ref) {
388
376
  var _useState = react.useState({
389
377
  action: undefined
390
378
  }),
391
- _useState2 = _slicedToArray__default["default"](_useState, 2),
379
+ _useState2 = _slicedToArray(_useState, 2),
392
380
  isSavePaneOpen = _useState2[0],
393
381
  setIsSavePaneOpen = _useState2[1];
394
382
  var _useCreateSegment = useSegmentsApi.useCreateSegment(),
@@ -411,14 +399,14 @@ var useSegment = function useSegment(_ref) {
411
399
  key: constants.SEARCH_TERM_KEY,
412
400
  value: keywordValue
413
401
  });
414
- var filters = utils.buildFiltersFromSearchParams(utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray__default["default"](columns)) : columns);
402
+ var filters = utils.buildFiltersFromSearchParams(utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
415
403
  var nonHiddenFilters = neetoCist.removeBy({
416
404
  hidden: true
417
405
  }, filters);
418
406
  var handleApplyFilters = function handleApplyFilters(newFilters, isClearAll) {
419
407
  var params = utils.buildUrlFromFilters(_objectSpread({
420
408
  columns: columns,
421
- filters: utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(utils.getSearchTermFromUrl()) ? [].concat(_toConsumableArray__default["default"](newFilters), [keywordFilter]) : newFilters
409
+ filters: utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(utils.getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
422
410
  }, isClearAll && {
423
411
  isClearAll: true,
424
412
  childrenKeys: childrenKeys
@@ -511,8 +499,8 @@ var useSegment = function useSegment(_ref) {
511
499
  };
512
500
  };
513
501
 
514
- var Menu = Dropdown__default["default"].Menu,
515
- MenuItem = Dropdown__default["default"].MenuItem;
502
+ var Menu = Dropdown.Menu,
503
+ MenuItem = Dropdown.MenuItem;
516
504
  var SegmentBar = function SegmentBar(_ref) {
517
505
  var entity = _ref.entity,
518
506
  filters = _ref.filters,
@@ -548,13 +536,13 @@ var SegmentBar = function SegmentBar(_ref) {
548
536
  };
549
537
  var changedFilters = deepCompare(segment.filters[0].conditions, filters);
550
538
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
551
- children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
539
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
552
540
  className: "neeto-ui-text-gray-600 mr-4 px-2",
553
541
  "data-cy": "neeto-filters-segment-name",
554
542
  style: "h4",
555
543
  children: segment.name
556
544
  }), neetoCist.isNotEmpty(changedFilters) && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
557
- children: [/*#__PURE__*/jsxRuntime.jsx(Dropdown__default["default"], {
545
+ children: [/*#__PURE__*/jsxRuntime.jsx(Dropdown, {
558
546
  buttonProps: {
559
547
  className: "mr-2"
560
548
  },
@@ -641,7 +629,7 @@ var Bar = function Bar(_ref) {
641
629
  if (ramda.isEmpty(nonHiddenFilters) && !childrenFiltersApplied) return null;
642
630
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
643
631
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
644
- className: classnames__default["default"]("neeto-filters-bar", _defineProperty__default["default"]({}, className, className)),
632
+ className: classnames("neeto-filters-bar", _defineProperty({}, className, className)),
645
633
  children: /*#__PURE__*/jsxRuntime.jsx(BarComponent, {
646
634
  childrenFiltersApplied: childrenFiltersApplied,
647
635
  childrenKeys: childrenKeys,
@@ -1 +1 @@
1
- {"version":3,"file":"Bar.js","sources":["../../app/javascript/src/components/Bar/constants.js","../../app/javascript/src/constants/keyboardShortcuts.js","../../app/javascript/src/components/Bar/utils.js","../../app/javascript/src/components/Bar/Block.jsx","../../app/javascript/src/components/Bar/ChildBlock.jsx","../../app/javascript/src/components/Bar/FilterBar.jsx","../../app/javascript/src/components/Bar/hooks/useSegment.js","../../app/javascript/src/components/Bar/SegmentBar.jsx","../../app/javascript/src/components/Bar/index.jsx"],"sourcesContent":["export const DEFAULT_SEGMENTS_CACHE = { segments: [] };\n\nexport const SEGMENT_ACTIONS = { EDIT: \"edit\", CREATE: \"create\" };\n","import { t } from \"i18next\";\n\nexport const SHORTCUTS = {\n closePane: {\n sequence: \"escape\",\n description: t(\"neetoFilters.shortcuts.closePane\"),\n },\n deleteBlock: {\n sequence: \"backspace\",\n description: t(\"neetoFilters.shortcuts.deleteBlock\"),\n },\n openFilterPane: {\n sequence: \"enter\",\n description: t(\"neetoFilters.shortcuts.openFilterPane\"),\n },\n};\n","import { t } from \"i18next\";\nimport { findBy, humanize, removeBy } from \"neetocist\";\nimport { dateFormat, dayjs } from \"neetocommons/utils\";\nimport { modify, project, prop, reject, sortBy } from \"ramda\";\n\nimport {\n SEARCH_TERM_KEY,\n SINGLE_DATE_OPTIONS,\n SINGLE_TIME_OPTIONS,\n} from \"common/constants\";\nimport { isRuleEmpty } from \"components/Pane/Item/utils\";\n\nimport { NUMBER_RULES, TEXT_RULES } from \"../Pane/Item/constants\";\nimport {\n getLabelFromBool,\n isBoolean,\n isCustomDateRange,\n isCustomTimeRange,\n isDate,\n isDigit,\n isMulti,\n isSingle,\n isSingleDate,\n isSingleTime,\n isText,\n isTime,\n isTreeSelect,\n} from \"../utils\";\n\nconst buildCustomDateValue = value => {\n const isBeforeOrAfter =\n Math.abs(dayjs(value[1]).diff(dayjs(value[0]), \"year\")) >= 90;\n if (isBeforeOrAfter) {\n const currentMoment = dayjs();\n const diffWithStart = Math.abs(currentMoment.diff(dayjs(value[0]), \"year\"));\n const diffWithEnd = Math.abs(currentMoment.diff(dayjs(value[1]), \"year\"));\n\n return diffWithStart < diffWithEnd\n ? `after-${dateFormat.date(dayjs(value[0]).subtract(1, \"day\"))}`\n : `before-${dateFormat.date(dayjs(value[1]).add(1, \"day\"))}`;\n }\n\n return value.map(dateFormat.date).join(\" - \");\n};\n\nexport const buildFilterValue = filter => {\n const {\n defaultType = filter.type,\n value,\n rule,\n values: initialValues = [],\n } = filter;\n const values = initialValues.map(modify(\"value\", value => value.toString()));\n\n if (isDate(defaultType) && isCustomDateRange(value)) {\n return buildCustomDateValue(value);\n } else if (isTime(defaultType) && isCustomTimeRange(value)) {\n return value.map(dateFormat.time).join(\" - \");\n } else if (isDate(defaultType) || isTime(defaultType)) {\n return humanize(value);\n } else if (isMulti(defaultType) || isTreeSelect(defaultType)) {\n return value\n .map(value => findBy({ value }, values)?.label || value)\n .join(\", \");\n } else if (isSingleDate(defaultType)) {\n return rule === \"between\"\n ? value.map(dateFormat.date).join(\" - \")\n : dateFormat.date(value);\n } else if (isSingleTime(defaultType)) {\n return rule === \"between\"\n ? value.map(dateFormat.time).join(\" - \")\n : dateFormat.time(value);\n } else if (isBoolean(defaultType)) {\n return getLabelFromBool({ value, values });\n }\n\n return findBy({ value }, values)?.label || value;\n};\n\nexport const buildRuleValue = ({ rule, defaultType }) => {\n if (isText(defaultType)) {\n return findBy({ value: rule }, TEXT_RULES).label;\n } else if (isDigit(defaultType)) {\n return findBy({ value: rule }, NUMBER_RULES).label;\n } else if (isSingleDate(defaultType)) {\n return findBy({ value: rule }, SINGLE_DATE_OPTIONS).label;\n } else if (isSingleTime(defaultType)) {\n return findBy({ value: rule }, SINGLE_TIME_OPTIONS).label;\n } else if (\n isMulti(defaultType) ||\n isSingle(defaultType) ||\n isTreeSelect(defaultType)\n ) {\n return isRuleEmpty(rule) ? t(\"neetoFilters.rules.isEmpty\") : \"\";\n }\n\n return \"\";\n};\n\nexport const hasOnlyKeywordFilter = filters =>\n filters.length === 1 && filters[0].key === SEARCH_TERM_KEY;\n\nexport const deepCompare = (segments, filters) => {\n const comparisonHelper = filters =>\n sortBy(\n prop(\"key\"),\n removeBy(\n { key: SEARCH_TERM_KEY },\n project([\"key\", \"rule\", \"value\", \"label\"], filters)\n )\n );\n\n return reject(filters => {\n const segment = findBy({ key: filters.key }, segments);\n\n return segment && segment.value === filters.value;\n }, comparisonHelper(filters));\n};\n","import { hyphenate } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Close } from \"neetoicons\";\nimport { Tooltip, Typography } from \"neetoui\";\n\nimport { isRuleEmpty } from \"components/Pane/Item/utils\";\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\n\nimport { buildFilterValue, buildRuleValue } from \"./utils\";\n\nconst Block = ({ filter, handleDelete, setIsPaneOpen }) => {\n const { key, defaultType = filter.type, label, rule, defaultValue } = filter;\n const filterValue = buildFilterValue(filter);\n const ruleContent = buildRuleValue({ rule, defaultType });\n const blockLength = label.length + ruleContent.length + filterValue.length;\n const toolTipDisabled = blockLength <= 50;\n const blockContent = !toolTipDisabled\n ? `${filterValue.slice(0, 50 - blockLength)}...`\n : filterValue;\n\n const deleteBlockHotKeyRef = useHotkeys(\n SHORTCUTS.deleteBlock.sequence,\n () => handleDelete(key),\n { mode: \"scoped\" }\n );\n\n const openFilterPaneHotKeyRef = useHotkeys(\n SHORTCUTS.openFilterPane.sequence,\n () => setIsPaneOpen(key),\n { mode: \"scoped\" }\n );\n\n return (\n <Tooltip\n content={filterValue}\n disabled={toolTipDisabled}\n position=\"bottom\"\n theme=\"light\"\n >\n <div\n className=\"neeto-filters-bar__block\"\n data-cy={`neeto-filters-${hyphenate(key)}-block`}\n tabIndex={0}\n ref={node => {\n deleteBlockHotKeyRef.current = node;\n openFilterPaneHotKeyRef.current = node;\n }}\n onClick={() => setIsPaneOpen(key)}\n >\n <Typography style=\"body2\">{label}:</Typography>\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {ruleContent}\n </Typography>\n {!isRuleEmpty(rule) && (\n <Typography style=\"body2\">{blockContent}</Typography>\n )}\n {!defaultValue && (\n <div className=\"neeto-filters-bar__block-close\">\n <Close\n data-cy={`neeto-filters-${hyphenate(key)}-block-close-btn`}\n size={16}\n strokeWidth={2}\n onClick={event => {\n event.stopPropagation();\n handleDelete(key);\n }}\n />\n </div>\n )}\n </div>\n </Tooltip>\n );\n};\n\nexport default Block;\n","import { hyphenate } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Close } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\n\nconst ChildBlock = ({ childKey, setIsPaneOpen, handleDelete }) => {\n const deleteBlockHotKeyRef = useHotkeys(\n SHORTCUTS.deleteBlock.sequence,\n () => handleDelete(childKey),\n { mode: \"scoped\" }\n );\n\n const openFilterPaneHotKeyRef = useHotkeys(\n SHORTCUTS.openFilterPane.sequence,\n () => setIsPaneOpen(childKey),\n { mode: \"scoped\" }\n );\n\n return (\n <div\n className=\"neeto-filters-bar__block\"\n data-cy={`neeto-filters-${hyphenate(childKey)}-block`}\n tabIndex={0}\n ref={node => {\n deleteBlockHotKeyRef.current = node;\n openFilterPaneHotKeyRef.current = node;\n }}\n onClick={() => setIsPaneOpen(childKey)}\n >\n <Typography style=\"body2\" weight=\"medium\">\n {childKey}\n </Typography>\n <div className=\"neeto-filters-bar__block-close\">\n <Close\n data-cy={`neeto-filters-${hyphenate(childKey)}-block-close-btn`}\n size={16}\n strokeWidth={2}\n onClick={event => {\n event.stopPropagation();\n handleDelete(childKey);\n }}\n />\n </div>\n </div>\n );\n};\n\nexport default ChildBlock;\n","import { Fragment } from \"react\";\n\nimport { isPresent, removeBy } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\nimport { has, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\n\nimport Block from \"./Block\";\nimport ChildBlock from \"./ChildBlock\";\nimport { SEGMENT_ACTIONS } from \"./constants\";\nimport { hasOnlyKeywordFilter } from \"./utils\";\n\nimport { getSnakeCasedQueryParams, isKeywordFilterPresent } from \"../utils\";\n\nconst FilterBar = ({\n entity,\n filters,\n setIsSavePaneOpen,\n setIsPaneOpen,\n childrenKeys,\n nonHiddenFilters,\n childrenFiltersApplied,\n keywordFilter,\n handleApplyFilters,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const searchParams = useQueryParams({ toCamelCase: false });\n\n const handleDelete = key => {\n if (key === SEARCH_TERM_KEY) {\n const params = omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n\n return;\n }\n\n if (childrenKeys.includes(key)) {\n const params = omit([key], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n }\n\n const newFilters = removeBy({ key }, filters);\n handleApplyFilters(newFilters);\n };\n\n const handleClearAll = () => {\n const params = isKeywordFilterPresent(keywordFilter)\n ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams())\n : getSnakeCasedQueryParams();\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n handleApplyFilters([], true);\n };\n\n const hideClearButton =\n nonHiddenFilters.every(\n ({ defaultValue, isClearable }) => defaultValue && !isClearable\n ) && !childrenFiltersApplied;\n\n return (\n <>\n {nonHiddenFilters.map(filter => (\n <Fragment key={filter.key}>\n <Block {...{ filter, handleDelete, setIsPaneOpen }} />\n {filter.suffixComponent?.()}\n <div className=\"neeto-filters-bar--separator\" />\n </Fragment>\n ))}\n {childrenKeys\n .filter(childKey => has(childKey, searchParams))\n .map(childKey => (\n <Fragment key={childKey}>\n <ChildBlock {...{ childKey, handleDelete, setIsPaneOpen }} />\n <div className=\"neeto-filters-bar--separator\" />\n </Fragment>\n ))}\n <div className=\"flex items-center gap-x-2\">\n {isPresent(entity) && !hasOnlyKeywordFilter(filters) && (\n <Button\n data-cy=\"save-segment-button\"\n label={t(\"neetoFilters.segments.saveAsNewSegment\")}\n style=\"secondary\"\n onClick={() => {\n setIsPaneOpen(false);\n setIsSavePaneOpen({ action: SEGMENT_ACTIONS.CREATE });\n }}\n />\n )}\n {!hideClearButton && (\n <Button\n data-cy=\"neeto-filters-bar-clear-btn\"\n label={t(\"neetoFilters.common.clearFilters\")}\n style=\"text\"\n onClick={handleClearAll}\n />\n )}\n </div>\n </>\n );\n};\n\nexport default FilterBar;\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { isNotEmpty, noop, removeBy } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { has } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n buildFiltersFromSearchParams,\n buildSegmentsPayload,\n buildUrlFromFilters,\n buildUrlFromSegment,\n getSearchTermFromUrl,\n isKeywordFilterPresent,\n} from \"components/utils\";\nimport {\n useCreateSegment,\n useUpdateSegment,\n} from \"hooks/reactQuery/useSegmentsApi\";\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\n\nimport { SEGMENT_ACTIONS } from \"../constants\";\n\nconst useSegment = ({\n entity,\n keyword,\n columns,\n childrenKeys,\n segmentsBaseUrl,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const initialRenderRef = useRef(true);\n const { segmentId } = useQueryParams();\n\n const [isSavePaneOpen, setIsSavePaneOpen] = useState({ action: undefined });\n\n const { mutate: createSegment, isPending: isCreating } = useCreateSegment();\n const { mutate: updateSegment, isPending: isUpdating } = useUpdateSegment();\n const isSubmitting = isCreating || isUpdating;\n\n const searchParams = useQueryParams({ toCamelCase: false });\n const keywordValue = searchParams[SEARCH_TERM_KEY] || \"\";\n const isEdit = isSavePaneOpen.action === SEGMENT_ACTIONS.EDIT;\n\n const keywordFilter = {\n type: \"text\",\n rule: \"contains\",\n label: t(\"neetoFilters.common.searchTerm\"),\n ...keyword,\n key: SEARCH_TERM_KEY,\n value: keywordValue,\n };\n\n const filters = buildFiltersFromSearchParams(\n isKeywordFilterPresent(keywordFilter) && isNotEmpty(keywordValue)\n ? [keywordFilter, ...columns]\n : columns\n );\n\n const nonHiddenFilters = removeBy({ hidden: true }, filters);\n\n const handleApplyFilters = (newFilters, isClearAll) => {\n const params = buildUrlFromFilters({\n columns,\n filters:\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? [...newFilters, keywordFilter]\n : newFilters,\n ...(isClearAll && { isClearAll: true, childrenKeys }),\n });\n\n history.push({ search: params });\n };\n\n const childrenFiltersApplied = childrenKeys.some(key =>\n has(key, searchParams)\n );\n\n useEffect(() => {\n if (initialRenderRef.current) {\n initialRenderRef.current = false;\n\n return noop;\n }\n\n const handler = setTimeout(() => {\n handleApplyFilters(filters);\n }, 500);\n\n return () => clearTimeout(handler);\n }, [keywordValue]);\n\n const handleCreateSuccess = ({ segment: { id, filters } }) => {\n history.push({\n pathname: segmentsBaseUrl,\n search: buildUrlFromSegment({\n columns,\n filters: filters[0]?.conditions,\n id,\n }),\n });\n setIsSavePaneOpen({ action: undefined });\n showThumbsUpToastr();\n };\n\n const handleCreate = ({ name }, { setFieldError }) => {\n const filtersPayload = buildSegmentsPayload(filters, childrenKeys);\n createSegment(\n { name, entity, filters: filtersPayload },\n {\n onSuccess: handleCreateSuccess,\n onError: error => setFieldError(\"name\", error.response.data.error),\n }\n );\n };\n\n const handleUpdate = ({ name }, { setFieldError }) => {\n const filtersPayload = buildSegmentsPayload(filters, childrenKeys);\n updateSegment(\n { id: segmentId, payload: { name, filters: filtersPayload } },\n {\n onSuccess: () => {\n setIsSavePaneOpen({ action: undefined });\n showThumbsUpToastr();\n },\n onError: error => setFieldError(\"name\", error.response.data.error),\n }\n );\n };\n\n return {\n isEdit,\n filters,\n keywordFilter,\n isSubmitting,\n nonHiddenFilters,\n isSavePaneOpen,\n setIsSavePaneOpen,\n handleApplyFilters,\n childrenFiltersApplied,\n handleSubmit: isEdit ? handleUpdate : handleCreate,\n };\n};\n\nexport default useSegment;\n","import { Fragment } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { findById, isNotEmpty, isNotPresent, removeBy } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { getSnakeCasedQueryParams } from \"components/utils\";\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_SEGMENTS_CACHE, SEGMENT_ACTIONS } from \"./constants\";\nimport { deepCompare } from \"./utils\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst SegmentBar = ({\n entity,\n filters,\n setIsSavePaneOpen,\n setIsPaneOpen,\n handleApplyFilters,\n childrenKeys,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const { segmentId } = useQueryParams();\n const queryClient = useQueryClient();\n\n const cachedSegments =\n queryClient.getQueryData([QUERY_KEYS.SEGMENTS_LIST, entity, \"\"]) ||\n DEFAULT_SEGMENTS_CACHE;\n const segment = findById(segmentId, cachedSegments.segments);\n\n if (isNotPresent(segment)) return null;\n\n const handleDelete = key => {\n if (key === SEARCH_TERM_KEY) {\n const params = omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n\n return;\n }\n\n if (childrenKeys.includes(key)) {\n const params = omit([key], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n }\n\n const newFilters = removeBy({ key }, filters);\n handleApplyFilters(newFilters);\n };\n\n const changedFilters = deepCompare(segment.filters[0].conditions, filters);\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-600 mr-4 px-2\"\n data-cy=\"neeto-filters-segment-name\"\n style=\"h4\"\n >\n {segment.name}\n </Typography>\n {isNotEmpty(changedFilters) && (\n <>\n <Dropdown\n buttonProps={{ className: \"mr-2\" }}\n buttonStyle=\"secondary\"\n label={t(\"neetoFilters.segments.updateSegment\")}\n >\n <Menu>\n <MenuItem.Button\n onClick={() =>\n setIsSavePaneOpen({ action: SEGMENT_ACTIONS.EDIT })\n }\n >\n {t(\"neetoFilters.segments.updateSegment\")}\n </MenuItem.Button>\n <MenuItem.Button\n onClick={() => {\n setIsPaneOpen(false);\n setIsSavePaneOpen({ action: SEGMENT_ACTIONS.CREATE });\n }}\n >\n {t(\"neetoFilters.segments.saveAsNewSegment\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n {changedFilters.map(filter => (\n <Fragment key={filter.key}>\n <Block {...{ filter, handleDelete, setIsPaneOpen }} />\n {filter.suffixComponent?.()}\n <div className=\"neeto-filters-bar--separator\" />\n </Fragment>\n ))}\n </>\n )}\n </>\n );\n};\n\nexport default SegmentBar;\n","import { useRef } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport classnames from \"classnames\";\nimport { t } from \"i18next\";\nimport { findById, isPresent, noop } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { assoc, identity, isEmpty } from \"ramda\";\n\nimport SegmentForm from \"src/common/SegmentForm\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nimport { DEFAULT_SEGMENTS_CACHE } from \"./constants\";\nimport FilterBar from \"./FilterBar\";\nimport useSegment from \"./hooks/useSegment\";\nimport SegmentBar from \"./SegmentBar\";\n\nconst Bar = ({\n entity,\n className,\n columns = [],\n keyword = { node: \"\", value: \"\", setValue: noop },\n setIsPaneOpen = identity,\n childrenKeys = [],\n // eslint-disable-next-line @bigbinary/neeto/use-translation-hook-in-components\n defaultSegmentName = t(\"neetoFilters.common.allResults\"),\n segmentsBaseUrl = window.location.pathname,\n customFilters,\n}) => {\n const queryClient = useQueryClient();\n const { segmentId } = useQueryParams();\n const segmentFormInitialRef = useRef(null);\n const {\n isEdit,\n filters,\n handleSubmit,\n isSubmitting,\n keywordFilter,\n isSavePaneOpen,\n nonHiddenFilters,\n setIsSavePaneOpen,\n handleApplyFilters,\n childrenFiltersApplied,\n } = useSegment({ entity, keyword, columns, childrenKeys, segmentsBaseUrl });\n\n const BarComponent = segmentId ? SegmentBar : FilterBar;\n\n const cachedSegments =\n queryClient.getQueryData([QUERY_KEYS.SEGMENTS_LIST, entity, \"\"]) ||\n DEFAULT_SEGMENTS_CACHE;\n const segment = findById(segmentId, cachedSegments.segments);\n\n if (isEmpty(nonHiddenFilters) && !childrenFiltersApplied) return null;\n\n return (\n <>\n <div\n className={classnames(\"neeto-filters-bar\", { [className]: className })}\n >\n <BarComponent\n {...{\n childrenFiltersApplied,\n childrenKeys,\n entity,\n filters,\n handleApplyFilters,\n keywordFilter,\n nonHiddenFilters,\n setIsPaneOpen,\n setIsSavePaneOpen,\n }}\n />\n </div>\n <SegmentForm\n {...{\n childrenKeys,\n columns,\n customFilters,\n defaultSegmentName,\n filters,\n handleSubmit,\n isEdit,\n isSubmitting,\n keywordFilter,\n segmentFormInitialRef,\n }}\n isOpen={isPresent(isSavePaneOpen.action)}\n initialValues={\n isEdit\n ? assoc(\"filters\", [{ conditions: filters }], segment)\n : { name: \"\", filters: [{ conditions: filters }] }\n }\n onClose={() => setIsSavePaneOpen({ action: undefined })}\n />\n </>\n );\n};\n\nexport default Bar;\n"],"names":["DEFAULT_SEGMENTS_CACHE","segments","SEGMENT_ACTIONS","EDIT","CREATE","SHORTCUTS","closePane","sequence","description","t","deleteBlock","openFilterPane","buildCustomDateValue","value","isBeforeOrAfter","Math","abs","dayjs","diff","currentMoment","diffWithStart","diffWithEnd","concat","dateFormat","date","subtract","add","map","join","buildFilterValue","filter","_findBy2","_filter$defaultType","defaultType","type","rule","_filter$values","values","initialValues","modify","toString","isDate","isCustomDateRange","isTime","isCustomTimeRange","time","humanize","isMulti","isTreeSelect","_findBy","findBy","label","isSingleDate","isSingleTime","isBoolean","getLabelFromBool","buildRuleValue","_ref","isText","TEXT_RULES","isDigit","NUMBER_RULES","SINGLE_DATE_OPTIONS","SINGLE_TIME_OPTIONS","isSingle","isRuleEmpty","hasOnlyKeywordFilter","filters","length","key","SEARCH_TERM_KEY","deepCompare","comparisonHelper","sortBy","prop","removeBy","project","reject","segment","Block","handleDelete","setIsPaneOpen","defaultValue","filterValue","ruleContent","blockLength","toolTipDisabled","blockContent","slice","deleteBlockHotKeyRef","useHotkeys","mode","openFilterPaneHotKeyRef","_jsx","Tooltip","content","disabled","position","theme","children","_jsxs","className","hyphenate","tabIndex","ref","node","current","onClick","Typography","style","Close","size","strokeWidth","event","stopPropagation","ChildBlock","childKey","weight","FilterBar","entity","setIsSavePaneOpen","childrenKeys","nonHiddenFilters","childrenFiltersApplied","keywordFilter","handleApplyFilters","_useTranslation","useTranslation","history","useHistory","searchParams","useQueryParams","toCamelCase","params","omit","getSnakeCasedQueryParams","pathname","window","location","push","buildUrl","includes","newFilters","handleClearAll","isKeywordFilterPresent","hideClearButton","every","_ref2","isClearable","_Fragment","_filter$suffixCompone","Fragment","suffixComponent","call","has","isPresent","Button","action","useSegment","keyword","columns","segmentsBaseUrl","initialRenderRef","useRef","_useQueryParams","segmentId","_useState","useState","undefined","_useState2","_slicedToArray","isSavePaneOpen","_useCreateSegment","useCreateSegment","createSegment","mutate","isCreating","isPending","_useUpdateSegment","useUpdateSegment","updateSegment","isUpdating","isSubmitting","keywordValue","isEdit","_objectSpread","buildFiltersFromSearchParams","isNotEmpty","_toConsumableArray","hidden","isClearAll","buildUrlFromFilters","getSearchTermFromUrl","search","some","useEffect","noop","handler","setTimeout","clearTimeout","handleCreateSuccess","_filters$","_ref2$segment","id","buildUrlFromSegment","conditions","showThumbsUpToastr","handleCreate","_ref3","_ref4","name","setFieldError","filtersPayload","buildSegmentsPayload","onSuccess","onError","error","response","data","handleUpdate","_ref5","_ref6","payload","handleSubmit","Menu","Dropdown","MenuItem","SegmentBar","queryClient","useQueryClient","cachedSegments","getQueryData","QUERY_KEYS","SEGMENTS_LIST","findById","isNotPresent","changedFilters","buttonProps","buttonStyle","Bar","_ref$columns","_ref$keyword","setValue","_ref$setIsPaneOpen","identity","_ref$childrenKeys","_ref$defaultSegmentNa","defaultSegmentName","_ref$segmentsBaseUrl","customFilters","segmentFormInitialRef","_useSegment","BarComponent","isEmpty","classnames","_defineProperty","SegmentForm","isOpen","assoc","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"Bar.js","sources":["../../app/javascript/src/components/Bar/constants.js","../../app/javascript/src/constants/keyboardShortcuts.js","../../app/javascript/src/components/Bar/utils.js","../../app/javascript/src/components/Bar/Block.jsx","../../app/javascript/src/components/Bar/ChildBlock.jsx","../../app/javascript/src/components/Bar/FilterBar.jsx","../../app/javascript/src/components/Bar/hooks/useSegment.js","../../app/javascript/src/components/Bar/SegmentBar.jsx","../../app/javascript/src/components/Bar/index.jsx"],"sourcesContent":["export const DEFAULT_SEGMENTS_CACHE = { segments: [] };\n\nexport const SEGMENT_ACTIONS = { EDIT: \"edit\", CREATE: \"create\" };\n","import { t } from \"i18next\";\n\nexport const SHORTCUTS = {\n closePane: {\n sequence: \"escape\",\n description: t(\"neetoFilters.shortcuts.closePane\"),\n },\n deleteBlock: {\n sequence: \"backspace\",\n description: t(\"neetoFilters.shortcuts.deleteBlock\"),\n },\n openFilterPane: {\n sequence: \"enter\",\n description: t(\"neetoFilters.shortcuts.openFilterPane\"),\n },\n};\n","import { t } from \"i18next\";\nimport { findBy, humanize, removeBy } from \"neetocist\";\nimport { dateFormat, dayjs } from \"neetocommons/utils\";\nimport { modify, project, prop, reject, sortBy } from \"ramda\";\n\nimport {\n SEARCH_TERM_KEY,\n SINGLE_DATE_OPTIONS,\n SINGLE_TIME_OPTIONS,\n} from \"common/constants\";\nimport { isRuleEmpty } from \"components/Pane/Item/utils\";\n\nimport { NUMBER_RULES, TEXT_RULES } from \"../Pane/Item/constants\";\nimport {\n getLabelFromBool,\n isBoolean,\n isCustomDateRange,\n isCustomTimeRange,\n isDate,\n isDigit,\n isMulti,\n isSingle,\n isSingleDate,\n isSingleTime,\n isText,\n isTime,\n isTreeSelect,\n} from \"../utils\";\n\nconst buildCustomDateValue = value => {\n const isBeforeOrAfter =\n Math.abs(dayjs(value[1]).diff(dayjs(value[0]), \"year\")) >= 90;\n if (isBeforeOrAfter) {\n const currentMoment = dayjs();\n const diffWithStart = Math.abs(currentMoment.diff(dayjs(value[0]), \"year\"));\n const diffWithEnd = Math.abs(currentMoment.diff(dayjs(value[1]), \"year\"));\n\n return diffWithStart < diffWithEnd\n ? `after-${dateFormat.date(dayjs(value[0]).subtract(1, \"day\"))}`\n : `before-${dateFormat.date(dayjs(value[1]).add(1, \"day\"))}`;\n }\n\n return value.map(dateFormat.date).join(\" - \");\n};\n\nexport const buildFilterValue = filter => {\n const {\n defaultType = filter.type,\n value,\n rule,\n values: initialValues = [],\n } = filter;\n const values = initialValues.map(modify(\"value\", value => value.toString()));\n\n if (isDate(defaultType) && isCustomDateRange(value)) {\n return buildCustomDateValue(value);\n } else if (isTime(defaultType) && isCustomTimeRange(value)) {\n return value.map(dateFormat.time).join(\" - \");\n } else if (isDate(defaultType) || isTime(defaultType)) {\n return humanize(value);\n } else if (isMulti(defaultType) || isTreeSelect(defaultType)) {\n return value\n .map(value => findBy({ value }, values)?.label || value)\n .join(\", \");\n } else if (isSingleDate(defaultType)) {\n return rule === \"between\"\n ? value.map(dateFormat.date).join(\" - \")\n : dateFormat.date(value);\n } else if (isSingleTime(defaultType)) {\n return rule === \"between\"\n ? value.map(dateFormat.time).join(\" - \")\n : dateFormat.time(value);\n } else if (isBoolean(defaultType)) {\n return getLabelFromBool({ value, values });\n }\n\n return findBy({ value }, values)?.label || value;\n};\n\nexport const buildRuleValue = ({ rule, defaultType }) => {\n if (isText(defaultType)) {\n return findBy({ value: rule }, TEXT_RULES).label;\n } else if (isDigit(defaultType)) {\n return findBy({ value: rule }, NUMBER_RULES).label;\n } else if (isSingleDate(defaultType)) {\n return findBy({ value: rule }, SINGLE_DATE_OPTIONS).label;\n } else if (isSingleTime(defaultType)) {\n return findBy({ value: rule }, SINGLE_TIME_OPTIONS).label;\n } else if (\n isMulti(defaultType) ||\n isSingle(defaultType) ||\n isTreeSelect(defaultType)\n ) {\n return isRuleEmpty(rule) ? t(\"neetoFilters.rules.isEmpty\") : \"\";\n }\n\n return \"\";\n};\n\nexport const hasOnlyKeywordFilter = filters =>\n filters.length === 1 && filters[0].key === SEARCH_TERM_KEY;\n\nexport const deepCompare = (segments, filters) => {\n const comparisonHelper = filters =>\n sortBy(\n prop(\"key\"),\n removeBy(\n { key: SEARCH_TERM_KEY },\n project([\"key\", \"rule\", \"value\", \"label\"], filters)\n )\n );\n\n return reject(filters => {\n const segment = findBy({ key: filters.key }, segments);\n\n return segment && segment.value === filters.value;\n }, comparisonHelper(filters));\n};\n","import { hyphenate } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Close } from \"neetoicons\";\nimport { Tooltip, Typography } from \"neetoui\";\n\nimport { isRuleEmpty } from \"components/Pane/Item/utils\";\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\n\nimport { buildFilterValue, buildRuleValue } from \"./utils\";\n\nconst Block = ({ filter, handleDelete, setIsPaneOpen }) => {\n const { key, defaultType = filter.type, label, rule, defaultValue } = filter;\n const filterValue = buildFilterValue(filter);\n const ruleContent = buildRuleValue({ rule, defaultType });\n const blockLength = label.length + ruleContent.length + filterValue.length;\n const toolTipDisabled = blockLength <= 50;\n const blockContent = !toolTipDisabled\n ? `${filterValue.slice(0, 50 - blockLength)}...`\n : filterValue;\n\n const deleteBlockHotKeyRef = useHotkeys(\n SHORTCUTS.deleteBlock.sequence,\n () => handleDelete(key),\n { mode: \"scoped\" }\n );\n\n const openFilterPaneHotKeyRef = useHotkeys(\n SHORTCUTS.openFilterPane.sequence,\n () => setIsPaneOpen(key),\n { mode: \"scoped\" }\n );\n\n return (\n <Tooltip\n content={filterValue}\n disabled={toolTipDisabled}\n position=\"bottom\"\n theme=\"light\"\n >\n <div\n className=\"neeto-filters-bar__block\"\n data-cy={`neeto-filters-${hyphenate(key)}-block`}\n tabIndex={0}\n ref={node => {\n deleteBlockHotKeyRef.current = node;\n openFilterPaneHotKeyRef.current = node;\n }}\n onClick={() => setIsPaneOpen(key)}\n >\n <Typography style=\"body2\">{label}:</Typography>\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body2\">\n {ruleContent}\n </Typography>\n {!isRuleEmpty(rule) && (\n <Typography style=\"body2\">{blockContent}</Typography>\n )}\n {!defaultValue && (\n <div className=\"neeto-filters-bar__block-close\">\n <Close\n data-cy={`neeto-filters-${hyphenate(key)}-block-close-btn`}\n size={16}\n strokeWidth={2}\n onClick={event => {\n event.stopPropagation();\n handleDelete(key);\n }}\n />\n </div>\n )}\n </div>\n </Tooltip>\n );\n};\n\nexport default Block;\n","import { hyphenate } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Close } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\n\nconst ChildBlock = ({ childKey, setIsPaneOpen, handleDelete }) => {\n const deleteBlockHotKeyRef = useHotkeys(\n SHORTCUTS.deleteBlock.sequence,\n () => handleDelete(childKey),\n { mode: \"scoped\" }\n );\n\n const openFilterPaneHotKeyRef = useHotkeys(\n SHORTCUTS.openFilterPane.sequence,\n () => setIsPaneOpen(childKey),\n { mode: \"scoped\" }\n );\n\n return (\n <div\n className=\"neeto-filters-bar__block\"\n data-cy={`neeto-filters-${hyphenate(childKey)}-block`}\n tabIndex={0}\n ref={node => {\n deleteBlockHotKeyRef.current = node;\n openFilterPaneHotKeyRef.current = node;\n }}\n onClick={() => setIsPaneOpen(childKey)}\n >\n <Typography style=\"body2\" weight=\"medium\">\n {childKey}\n </Typography>\n <div className=\"neeto-filters-bar__block-close\">\n <Close\n data-cy={`neeto-filters-${hyphenate(childKey)}-block-close-btn`}\n size={16}\n strokeWidth={2}\n onClick={event => {\n event.stopPropagation();\n handleDelete(childKey);\n }}\n />\n </div>\n </div>\n );\n};\n\nexport default ChildBlock;\n","import { Fragment } from \"react\";\n\nimport { isPresent, removeBy } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\nimport { has, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\n\nimport Block from \"./Block\";\nimport ChildBlock from \"./ChildBlock\";\nimport { SEGMENT_ACTIONS } from \"./constants\";\nimport { hasOnlyKeywordFilter } from \"./utils\";\n\nimport { getSnakeCasedQueryParams, isKeywordFilterPresent } from \"../utils\";\n\nconst FilterBar = ({\n entity,\n filters,\n setIsSavePaneOpen,\n setIsPaneOpen,\n childrenKeys,\n nonHiddenFilters,\n childrenFiltersApplied,\n keywordFilter,\n handleApplyFilters,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const searchParams = useQueryParams({ toCamelCase: false });\n\n const handleDelete = key => {\n if (key === SEARCH_TERM_KEY) {\n const params = omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n\n return;\n }\n\n if (childrenKeys.includes(key)) {\n const params = omit([key], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n }\n\n const newFilters = removeBy({ key }, filters);\n handleApplyFilters(newFilters);\n };\n\n const handleClearAll = () => {\n const params = isKeywordFilterPresent(keywordFilter)\n ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams())\n : getSnakeCasedQueryParams();\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n handleApplyFilters([], true);\n };\n\n const hideClearButton =\n nonHiddenFilters.every(\n ({ defaultValue, isClearable }) => defaultValue && !isClearable\n ) && !childrenFiltersApplied;\n\n return (\n <>\n {nonHiddenFilters.map(filter => (\n <Fragment key={filter.key}>\n <Block {...{ filter, handleDelete, setIsPaneOpen }} />\n {filter.suffixComponent?.()}\n <div className=\"neeto-filters-bar--separator\" />\n </Fragment>\n ))}\n {childrenKeys\n .filter(childKey => has(childKey, searchParams))\n .map(childKey => (\n <Fragment key={childKey}>\n <ChildBlock {...{ childKey, handleDelete, setIsPaneOpen }} />\n <div className=\"neeto-filters-bar--separator\" />\n </Fragment>\n ))}\n <div className=\"flex items-center gap-x-2\">\n {isPresent(entity) && !hasOnlyKeywordFilter(filters) && (\n <Button\n data-cy=\"save-segment-button\"\n label={t(\"neetoFilters.segments.saveAsNewSegment\")}\n style=\"secondary\"\n onClick={() => {\n setIsPaneOpen(false);\n setIsSavePaneOpen({ action: SEGMENT_ACTIONS.CREATE });\n }}\n />\n )}\n {!hideClearButton && (\n <Button\n data-cy=\"neeto-filters-bar-clear-btn\"\n label={t(\"neetoFilters.common.clearFilters\")}\n size=\"small\"\n style=\"secondary\"\n onClick={handleClearAll}\n />\n )}\n </div>\n </>\n );\n};\n\nexport default FilterBar;\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { isNotEmpty, noop, removeBy } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { has } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n buildFiltersFromSearchParams,\n buildSegmentsPayload,\n buildUrlFromFilters,\n buildUrlFromSegment,\n getSearchTermFromUrl,\n isKeywordFilterPresent,\n} from \"components/utils\";\nimport {\n useCreateSegment,\n useUpdateSegment,\n} from \"hooks/reactQuery/useSegmentsApi\";\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\n\nimport { SEGMENT_ACTIONS } from \"../constants\";\n\nconst useSegment = ({\n entity,\n keyword,\n columns,\n childrenKeys,\n segmentsBaseUrl,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const initialRenderRef = useRef(true);\n const { segmentId } = useQueryParams();\n\n const [isSavePaneOpen, setIsSavePaneOpen] = useState({ action: undefined });\n\n const { mutate: createSegment, isPending: isCreating } = useCreateSegment();\n const { mutate: updateSegment, isPending: isUpdating } = useUpdateSegment();\n const isSubmitting = isCreating || isUpdating;\n\n const searchParams = useQueryParams({ toCamelCase: false });\n const keywordValue = searchParams[SEARCH_TERM_KEY] || \"\";\n const isEdit = isSavePaneOpen.action === SEGMENT_ACTIONS.EDIT;\n\n const keywordFilter = {\n type: \"text\",\n rule: \"contains\",\n label: t(\"neetoFilters.common.searchTerm\"),\n ...keyword,\n key: SEARCH_TERM_KEY,\n value: keywordValue,\n };\n\n const filters = buildFiltersFromSearchParams(\n isKeywordFilterPresent(keywordFilter) && isNotEmpty(keywordValue)\n ? [keywordFilter, ...columns]\n : columns\n );\n\n const nonHiddenFilters = removeBy({ hidden: true }, filters);\n\n const handleApplyFilters = (newFilters, isClearAll) => {\n const params = buildUrlFromFilters({\n columns,\n filters:\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? [...newFilters, keywordFilter]\n : newFilters,\n ...(isClearAll && { isClearAll: true, childrenKeys }),\n });\n\n history.push({ search: params });\n };\n\n const childrenFiltersApplied = childrenKeys.some(key =>\n has(key, searchParams)\n );\n\n useEffect(() => {\n if (initialRenderRef.current) {\n initialRenderRef.current = false;\n\n return noop;\n }\n\n const handler = setTimeout(() => {\n handleApplyFilters(filters);\n }, 500);\n\n return () => clearTimeout(handler);\n }, [keywordValue]);\n\n const handleCreateSuccess = ({ segment: { id, filters } }) => {\n history.push({\n pathname: segmentsBaseUrl,\n search: buildUrlFromSegment({\n columns,\n filters: filters[0]?.conditions,\n id,\n }),\n });\n setIsSavePaneOpen({ action: undefined });\n showThumbsUpToastr();\n };\n\n const handleCreate = ({ name }, { setFieldError }) => {\n const filtersPayload = buildSegmentsPayload(filters, childrenKeys);\n createSegment(\n { name, entity, filters: filtersPayload },\n {\n onSuccess: handleCreateSuccess,\n onError: error => setFieldError(\"name\", error.response.data.error),\n }\n );\n };\n\n const handleUpdate = ({ name }, { setFieldError }) => {\n const filtersPayload = buildSegmentsPayload(filters, childrenKeys);\n updateSegment(\n { id: segmentId, payload: { name, filters: filtersPayload } },\n {\n onSuccess: () => {\n setIsSavePaneOpen({ action: undefined });\n showThumbsUpToastr();\n },\n onError: error => setFieldError(\"name\", error.response.data.error),\n }\n );\n };\n\n return {\n isEdit,\n filters,\n keywordFilter,\n isSubmitting,\n nonHiddenFilters,\n isSavePaneOpen,\n setIsSavePaneOpen,\n handleApplyFilters,\n childrenFiltersApplied,\n handleSubmit: isEdit ? handleUpdate : handleCreate,\n };\n};\n\nexport default useSegment;\n","import { Fragment } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { findById, isNotEmpty, isNotPresent, removeBy } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { getSnakeCasedQueryParams } from \"components/utils\";\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_SEGMENTS_CACHE, SEGMENT_ACTIONS } from \"./constants\";\nimport { deepCompare } from \"./utils\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst SegmentBar = ({\n entity,\n filters,\n setIsSavePaneOpen,\n setIsPaneOpen,\n handleApplyFilters,\n childrenKeys,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const { segmentId } = useQueryParams();\n const queryClient = useQueryClient();\n\n const cachedSegments =\n queryClient.getQueryData([QUERY_KEYS.SEGMENTS_LIST, entity, \"\"]) ||\n DEFAULT_SEGMENTS_CACHE;\n const segment = findById(segmentId, cachedSegments.segments);\n\n if (isNotPresent(segment)) return null;\n\n const handleDelete = key => {\n if (key === SEARCH_TERM_KEY) {\n const params = omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n\n return;\n }\n\n if (childrenKeys.includes(key)) {\n const params = omit([key], getSnakeCasedQueryParams());\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n }\n\n const newFilters = removeBy({ key }, filters);\n handleApplyFilters(newFilters);\n };\n\n const changedFilters = deepCompare(segment.filters[0].conditions, filters);\n\n return (\n <>\n <Typography\n className=\"neeto-ui-text-gray-600 mr-4 px-2\"\n data-cy=\"neeto-filters-segment-name\"\n style=\"h4\"\n >\n {segment.name}\n </Typography>\n {isNotEmpty(changedFilters) && (\n <>\n <Dropdown\n buttonProps={{ className: \"mr-2\" }}\n buttonStyle=\"secondary\"\n label={t(\"neetoFilters.segments.updateSegment\")}\n >\n <Menu>\n <MenuItem.Button\n onClick={() =>\n setIsSavePaneOpen({ action: SEGMENT_ACTIONS.EDIT })\n }\n >\n {t(\"neetoFilters.segments.updateSegment\")}\n </MenuItem.Button>\n <MenuItem.Button\n onClick={() => {\n setIsPaneOpen(false);\n setIsSavePaneOpen({ action: SEGMENT_ACTIONS.CREATE });\n }}\n >\n {t(\"neetoFilters.segments.saveAsNewSegment\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n {changedFilters.map(filter => (\n <Fragment key={filter.key}>\n <Block {...{ filter, handleDelete, setIsPaneOpen }} />\n {filter.suffixComponent?.()}\n <div className=\"neeto-filters-bar--separator\" />\n </Fragment>\n ))}\n </>\n )}\n </>\n );\n};\n\nexport default SegmentBar;\n","import { useRef } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport classnames from \"classnames\";\nimport { t } from \"i18next\";\nimport { findById, isPresent, noop } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { assoc, identity, isEmpty } from \"ramda\";\n\nimport SegmentForm from \"src/common/SegmentForm\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nimport { DEFAULT_SEGMENTS_CACHE } from \"./constants\";\nimport FilterBar from \"./FilterBar\";\nimport useSegment from \"./hooks/useSegment\";\nimport SegmentBar from \"./SegmentBar\";\n\nconst Bar = ({\n entity,\n className,\n columns = [],\n keyword = { node: \"\", value: \"\", setValue: noop },\n setIsPaneOpen = identity,\n childrenKeys = [],\n // eslint-disable-next-line @bigbinary/neeto/use-translation-hook-in-components\n defaultSegmentName = t(\"neetoFilters.common.allResults\"),\n segmentsBaseUrl = window.location.pathname,\n customFilters,\n}) => {\n const queryClient = useQueryClient();\n const { segmentId } = useQueryParams();\n const segmentFormInitialRef = useRef(null);\n const {\n isEdit,\n filters,\n handleSubmit,\n isSubmitting,\n keywordFilter,\n isSavePaneOpen,\n nonHiddenFilters,\n setIsSavePaneOpen,\n handleApplyFilters,\n childrenFiltersApplied,\n } = useSegment({ entity, keyword, columns, childrenKeys, segmentsBaseUrl });\n\n const BarComponent = segmentId ? SegmentBar : FilterBar;\n\n const cachedSegments =\n queryClient.getQueryData([QUERY_KEYS.SEGMENTS_LIST, entity, \"\"]) ||\n DEFAULT_SEGMENTS_CACHE;\n const segment = findById(segmentId, cachedSegments.segments);\n\n if (isEmpty(nonHiddenFilters) && !childrenFiltersApplied) return null;\n\n return (\n <>\n <div\n className={classnames(\"neeto-filters-bar\", { [className]: className })}\n >\n <BarComponent\n {...{\n childrenFiltersApplied,\n childrenKeys,\n entity,\n filters,\n handleApplyFilters,\n keywordFilter,\n nonHiddenFilters,\n setIsPaneOpen,\n setIsSavePaneOpen,\n }}\n />\n </div>\n <SegmentForm\n {...{\n childrenKeys,\n columns,\n customFilters,\n defaultSegmentName,\n filters,\n handleSubmit,\n isEdit,\n isSubmitting,\n keywordFilter,\n segmentFormInitialRef,\n }}\n isOpen={isPresent(isSavePaneOpen.action)}\n initialValues={\n isEdit\n ? assoc(\"filters\", [{ conditions: filters }], segment)\n : { name: \"\", filters: [{ conditions: filters }] }\n }\n onClose={() => setIsSavePaneOpen({ action: undefined })}\n />\n </>\n );\n};\n\nexport default Bar;\n"],"names":["DEFAULT_SEGMENTS_CACHE","segments","SEGMENT_ACTIONS","EDIT","CREATE","SHORTCUTS","closePane","sequence","description","t","deleteBlock","openFilterPane","buildCustomDateValue","value","isBeforeOrAfter","Math","abs","dayjs","diff","currentMoment","diffWithStart","diffWithEnd","concat","dateFormat","date","subtract","add","map","join","buildFilterValue","filter","_findBy2","_filter$defaultType","defaultType","type","rule","_filter$values","values","initialValues","modify","toString","isDate","isCustomDateRange","isTime","isCustomTimeRange","time","humanize","isMulti","isTreeSelect","_findBy","findBy","label","isSingleDate","isSingleTime","isBoolean","getLabelFromBool","buildRuleValue","_ref","isText","TEXT_RULES","isDigit","NUMBER_RULES","SINGLE_DATE_OPTIONS","SINGLE_TIME_OPTIONS","isSingle","isRuleEmpty","hasOnlyKeywordFilter","filters","length","key","SEARCH_TERM_KEY","deepCompare","comparisonHelper","sortBy","prop","removeBy","project","reject","segment","Block","handleDelete","setIsPaneOpen","defaultValue","filterValue","ruleContent","blockLength","toolTipDisabled","blockContent","slice","deleteBlockHotKeyRef","useHotkeys","mode","openFilterPaneHotKeyRef","_jsx","Tooltip","content","disabled","position","theme","children","_jsxs","className","hyphenate","tabIndex","ref","node","current","onClick","Typography","style","Close","size","strokeWidth","event","stopPropagation","ChildBlock","childKey","weight","FilterBar","entity","setIsSavePaneOpen","childrenKeys","nonHiddenFilters","childrenFiltersApplied","keywordFilter","handleApplyFilters","_useTranslation","useTranslation","history","useHistory","searchParams","useQueryParams","toCamelCase","params","omit","getSnakeCasedQueryParams","pathname","window","location","push","buildUrl","includes","newFilters","handleClearAll","isKeywordFilterPresent","hideClearButton","every","_ref2","isClearable","_Fragment","_filter$suffixCompone","Fragment","suffixComponent","call","has","isPresent","Button","action","useSegment","keyword","columns","segmentsBaseUrl","initialRenderRef","useRef","_useQueryParams","segmentId","_useState","useState","undefined","_useState2","_slicedToArray","isSavePaneOpen","_useCreateSegment","useCreateSegment","createSegment","mutate","isCreating","isPending","_useUpdateSegment","useUpdateSegment","updateSegment","isUpdating","isSubmitting","keywordValue","isEdit","_objectSpread","buildFiltersFromSearchParams","isNotEmpty","_toConsumableArray","hidden","isClearAll","buildUrlFromFilters","getSearchTermFromUrl","search","some","useEffect","noop","handler","setTimeout","clearTimeout","handleCreateSuccess","_filters$","_ref2$segment","id","buildUrlFromSegment","conditions","showThumbsUpToastr","handleCreate","_ref3","_ref4","name","setFieldError","filtersPayload","buildSegmentsPayload","onSuccess","onError","error","response","data","handleUpdate","_ref5","_ref6","payload","handleSubmit","Menu","Dropdown","MenuItem","SegmentBar","queryClient","useQueryClient","cachedSegments","getQueryData","QUERY_KEYS","SEGMENTS_LIST","findById","isNotPresent","changedFilters","buttonProps","buttonStyle","Bar","_ref$columns","_ref$keyword","setValue","_ref$setIsPaneOpen","identity","_ref$childrenKeys","_ref$defaultSegmentNa","defaultSegmentName","_ref$segmentsBaseUrl","customFilters","segmentFormInitialRef","_useSegment","BarComponent","isEmpty","classnames","_defineProperty","SegmentForm","isOpen","assoc","onClose"],"mappings":"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"}