@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 +17 -1
- package/dist/index.cjs.js +98 -124
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +100 -127
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/types.d.ts +12 -0
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
|
|
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 =
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 !==
|
|
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 =
|
|
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 =
|
|
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 ===
|
|
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 =
|
|
862
|
+
var searchParams = getSnakeCasedQueryParams();
|
|
856
863
|
var isKeywordFilterPresent = neetoCist.findBy({
|
|
857
|
-
key:
|
|
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[
|
|
875
|
+
delete searchParams[SEGMENT_ID_KEY];
|
|
869
876
|
}
|
|
870
877
|
var defaultFilters = buildDefaultFilters(columns, filters);
|
|
871
|
-
isKeywordFilterPresent && delete searchParams[
|
|
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([
|
|
879
|
-
delete searchParams[
|
|
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 =
|
|
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
|
-
|
|
909
|
-
|
|
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
|
-
|
|
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()
|
|
920
|
-
};
|
|
921
|
-
var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(
|
|
922
|
-
var fields =
|
|
923
|
-
|
|
924
|
-
selectedFields =
|
|
925
|
-
|
|
926
|
-
showRuleSelector =
|
|
927
|
-
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 ===
|
|
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
|
-
|
|
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:
|
|
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 ===
|
|
1434
|
-
var params = ramda.omit([
|
|
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],
|
|
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([
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
3236
|
-
value: searchParams
|
|
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([
|
|
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
|
|
3609
|
-
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
|
-
|
|
3700
|
-
|
|
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(
|
|
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
|