@bigbinary/neeto-filters-frontend 3.0.8 → 3.0.10

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.
package/README.md CHANGED
@@ -34,7 +34,9 @@ The engine is used to manage filters across neeto products.
34
34
  ```
35
35
  4. Execute the following command to generate the migration to generate the `neeto_filters_engine_segments` table.
36
36
  ```zsh
37
- rails g neeto_filters_engine:install
37
+ bundle exec rails neeto_filters_engine:install:migrations
38
+
39
+ bundle exec rails db:migrate
38
40
  ```
39
41
  5. Add the following line to `models/organization.rb` file.
40
42
  ```ruby
@@ -303,6 +305,20 @@ const selectedFields = ["name", "age"];
303
305
  const filterColumns = buildFilterColumnsFromFields({ fields, selectedFields });
304
306
 
305
307
  ```
308
+
309
+ #### 4. `useFetchSegments`([source code](https://github.com/bigbinary/neeto-filters-nano/blob/b6421775adb20ba859609e71610fad944492147e/app/javascript/src/hooks/reactQuery/useSegmentsApi.js#L10-L18))
310
+
311
+ The `useFetchSegments` hook is used to fetch the array of segments based on the provided `entity`.
312
+
313
+ #### Parameters
314
+
315
+ - `entity`: The entity associated with the segments to be fetched.
316
+ - `searchTerm`: The search term for fetching the segments filtered by names containing the search term.
317
+
318
+ ```js
319
+ const { data: segments = [], isLoading } = useFetchSegments({ entity: "User" });
320
+ ```
321
+
306
322
  ## Basic Usage
307
323
 
308
324
  Here is an example of how to use the `neeto-filters-engine` gem assuming that the
package/dist/index.cjs.js CHANGED
@@ -123,21 +123,6 @@ function _defineProperty(obj, key, value) {
123
123
  return obj;
124
124
  }
125
125
 
126
- var SHORTCUTS = {
127
- closePane: {
128
- sequence: "escape",
129
- description: i18next.t("neetoFilters.shortcuts.closePane")
130
- },
131
- deleteBlock: {
132
- sequence: "backspace",
133
- description: i18next.t("neetoFilters.shortcuts.deleteBlock")
134
- },
135
- openFilterPane: {
136
- sequence: "enter",
137
- description: i18next.t("neetoFilters.shortcuts.openFilterPane")
138
- }
139
- };
140
-
141
126
  var SEGMENTS_BASE_URL = "/neeto_filters/segments";
142
127
  var DATE_OPTIONS = [{
143
128
  label: "Today",
@@ -217,6 +202,23 @@ var DATE_RULES = {
217
202
  yesterday: "on",
218
203
  "all-time": "before"
219
204
  };
205
+ var SEARCH_TERM_KEY = "search_term";
206
+ var SEGMENT_ID_KEY = "segment_id";
207
+
208
+ var SHORTCUTS = {
209
+ closePane: {
210
+ sequence: "escape",
211
+ description: i18next.t("neetoFilters.shortcuts.closePane")
212
+ },
213
+ deleteBlock: {
214
+ sequence: "backspace",
215
+ description: i18next.t("neetoFilters.shortcuts.deleteBlock")
216
+ },
217
+ openFilterPane: {
218
+ sequence: "enter",
219
+ description: i18next.t("neetoFilters.shortcuts.openFilterPane")
220
+ }
221
+ };
220
222
 
221
223
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
222
224
 
@@ -372,6 +374,11 @@ var standardizeColumnType = function standardizeColumnType(kind) {
372
374
  }
373
375
  return kind;
374
376
  };
377
+ var getSnakeCasedQueryParams = function getSnakeCasedQueryParams() {
378
+ return utils.getQueryParams({
379
+ toCamelCase: false
380
+ });
381
+ };
375
382
  var isBoolean = function isBoolean(type) {
376
383
  return type === "boolean" || type === "custom.boolean";
377
384
  };
@@ -516,7 +523,7 @@ var buildUpdatedFilter = function buildUpdatedFilter(_ref8) {
516
523
  };
517
524
  var buildFiltersFromSearchParams = function buildFiltersFromSearchParams(columns) {
518
525
  var skipEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
519
- var searchParams = utils.getQueryParams();
526
+ var searchParams = getSnakeCasedQueryParams();
520
527
  return columns.map(function (column) {
521
528
  var value = searchParams[column.key];
522
529
  var defaultType = column.defaultType || column.type;
@@ -526,7 +533,7 @@ var buildFiltersFromSearchParams = function buildFiltersFromSearchParams(columns
526
533
  }, column);
527
534
  } else if (ramda.isNil(value) || value === "" || column.key === "keyword") {
528
535
  return null;
529
- } else if (column.key === "search_term") {
536
+ } else if (column.key === SEARCH_TERM_KEY) {
530
537
  if (ramda.isNil(column.node)) return null;
531
538
  return ramda.mergeLeft({
532
539
  value: value,
@@ -683,7 +690,7 @@ var buildFiltersPayload = function buildFiltersPayload(filters) {
683
690
  var payload = neetoCist.removeBy({
684
691
  value: ""
685
692
  }, filters).map(function (filter) {
686
- if (filter.key === "search_term" && isMultiModelFilter(filter)) {
693
+ if (filter.key === SEARCH_TERM_KEY && isMultiModelFilter(filter)) {
687
694
  return splitFilter(filter);
688
695
  }
689
696
  var filterPayload = ramda.omit(["key", "label", "values", "setValue"], filter);
@@ -717,14 +724,14 @@ var buildSegmentsPayload = function buildSegmentsPayload(filters) {
717
724
  var payload = neetoCist.removeBy({
718
725
  value: ""
719
726
  }, filters).map(function (filter) {
720
- if (filter.key === "search_term") {
727
+ if (filter.key === SEARCH_TERM_KEY) {
721
728
  return false;
722
729
  }
723
730
  var filterPayload = ramda.omit(["label", "values", "setValue", "defaultValue"], filter);
724
731
  var _filterPayload$defaul2 = filterPayload.defaultType,
725
732
  defaultType = _filterPayload$defaul2 === void 0 ? filterPayload.type : _filterPayload$defaul2,
726
733
  value = filterPayload.value;
727
- if (filter.key !== "search_term" && isMultiModelFilter(filterPayload)) {
734
+ if (filter.key !== SEARCH_TERM_KEY && isMultiModelFilter(filterPayload)) {
728
735
  throw i18next__default["default"].t("neetoFilters.errors.cannotPassMultipleModels");
729
736
  }
730
737
  if (isMulti(defaultType)) {
@@ -734,7 +741,7 @@ var buildSegmentsPayload = function buildSegmentsPayload(filters) {
734
741
  }
735
742
  return filterPayload;
736
743
  });
737
- var searchParams = utils.getQueryParams();
744
+ var searchParams = getSnakeCasedQueryParams();
738
745
  var modifiedPayload = childrenKeys.reduce(function (acc, key) {
739
746
  if (ramda.has(key, searchParams)) {
740
747
  var filterPayload = {
@@ -756,7 +763,7 @@ var buildFiltersFromURL = function buildFiltersFromURL(columns) {
756
763
  })));
757
764
  };
758
765
  var buildSelectorsFromURL = function buildSelectorsFromURL(columns) {
759
- var searchParams = utils.getQueryParams();
766
+ var searchParams = getSnakeCasedQueryParams();
760
767
  var selectors = {};
761
768
  columns.filter(function (_ref9) {
762
769
  var node = _ref9.node;
@@ -827,7 +834,7 @@ var createUrlParamString = function createUrlParamString(_ref15) {
827
834
  _filter$defaultType = filter.defaultType,
828
835
  defaultType = _filter$defaultType === void 0 ? filter.type : _filter$defaultType,
829
836
  rule = filter.rule;
830
- if (key === "search_term") {
837
+ if (key === SEARCH_TERM_KEY) {
831
838
  return value;
832
839
  } else if (isDigit(defaultType) || isText(defaultType)) {
833
840
  return "".concat(value, "+rule-").concat(rule);
@@ -852,9 +859,9 @@ var buildUrlFromFilters = function buildUrlFromFilters(_ref16) {
852
859
  isClearAll = _ref16$isClearAll === void 0 ? false : _ref16$isClearAll,
853
860
  _ref16$childrenKeys = _ref16.childrenKeys,
854
861
  childrenKeys = _ref16$childrenKeys === void 0 ? [] : _ref16$childrenKeys;
855
- var searchParams = utils.getQueryParams();
862
+ var searchParams = getSnakeCasedQueryParams();
856
863
  var isKeywordFilterPresent = neetoCist.findBy({
857
- key: "search_term"
864
+ key: SEARCH_TERM_KEY
858
865
  }, filters);
859
866
  columns.forEach(function (_ref17) {
860
867
  var key = _ref17.key,
@@ -865,18 +872,18 @@ var buildUrlFromFilters = function buildUrlFromFilters(_ref16) {
865
872
  childrenKeys.forEach(function (key) {
866
873
  return delete searchParams[key];
867
874
  });
868
- delete searchParams["segmentId"];
875
+ delete searchParams[SEGMENT_ID_KEY];
869
876
  }
870
877
  var defaultFilters = buildDefaultFilters(columns, filters);
871
- isKeywordFilterPresent && delete searchParams["search_term"];
878
+ isKeywordFilterPresent && delete searchParams[SEARCH_TERM_KEY];
872
879
  ramda.concat(filters, defaultFilters).forEach(function (filter) {
873
880
  searchParams[filter.key] = createUrlParamString({
874
881
  filter: filter,
875
882
  columns: columns
876
883
  });
877
884
  });
878
- if (ramda.isEmpty(ramda.omit(["segmentId"], searchParams))) {
879
- delete searchParams["segmentId"];
885
+ if (ramda.isEmpty(ramda.omit([SEGMENT_ID_KEY], searchParams))) {
886
+ delete searchParams[SEGMENT_ID_KEY];
880
887
  }
881
888
  return new URLSearchParams(searchParams).toString();
882
889
  };
@@ -898,33 +905,33 @@ var buildUrlFromSegment = function buildUrlFromSegment(_ref19) {
898
905
  var columns = _ref19.columns,
899
906
  filters = _ref19.filters,
900
907
  id = _ref19.id;
901
- var searchParams = utils.getQueryParams();
908
+ var searchParams = getSnakeCasedQueryParams();
902
909
  columns.forEach(function (_ref20) {
903
910
  var key = _ref20.key,
904
911
  defaultValue = _ref20.defaultValue;
905
912
  return !defaultValue && delete searchParams[key];
906
913
  });
914
+ delete searchParams[SEARCH_TERM_KEY];
907
915
  var defaultFilters = buildDefaultFilters(columns, filters);
908
- delete searchParams["searchTerm"];
909
- ramda.concat(filters, defaultFilters).forEach(function (filter) {
910
- neetoCist.isNotEmpty(id) && (searchParams["segmentId"] = id);
911
- searchParams[filter.key] = createUrlParamStringForSegments({
916
+ var newSearchParams = ramda.concat(filters, defaultFilters).reduce(function (acc, filter) {
917
+ acc[filter.key] = createUrlParamStringForSegments({
912
918
  filter: filter,
913
919
  columns: columns
914
920
  });
915
- });
916
- return new URLSearchParams(searchParams).toString();
921
+ return acc;
922
+ }, neetoCist.isNotEmpty(id) ? _defineProperty({}, SEGMENT_ID_KEY, id) : {});
923
+ return new URLSearchParams(_objectSpread$4(_objectSpread$4({}, searchParams), newSearchParams)).toString();
917
924
  };
918
925
  var getSearchTermFromUrl = function getSearchTermFromUrl() {
919
- return utils.getQueryParams()["search_term"] || "";
920
- };
921
- var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(_ref21) {
922
- var fields = _ref21.fields,
923
- _ref21$selectedFields = _ref21.selectedFields,
924
- selectedFields = _ref21$selectedFields === void 0 ? [] : _ref21$selectedFields,
925
- _ref21$showRuleSelect = _ref21.showRuleSelector,
926
- showRuleSelector = _ref21$showRuleSelect === void 0 ? false : _ref21$showRuleSelect,
927
- groupName = _ref21.groupName;
926
+ return utils.getQueryParams().searchTerm || "";
927
+ };
928
+ var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(_ref22) {
929
+ var fields = _ref22.fields,
930
+ _ref22$selectedFields = _ref22.selectedFields,
931
+ selectedFields = _ref22$selectedFields === void 0 ? [] : _ref22$selectedFields,
932
+ _ref22$showRuleSelect = _ref22.showRuleSelector,
933
+ showRuleSelector = _ref22$showRuleSelect === void 0 ? false : _ref22$showRuleSelect,
934
+ groupName = _ref22.groupName;
928
935
  return fields.reduce(function (columns, field) {
929
936
  if (ramda.isEmpty(selectedFields) || selectedFields.includes(field.name)) {
930
937
  var id = field.id,
@@ -1034,7 +1041,7 @@ var buildRuleValue = function buildRuleValue(_ref) {
1034
1041
  return "";
1035
1042
  };
1036
1043
  var hasOnlyKeywordFilter = function hasOnlyKeywordFilter(filters) {
1037
- return filters.length === 1 && filters[0].key === "search_term";
1044
+ return filters.length === 1 && filters[0].key === SEARCH_TERM_KEY;
1038
1045
  };
1039
1046
 
1040
1047
  var Block = function Block(_ref) {
@@ -1072,7 +1079,7 @@ var Block = function Block(_ref) {
1072
1079
  theme: "light"
1073
1080
  }, /*#__PURE__*/React__default["default"].createElement("div", {
1074
1081
  className: "neeto-filters-bar__block",
1075
- "data-cy": "neeto-filters-".concat(key, "-block"),
1082
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-block"),
1076
1083
  tabIndex: 0,
1077
1084
  ref: function ref(node) {
1078
1085
  deleteBlockHotKeyRef.current = node;
@@ -1091,7 +1098,7 @@ var Block = function Block(_ref) {
1091
1098
  }, blockContent), !defaultValue && /*#__PURE__*/React__default["default"].createElement("div", {
1092
1099
  className: "neeto-filters-bar__block-close"
1093
1100
  }, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Close, {
1094
- "data-cy": "neeto-filters-".concat(key, "-block-close-btn"),
1101
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-block-close-btn"),
1095
1102
  size: 16,
1096
1103
  strokeWidth: 2,
1097
1104
  onClick: function onClick(event) {
@@ -1117,7 +1124,7 @@ var ChildBlock = function ChildBlock(_ref) {
1117
1124
  });
1118
1125
  return /*#__PURE__*/React__default["default"].createElement("div", {
1119
1126
  className: "neeto-filters-bar__block",
1120
- "data-cy": "neeto-filters-".concat(childKey, "-block"),
1127
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(childKey), "-block"),
1121
1128
  tabIndex: 0,
1122
1129
  ref: function ref(node) {
1123
1130
  deleteBlockHotKeyRef.current = node;
@@ -1132,7 +1139,7 @@ var ChildBlock = function ChildBlock(_ref) {
1132
1139
  }, childKey), /*#__PURE__*/React__default["default"].createElement("div", {
1133
1140
  className: "neeto-filters-bar__block-close"
1134
1141
  }, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Close, {
1135
- "data-cy": "neeto-filters-".concat(childKey, "-block-close-btn"),
1142
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(childKey), "-block-close-btn"),
1136
1143
  size: 16,
1137
1144
  strokeWidth: 2,
1138
1145
  onClick: function onClick(event) {
@@ -1402,14 +1409,16 @@ var Bar = function Bar(_ref) {
1402
1409
  var _useTranslation = reactI18next.useTranslation(),
1403
1410
  t = _useTranslation.t;
1404
1411
  var initialRenderRef = React.useRef(true);
1405
- var searchParams = reactUtils.useQueryParams();
1406
- var keywordValue = searchParams.search_term || "";
1412
+ var searchParams = reactUtils.useQueryParams({
1413
+ toCamelCase: false
1414
+ });
1415
+ var keywordValue = searchParams[SEARCH_TERM_KEY] || "";
1407
1416
  var keywordFilter = _objectSpread$2(_objectSpread$2({
1408
1417
  type: "text",
1409
1418
  rule: "contains",
1410
1419
  label: t("neetoFilters.common.searchTerm")
1411
1420
  }, keyword), {}, {
1412
- key: "search_term",
1421
+ key: SEARCH_TERM_KEY,
1413
1422
  value: keywordValue
1414
1423
  });
1415
1424
  var filters = buildFiltersFromSearchParams(isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
@@ -1430,14 +1439,14 @@ var Bar = function Bar(_ref) {
1430
1439
  });
1431
1440
  };
1432
1441
  var handleDelete = function handleDelete(key) {
1433
- if (key === "search_term") {
1434
- var params = ramda.omit(["search_term"], utils.getQueryParams());
1442
+ if (key === SEARCH_TERM_KEY) {
1443
+ var params = ramda.omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());
1435
1444
  var pathname = window.location.pathname;
1436
1445
  history.push(utils.buildUrl(pathname, params));
1437
1446
  return;
1438
1447
  }
1439
1448
  if (childrenKeys.includes(key)) {
1440
- var _params = ramda.omit([key], utils.getQueryParams());
1449
+ var _params = ramda.omit([key], getSnakeCasedQueryParams());
1441
1450
  var _pathname = window.location.pathname;
1442
1451
  history.push(utils.buildUrl(_pathname, _params));
1443
1452
  }
@@ -1447,7 +1456,7 @@ var Bar = function Bar(_ref) {
1447
1456
  handleSubmit(newFilters);
1448
1457
  };
1449
1458
  var handleClearAll = function handleClearAll() {
1450
- var params = isKeywordFilterPresent(keywordFilter) ? ramda.omit(["search_term"], utils.getQueryParams()) : utils.getQueryParams();
1459
+ var params = isKeywordFilterPresent(keywordFilter) ? ramda.omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams()) : getSnakeCasedQueryParams();
1451
1460
  var pathname = window.location.pathname;
1452
1461
  history.push(utils.buildUrl(pathname, params));
1453
1462
  handleSubmit([], true);
@@ -2482,7 +2491,7 @@ var useFilters = function useFilters(_ref) {
2482
2491
  };
2483
2492
  var handleChangesInURL = function handleChangesInURL() {
2484
2493
  var defaultFilters = buildDefaultFilters(columns, filters);
2485
- var searchParams = utils.getQueryParams();
2494
+ var searchParams = getSnakeCasedQueryParams();
2486
2495
  var keys = ramda.pluck("key", ramda.append(keywordFilter, columns));
2487
2496
  if (keys.every(function (key) {
2488
2497
  return ramda.isNil(searchParams[key]);
@@ -2643,10 +2652,10 @@ var Boolean = function Boolean(_ref) {
2643
2652
  options: options,
2644
2653
  value: value,
2645
2654
  isClearable: true,
2646
- "data-cy": "neeto-filters-".concat(key, "-filter"),
2655
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
2647
2656
  strategy: "fixed",
2648
2657
  placeholder: t("neetoFilters.messages.selectOption", {
2649
- resource: label.toLocaleLowerCase()
2658
+ resource: label
2650
2659
  }),
2651
2660
  onChange: handleChange
2652
2661
  }, otherProps));
@@ -2714,16 +2723,16 @@ var Datetime = function Datetime(_ref) {
2714
2723
  autoFocus: autoFocus,
2715
2724
  label: label,
2716
2725
  isClearable: true,
2717
- "data-cy": "neeto-filters-".concat(key, "-filter"),
2726
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
2718
2727
  options: DATE_OPTIONS,
2719
2728
  strategy: "fixed",
2720
2729
  value: selectedRule,
2721
2730
  placeholder: t("neetoFilters.messages.selectResource", {
2722
- resource: label.toLocaleLowerCase()
2731
+ resource: label
2723
2732
  }),
2724
2733
  onChange: handleChange
2725
2734
  }), isDatePickerShown && /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({
2726
- "data-cy": "neeto-filters-".concat(key, "-date-range"),
2735
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-date-range"),
2727
2736
  getPopupContainer: ramda.prop("parentNode"),
2728
2737
  type: (selectedRule === null || selectedRule === void 0 ? void 0 : selectedRule.value) === "custom-date-range" ? "range" : "date",
2729
2738
  value: getDateValue(filter === null || filter === void 0 ? void 0 : filter.value, selectedRule),
@@ -2777,12 +2786,12 @@ var Dropdown = function Dropdown(_ref) {
2777
2786
  label: label,
2778
2787
  options: options,
2779
2788
  value: value,
2780
- "data-cy": "neeto-filters-".concat(key, "-filter"),
2789
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
2781
2790
  isClearable: !defaultValue && isClearable,
2782
2791
  isMulti: isMulti(defaultType),
2783
2792
  strategy: "fixed",
2784
2793
  placeholder: t("neetoFilters.messages.selectResource", {
2785
- resource: label.toLocaleLowerCase()
2794
+ resource: label
2786
2795
  }),
2787
2796
  onChange: handleChange
2788
2797
  }, otherProps));
@@ -2856,7 +2865,7 @@ var SingleDatetime = function SingleDatetime(_ref) {
2856
2865
  className: "neeto-filters-pane-filter__item-wrapper"
2857
2866
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Select, {
2858
2867
  label: label,
2859
- "data-cy": "neeto-filters-".concat(key, "-filter-rule"),
2868
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter-rule"),
2860
2869
  defaultValue: SINGLE_DATE_OPTIONS[0],
2861
2870
  options: SINGLE_DATE_OPTIONS,
2862
2871
  strategy: "fixed",
@@ -2865,7 +2874,7 @@ var SingleDatetime = function SingleDatetime(_ref) {
2865
2874
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({
2866
2875
  autoFocus: autoFocus,
2867
2876
  value: value,
2868
- "data-cy": "neeto-filters-".concat(key, "-filter"),
2877
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
2869
2878
  getPopupContainer: ramda.prop("parentNode"),
2870
2879
  type: datePickerType,
2871
2880
  onChange: handleChange
@@ -2941,7 +2950,7 @@ var SingleTime = function SingleTime(_ref) {
2941
2950
  value: value,
2942
2951
  use12Hours: true,
2943
2952
  className: "w-full",
2944
- "data-cy": "neeto-filters-".concat(key, "-filter"),
2953
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
2945
2954
  format: "h:mm A",
2946
2955
  getPopupContainer: ramda.prop("parentNode"),
2947
2956
  type: timePickerType,
@@ -3023,7 +3032,7 @@ var Text = function Text(_ref) {
3023
3032
  className: "neeto-filters-pane-filter__item-wrapper"
3024
3033
  }, showRuleSelector && /*#__PURE__*/React__default["default"].createElement(neetoui.Select, {
3025
3034
  label: label,
3026
- "data-cy": "neeto-filters-".concat(key, "-filter-rule"),
3035
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter-rule"),
3027
3036
  defaultValue: ruleOptions[0],
3028
3037
  options: ruleOptions,
3029
3038
  strategy: "fixed",
@@ -3031,12 +3040,12 @@ var Text = function Text(_ref) {
3031
3040
  onChange: handleRuleChange
3032
3041
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({
3033
3042
  autoFocus: autoFocus,
3034
- "data-cy": "neeto-filters-".concat(key, "-filter"),
3043
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
3035
3044
  label: !showRuleSelector && label,
3036
3045
  type: inputType,
3037
3046
  value: inputValue,
3038
3047
  placeholder: t("neetoFilters.messages.enterResource", {
3039
- resource: label.toLocaleLowerCase()
3048
+ resource: label
3040
3049
  }),
3041
3050
  onChange: function onChange(event) {
3042
3051
  return setInputValue(event.target.value);
@@ -3092,16 +3101,16 @@ var Time = function Time(_ref) {
3092
3101
  label: label,
3093
3102
  value: value,
3094
3103
  isClearable: true,
3095
- "data-cy": "neeto-filters-".concat(key, "-filter"),
3104
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
3096
3105
  options: TIME_OPTIONS,
3097
3106
  strategy: "fixed",
3098
3107
  placeholder: t("neetoFilters.messages.selectResource", {
3099
- resource: label.toLocaleLowerCase()
3108
+ resource: label
3100
3109
  }),
3101
3110
  onChange: handleChange
3102
3111
  }), isCustomTimeRangeShown && /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({
3103
3112
  use12Hours: true,
3104
- "data-cy": "neeto-filters-".concat(key, "-date-range"),
3113
+ "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-date-range"),
3105
3114
  format: "h:mm A",
3106
3115
  getPopupContainer: ramda.prop("parentNode"),
3107
3116
  type: "range",
@@ -3208,7 +3217,9 @@ var Pane = function Pane(_ref) {
3208
3217
  childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
3209
3218
  children = _ref.children,
3210
3219
  otherProps = _objectWithoutProperties(_ref, _excluded);
3211
- var searchParams = reactUtils.useQueryParams();
3220
+ var searchParams = reactUtils.useQueryParams({
3221
+ toCamelCase: false
3222
+ });
3212
3223
  var _useState = React.useState(""),
3213
3224
  _useState2 = _slicedToArray(_useState, 2),
3214
3225
  searchTerm = _useState2[0],
@@ -3232,8 +3243,8 @@ var Pane = function Pane(_ref) {
3232
3243
  rule: "contains",
3233
3244
  label: t("neetoFilters.common.searchTerm")
3234
3245
  }, keyword), {}, {
3235
- key: "search_term",
3236
- value: searchParams.search_term || ""
3246
+ key: SEARCH_TERM_KEY,
3247
+ value: searchParams[SEARCH_TERM_KEY] || ""
3237
3248
  });
3238
3249
  var filters = useFilters({
3239
3250
  onFiltersChange: onChange,
@@ -3255,7 +3266,7 @@ var Pane = function Pane(_ref) {
3255
3266
  });
3256
3267
  };
3257
3268
  var handleClearAll = function handleClearAll() {
3258
- var params = isKeywordFilterPresent(keywordFilter) ? ramda.omit(["search_term"], utils.getQueryParams()) : utils.getQueryParams();
3269
+ var params = isKeywordFilterPresent(keywordFilter) ? ramda.omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams()) : getSnakeCasedQueryParams();
3259
3270
  var pathname = window.location.pathname;
3260
3271
  history.push(utils.buildUrl(pathname, params));
3261
3272
  handleChange([], true);
@@ -3594,23 +3605,20 @@ var ITEMS_MAX_COUNT = 20;
3594
3605
 
3595
3606
  var MenuBlocks = function MenuBlocks(_ref) {
3596
3607
  var entity = _ref.entity,
3597
- searchTerm = _ref.searchTerm,
3598
3608
  columns = _ref.columns,
3599
3609
  defaultSegmentName = _ref.defaultSegmentName;
3600
3610
  var _useState = React.useState(false),
3601
3611
  _useState2 = _slicedToArray(_useState, 2),
3602
3612
  showAll = _useState2[0],
3603
3613
  setShowAll = _useState2[1];
3604
- var location = reactRouterDom.useLocation();
3605
3614
  var history = reactRouterDom.useHistory();
3606
3615
  var _useTranslation = reactI18next.useTranslation(),
3607
3616
  t = _useTranslation.t;
3608
- var _Object$fromEntries = Object.fromEntries(new URLSearchParams(location.search)),
3609
- segmentId = _Object$fromEntries.segmentId;
3617
+ var _getQueryParams = utils.getQueryParams(),
3618
+ segmentId = _getQueryParams.segmentId;
3610
3619
  var appliedFilters = buildFiltersFromURL(columns);
3611
3620
  var _useFetchSegments = useFetchSegments({
3612
- entity: entity,
3613
- searchTerm: searchTerm
3621
+ entity: entity
3614
3622
  }),
3615
3623
  _useFetchSegments$dat = _useFetchSegments.data,
3616
3624
  segments = _useFetchSegments$dat === void 0 ? [] : _useFetchSegments$dat,
@@ -3694,34 +3702,13 @@ var Segments = function Segments(_ref) {
3694
3702
  _ref$defaultSegmentNa = _ref.defaultSegmentName,
3695
3703
  defaultSegmentName = _ref$defaultSegmentNa === void 0 ? i18next.t("neetoFilters.common.allResults") : _ref$defaultSegmentNa;
3696
3704
  return function () {
3697
- var _useState = React.useState(""),
3705
+ var _useState = React.useState(false),
3698
3706
  _useState2 = _slicedToArray(_useState, 2),
3699
- searchTerm = _useState2[0],
3700
- setSearchTerm = _useState2[1];
3701
- var _useState3 = React.useState(true),
3702
- _useState4 = _slicedToArray(_useState3, 2),
3703
- isSearchCollapsed = _useState4[0],
3704
- setIsSearchCollapsed = _useState4[1];
3705
- var _useState5 = React.useState(false),
3706
- _useState6 = _slicedToArray(_useState5, 2),
3707
- isSegmentsPaneOpen = _useState6[0],
3708
- setIsSegmentsPaneOpen = _useState6[1];
3707
+ isSegmentsPaneOpen = _useState2[0],
3708
+ setIsSegmentsPaneOpen = _useState2[1];
3709
3709
  var _useTranslation = reactI18next.useTranslation(),
3710
3710
  t = _useTranslation.t;
3711
- var debouncedSearchTerm = reactUtils.useDebounce(searchTerm);
3712
3711
  var iconProps = [{
3713
- icon: neetoIcons.Search,
3714
- onClick: function onClick() {
3715
- setSearchTerm("");
3716
- setIsSearchCollapsed(function (collapsed) {
3717
- return !collapsed;
3718
- });
3719
- },
3720
- tooltipProps: {
3721
- content: t("neetoFilters.segments.searchSegments"),
3722
- position: "top"
3723
- }
3724
- }, {
3725
3712
  icon: neetoIcons.Settings,
3726
3713
  onClick: function onClick() {
3727
3714
  setIsFilterPaneOpen(false);
@@ -3739,24 +3726,10 @@ var Segments = function Segments(_ref) {
3739
3726
  style: "h5",
3740
3727
  textTransform: "uppercase",
3741
3728
  weight: "bold"
3742
- }, t("neetoFilters.common.segments"))), /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Search, {
3743
- autoFocus: true,
3744
- isCollapsed: isSearchCollapsed,
3745
- placeholder: t("neetoFilters.segments.searchSegments"),
3746
- value: searchTerm,
3747
- onChange: function onChange(_ref2) {
3748
- var value = _ref2.target.value;
3749
- return setSearchTerm(value);
3750
- },
3751
- onCollapse: function onCollapse() {
3752
- setSearchTerm("");
3753
- setIsSearchCollapsed(true);
3754
- }
3755
- }), /*#__PURE__*/React__default["default"].createElement(MenuBlocks$1, {
3729
+ }, t("neetoFilters.common.segments"))), /*#__PURE__*/React__default["default"].createElement(MenuBlocks$1, {
3756
3730
  columns: columns,
3757
3731
  defaultSegmentName: defaultSegmentName,
3758
- entity: entity,
3759
- searchTerm: debouncedSearchTerm
3732
+ entity: entity
3760
3733
  }), /*#__PURE__*/React__default["default"].createElement(ManagePane, {
3761
3734
  columns: columns,
3762
3735
  defaultSegmentName: defaultSegmentName,
@@ -3776,4 +3749,5 @@ exports.Segments = index;
3776
3749
  exports.buildFilterColumnsFromFields = buildFilterColumnsFromFields;
3777
3750
  exports.buildFiltersFromURL = buildFiltersFromURL;
3778
3751
  exports.buildSelectorsFromURL = buildSelectorsFromURL;
3752
+ exports.useFetchSegments = useFetchSegments;
3779
3753
  //# sourceMappingURL=index.cjs.js.map