@bigbinary/neeto-filters-frontend 3.0.9 → 3.0.11
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/dist/index.cjs.js +101 -87
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +102 -88
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect, useTransition, useMemo } from 'react';
|
|
2
2
|
import classnames from 'classnames';
|
|
3
3
|
import i18next, { t as t$1 } from 'i18next';
|
|
4
|
-
import { capitalize, removeBy, findBy, isNotEmpty, humanize, noop as noop$1, toLabelAndValue, replaceBy, isPresent, existsBy, isNotPresent, filterBy } from '@bigbinary/neeto-cist';
|
|
4
|
+
import { capitalize, removeBy, findBy, isNotEmpty, humanize, hyphenate, noop as noop$1, toLabelAndValue, replaceBy, isPresent, existsBy, isNotPresent, filterBy } from '@bigbinary/neeto-cist';
|
|
5
5
|
import { useHotKeys, useMutationWithInvalidation, useQueryParams, useDebounce, withT } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
6
6
|
import { getQueryParams, dateFormat, buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
|
|
7
7
|
import { Tooltip, Typography, Dropdown as Dropdown$2, Button, Pane as Pane$1, Alert, Select, DatePicker, TimePicker, Input as Input$1, Accordion, Spinner } from '@bigbinary/neetoui';
|
|
@@ -90,21 +90,6 @@ function _defineProperty(obj, key, value) {
|
|
|
90
90
|
return obj;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
var SHORTCUTS = {
|
|
94
|
-
closePane: {
|
|
95
|
-
sequence: "escape",
|
|
96
|
-
description: t$1("neetoFilters.shortcuts.closePane")
|
|
97
|
-
},
|
|
98
|
-
deleteBlock: {
|
|
99
|
-
sequence: "backspace",
|
|
100
|
-
description: t$1("neetoFilters.shortcuts.deleteBlock")
|
|
101
|
-
},
|
|
102
|
-
openFilterPane: {
|
|
103
|
-
sequence: "enter",
|
|
104
|
-
description: t$1("neetoFilters.shortcuts.openFilterPane")
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
|
|
108
93
|
var SEGMENTS_BASE_URL = "/neeto_filters/segments";
|
|
109
94
|
var DATE_OPTIONS = [{
|
|
110
95
|
label: "Today",
|
|
@@ -184,6 +169,23 @@ var DATE_RULES = {
|
|
|
184
169
|
yesterday: "on",
|
|
185
170
|
"all-time": "before"
|
|
186
171
|
};
|
|
172
|
+
var SEARCH_TERM_KEY = "search_term";
|
|
173
|
+
var SEGMENT_ID_KEY = "segment_id";
|
|
174
|
+
|
|
175
|
+
var SHORTCUTS = {
|
|
176
|
+
closePane: {
|
|
177
|
+
sequence: "escape",
|
|
178
|
+
description: t$1("neetoFilters.shortcuts.closePane")
|
|
179
|
+
},
|
|
180
|
+
deleteBlock: {
|
|
181
|
+
sequence: "backspace",
|
|
182
|
+
description: t$1("neetoFilters.shortcuts.deleteBlock")
|
|
183
|
+
},
|
|
184
|
+
openFilterPane: {
|
|
185
|
+
sequence: "enter",
|
|
186
|
+
description: t$1("neetoFilters.shortcuts.openFilterPane")
|
|
187
|
+
}
|
|
188
|
+
};
|
|
187
189
|
|
|
188
190
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
189
191
|
|
|
@@ -339,6 +341,11 @@ var standardizeColumnType = function standardizeColumnType(kind) {
|
|
|
339
341
|
}
|
|
340
342
|
return kind;
|
|
341
343
|
};
|
|
344
|
+
var getSnakeCasedQueryParams = function getSnakeCasedQueryParams() {
|
|
345
|
+
return getQueryParams({
|
|
346
|
+
toCamelCase: false
|
|
347
|
+
});
|
|
348
|
+
};
|
|
342
349
|
var isBoolean = function isBoolean(type) {
|
|
343
350
|
return type === "boolean" || type === "custom.boolean";
|
|
344
351
|
};
|
|
@@ -483,7 +490,7 @@ var buildUpdatedFilter = function buildUpdatedFilter(_ref8) {
|
|
|
483
490
|
};
|
|
484
491
|
var buildFiltersFromSearchParams = function buildFiltersFromSearchParams(columns) {
|
|
485
492
|
var skipEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
486
|
-
var searchParams =
|
|
493
|
+
var searchParams = getSnakeCasedQueryParams();
|
|
487
494
|
return columns.map(function (column) {
|
|
488
495
|
var value = searchParams[column.key];
|
|
489
496
|
var defaultType = column.defaultType || column.type;
|
|
@@ -493,7 +500,7 @@ var buildFiltersFromSearchParams = function buildFiltersFromSearchParams(columns
|
|
|
493
500
|
}, column);
|
|
494
501
|
} else if (isNil(value) || value === "" || column.key === "keyword") {
|
|
495
502
|
return null;
|
|
496
|
-
} else if (column.key ===
|
|
503
|
+
} else if (column.key === SEARCH_TERM_KEY) {
|
|
497
504
|
if (isNil(column.node)) return null;
|
|
498
505
|
return mergeLeft({
|
|
499
506
|
value: value,
|
|
@@ -650,7 +657,7 @@ var buildFiltersPayload = function buildFiltersPayload(filters) {
|
|
|
650
657
|
var payload = removeBy({
|
|
651
658
|
value: ""
|
|
652
659
|
}, filters).map(function (filter) {
|
|
653
|
-
if (filter.key ===
|
|
660
|
+
if (filter.key === SEARCH_TERM_KEY && isMultiModelFilter(filter)) {
|
|
654
661
|
return splitFilter(filter);
|
|
655
662
|
}
|
|
656
663
|
var filterPayload = omit(["key", "label", "values", "setValue"], filter);
|
|
@@ -684,14 +691,14 @@ var buildSegmentsPayload = function buildSegmentsPayload(filters) {
|
|
|
684
691
|
var payload = removeBy({
|
|
685
692
|
value: ""
|
|
686
693
|
}, filters).map(function (filter) {
|
|
687
|
-
if (filter.key ===
|
|
694
|
+
if (filter.key === SEARCH_TERM_KEY) {
|
|
688
695
|
return false;
|
|
689
696
|
}
|
|
690
697
|
var filterPayload = omit(["label", "values", "setValue", "defaultValue"], filter);
|
|
691
698
|
var _filterPayload$defaul2 = filterPayload.defaultType,
|
|
692
699
|
defaultType = _filterPayload$defaul2 === void 0 ? filterPayload.type : _filterPayload$defaul2,
|
|
693
700
|
value = filterPayload.value;
|
|
694
|
-
if (filter.key !==
|
|
701
|
+
if (filter.key !== SEARCH_TERM_KEY && isMultiModelFilter(filterPayload)) {
|
|
695
702
|
throw i18next.t("neetoFilters.errors.cannotPassMultipleModels");
|
|
696
703
|
}
|
|
697
704
|
if (isMulti(defaultType)) {
|
|
@@ -701,7 +708,7 @@ var buildSegmentsPayload = function buildSegmentsPayload(filters) {
|
|
|
701
708
|
}
|
|
702
709
|
return filterPayload;
|
|
703
710
|
});
|
|
704
|
-
var searchParams =
|
|
711
|
+
var searchParams = getSnakeCasedQueryParams();
|
|
705
712
|
var modifiedPayload = childrenKeys.reduce(function (acc, key) {
|
|
706
713
|
if (has(key, searchParams)) {
|
|
707
714
|
var filterPayload = {
|
|
@@ -723,7 +730,7 @@ var buildFiltersFromURL = function buildFiltersFromURL(columns) {
|
|
|
723
730
|
})));
|
|
724
731
|
};
|
|
725
732
|
var buildSelectorsFromURL = function buildSelectorsFromURL(columns) {
|
|
726
|
-
var searchParams =
|
|
733
|
+
var searchParams = getSnakeCasedQueryParams();
|
|
727
734
|
var selectors = {};
|
|
728
735
|
columns.filter(function (_ref9) {
|
|
729
736
|
var node = _ref9.node;
|
|
@@ -794,7 +801,7 @@ var createUrlParamString = function createUrlParamString(_ref15) {
|
|
|
794
801
|
_filter$defaultType = filter.defaultType,
|
|
795
802
|
defaultType = _filter$defaultType === void 0 ? filter.type : _filter$defaultType,
|
|
796
803
|
rule = filter.rule;
|
|
797
|
-
if (key ===
|
|
804
|
+
if (key === SEARCH_TERM_KEY) {
|
|
798
805
|
return value;
|
|
799
806
|
} else if (isDigit(defaultType) || isText(defaultType)) {
|
|
800
807
|
return "".concat(value, "+rule-").concat(rule);
|
|
@@ -819,9 +826,9 @@ var buildUrlFromFilters = function buildUrlFromFilters(_ref16) {
|
|
|
819
826
|
isClearAll = _ref16$isClearAll === void 0 ? false : _ref16$isClearAll,
|
|
820
827
|
_ref16$childrenKeys = _ref16.childrenKeys,
|
|
821
828
|
childrenKeys = _ref16$childrenKeys === void 0 ? [] : _ref16$childrenKeys;
|
|
822
|
-
var searchParams =
|
|
829
|
+
var searchParams = getSnakeCasedQueryParams();
|
|
823
830
|
var isKeywordFilterPresent = findBy({
|
|
824
|
-
key:
|
|
831
|
+
key: SEARCH_TERM_KEY
|
|
825
832
|
}, filters);
|
|
826
833
|
columns.forEach(function (_ref17) {
|
|
827
834
|
var key = _ref17.key,
|
|
@@ -832,18 +839,18 @@ var buildUrlFromFilters = function buildUrlFromFilters(_ref16) {
|
|
|
832
839
|
childrenKeys.forEach(function (key) {
|
|
833
840
|
return delete searchParams[key];
|
|
834
841
|
});
|
|
835
|
-
delete searchParams[
|
|
842
|
+
delete searchParams[SEGMENT_ID_KEY];
|
|
836
843
|
}
|
|
837
844
|
var defaultFilters = buildDefaultFilters(columns, filters);
|
|
838
|
-
isKeywordFilterPresent && delete searchParams[
|
|
845
|
+
isKeywordFilterPresent && delete searchParams[SEARCH_TERM_KEY];
|
|
839
846
|
concat(filters, defaultFilters).forEach(function (filter) {
|
|
840
847
|
searchParams[filter.key] = createUrlParamString({
|
|
841
848
|
filter: filter,
|
|
842
849
|
columns: columns
|
|
843
850
|
});
|
|
844
851
|
});
|
|
845
|
-
if (isEmpty(omit([
|
|
846
|
-
delete searchParams[
|
|
852
|
+
if (isEmpty(omit([SEGMENT_ID_KEY], searchParams))) {
|
|
853
|
+
delete searchParams[SEGMENT_ID_KEY];
|
|
847
854
|
}
|
|
848
855
|
return new URLSearchParams(searchParams).toString();
|
|
849
856
|
};
|
|
@@ -865,33 +872,33 @@ var buildUrlFromSegment = function buildUrlFromSegment(_ref19) {
|
|
|
865
872
|
var columns = _ref19.columns,
|
|
866
873
|
filters = _ref19.filters,
|
|
867
874
|
id = _ref19.id;
|
|
868
|
-
var searchParams =
|
|
875
|
+
var searchParams = getSnakeCasedQueryParams();
|
|
869
876
|
columns.forEach(function (_ref20) {
|
|
870
877
|
var key = _ref20.key,
|
|
871
878
|
defaultValue = _ref20.defaultValue;
|
|
872
879
|
return !defaultValue && delete searchParams[key];
|
|
873
880
|
});
|
|
881
|
+
delete searchParams[SEARCH_TERM_KEY];
|
|
874
882
|
var defaultFilters = buildDefaultFilters(columns, filters);
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
isNotEmpty(id) && (searchParams["segmentId"] = id);
|
|
878
|
-
searchParams[filter.key] = createUrlParamStringForSegments({
|
|
883
|
+
var newSearchParams = concat(filters, defaultFilters).reduce(function (acc, filter) {
|
|
884
|
+
acc[filter.key] = createUrlParamStringForSegments({
|
|
879
885
|
filter: filter,
|
|
880
886
|
columns: columns
|
|
881
887
|
});
|
|
882
|
-
|
|
883
|
-
|
|
888
|
+
return acc;
|
|
889
|
+
}, isNotEmpty(id) ? _defineProperty({}, SEGMENT_ID_KEY, id) : {});
|
|
890
|
+
return new URLSearchParams(_objectSpread$4(_objectSpread$4({}, searchParams), newSearchParams)).toString();
|
|
884
891
|
};
|
|
885
892
|
var getSearchTermFromUrl = function getSearchTermFromUrl() {
|
|
886
|
-
return getQueryParams()
|
|
887
|
-
};
|
|
888
|
-
var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(
|
|
889
|
-
var fields =
|
|
890
|
-
|
|
891
|
-
selectedFields =
|
|
892
|
-
|
|
893
|
-
showRuleSelector =
|
|
894
|
-
groupName =
|
|
893
|
+
return getQueryParams().searchTerm || "";
|
|
894
|
+
};
|
|
895
|
+
var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(_ref22) {
|
|
896
|
+
var fields = _ref22.fields,
|
|
897
|
+
_ref22$selectedFields = _ref22.selectedFields,
|
|
898
|
+
selectedFields = _ref22$selectedFields === void 0 ? [] : _ref22$selectedFields,
|
|
899
|
+
_ref22$showRuleSelect = _ref22.showRuleSelector,
|
|
900
|
+
showRuleSelector = _ref22$showRuleSelect === void 0 ? false : _ref22$showRuleSelect,
|
|
901
|
+
groupName = _ref22.groupName;
|
|
895
902
|
return fields.reduce(function (columns, field) {
|
|
896
903
|
if (isEmpty(selectedFields) || selectedFields.includes(field.name)) {
|
|
897
904
|
var id = field.id,
|
|
@@ -1001,7 +1008,7 @@ var buildRuleValue = function buildRuleValue(_ref) {
|
|
|
1001
1008
|
return "";
|
|
1002
1009
|
};
|
|
1003
1010
|
var hasOnlyKeywordFilter = function hasOnlyKeywordFilter(filters) {
|
|
1004
|
-
return filters.length === 1 && filters[0].key ===
|
|
1011
|
+
return filters.length === 1 && filters[0].key === SEARCH_TERM_KEY;
|
|
1005
1012
|
};
|
|
1006
1013
|
|
|
1007
1014
|
var Block = function Block(_ref) {
|
|
@@ -1039,7 +1046,7 @@ var Block = function Block(_ref) {
|
|
|
1039
1046
|
theme: "light"
|
|
1040
1047
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1041
1048
|
className: "neeto-filters-bar__block",
|
|
1042
|
-
"data-cy": "neeto-filters-".concat(key, "-block"),
|
|
1049
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-block"),
|
|
1043
1050
|
tabIndex: 0,
|
|
1044
1051
|
ref: function ref(node) {
|
|
1045
1052
|
deleteBlockHotKeyRef.current = node;
|
|
@@ -1058,7 +1065,7 @@ var Block = function Block(_ref) {
|
|
|
1058
1065
|
}, blockContent), !defaultValue && /*#__PURE__*/React.createElement("div", {
|
|
1059
1066
|
className: "neeto-filters-bar__block-close"
|
|
1060
1067
|
}, /*#__PURE__*/React.createElement(Close, {
|
|
1061
|
-
"data-cy": "neeto-filters-".concat(key, "-block-close-btn"),
|
|
1068
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-block-close-btn"),
|
|
1062
1069
|
size: 16,
|
|
1063
1070
|
strokeWidth: 2,
|
|
1064
1071
|
onClick: function onClick(event) {
|
|
@@ -1084,7 +1091,7 @@ var ChildBlock = function ChildBlock(_ref) {
|
|
|
1084
1091
|
});
|
|
1085
1092
|
return /*#__PURE__*/React.createElement("div", {
|
|
1086
1093
|
className: "neeto-filters-bar__block",
|
|
1087
|
-
"data-cy": "neeto-filters-".concat(childKey, "-block"),
|
|
1094
|
+
"data-cy": "neeto-filters-".concat(hyphenate(childKey), "-block"),
|
|
1088
1095
|
tabIndex: 0,
|
|
1089
1096
|
ref: function ref(node) {
|
|
1090
1097
|
deleteBlockHotKeyRef.current = node;
|
|
@@ -1099,7 +1106,7 @@ var ChildBlock = function ChildBlock(_ref) {
|
|
|
1099
1106
|
}, childKey), /*#__PURE__*/React.createElement("div", {
|
|
1100
1107
|
className: "neeto-filters-bar__block-close"
|
|
1101
1108
|
}, /*#__PURE__*/React.createElement(Close, {
|
|
1102
|
-
"data-cy": "neeto-filters-".concat(childKey, "-block-close-btn"),
|
|
1109
|
+
"data-cy": "neeto-filters-".concat(hyphenate(childKey), "-block-close-btn"),
|
|
1103
1110
|
size: 16,
|
|
1104
1111
|
strokeWidth: 2,
|
|
1105
1112
|
onClick: function onClick(event) {
|
|
@@ -1369,14 +1376,16 @@ var Bar = function Bar(_ref) {
|
|
|
1369
1376
|
var _useTranslation = useTranslation(),
|
|
1370
1377
|
t = _useTranslation.t;
|
|
1371
1378
|
var initialRenderRef = useRef(true);
|
|
1372
|
-
var searchParams = useQueryParams(
|
|
1373
|
-
|
|
1379
|
+
var searchParams = useQueryParams({
|
|
1380
|
+
toCamelCase: false
|
|
1381
|
+
});
|
|
1382
|
+
var keywordValue = searchParams[SEARCH_TERM_KEY] || "";
|
|
1374
1383
|
var keywordFilter = _objectSpread$2(_objectSpread$2({
|
|
1375
1384
|
type: "text",
|
|
1376
1385
|
rule: "contains",
|
|
1377
1386
|
label: t("neetoFilters.common.searchTerm")
|
|
1378
1387
|
}, keyword), {}, {
|
|
1379
|
-
key:
|
|
1388
|
+
key: SEARCH_TERM_KEY,
|
|
1380
1389
|
value: keywordValue
|
|
1381
1390
|
});
|
|
1382
1391
|
var filters = buildFiltersFromSearchParams(isKeywordFilterPresent(keywordFilter) && isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
|
|
@@ -1397,14 +1406,14 @@ var Bar = function Bar(_ref) {
|
|
|
1397
1406
|
});
|
|
1398
1407
|
};
|
|
1399
1408
|
var handleDelete = function handleDelete(key) {
|
|
1400
|
-
if (key ===
|
|
1401
|
-
var params = omit([
|
|
1409
|
+
if (key === SEARCH_TERM_KEY) {
|
|
1410
|
+
var params = omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams());
|
|
1402
1411
|
var pathname = window.location.pathname;
|
|
1403
1412
|
history.push(buildUrl(pathname, params));
|
|
1404
1413
|
return;
|
|
1405
1414
|
}
|
|
1406
1415
|
if (childrenKeys.includes(key)) {
|
|
1407
|
-
var _params = omit([key],
|
|
1416
|
+
var _params = omit([key], getSnakeCasedQueryParams());
|
|
1408
1417
|
var _pathname = window.location.pathname;
|
|
1409
1418
|
history.push(buildUrl(_pathname, _params));
|
|
1410
1419
|
}
|
|
@@ -1414,7 +1423,7 @@ var Bar = function Bar(_ref) {
|
|
|
1414
1423
|
handleSubmit(newFilters);
|
|
1415
1424
|
};
|
|
1416
1425
|
var handleClearAll = function handleClearAll() {
|
|
1417
|
-
var params = isKeywordFilterPresent(keywordFilter) ? omit([
|
|
1426
|
+
var params = isKeywordFilterPresent(keywordFilter) ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams()) : getSnakeCasedQueryParams();
|
|
1418
1427
|
var pathname = window.location.pathname;
|
|
1419
1428
|
history.push(buildUrl(pathname, params));
|
|
1420
1429
|
handleSubmit([], true);
|
|
@@ -2449,7 +2458,7 @@ var useFilters = function useFilters(_ref) {
|
|
|
2449
2458
|
};
|
|
2450
2459
|
var handleChangesInURL = function handleChangesInURL() {
|
|
2451
2460
|
var defaultFilters = buildDefaultFilters(columns, filters);
|
|
2452
|
-
var searchParams =
|
|
2461
|
+
var searchParams = getSnakeCasedQueryParams();
|
|
2453
2462
|
var keys = pluck("key", append(keywordFilter, columns));
|
|
2454
2463
|
if (keys.every(function (key) {
|
|
2455
2464
|
return isNil(searchParams[key]);
|
|
@@ -2610,10 +2619,10 @@ var Boolean = function Boolean(_ref) {
|
|
|
2610
2619
|
options: options,
|
|
2611
2620
|
value: value,
|
|
2612
2621
|
isClearable: true,
|
|
2613
|
-
"data-cy": "neeto-filters-".concat(key, "-filter"),
|
|
2622
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
|
|
2614
2623
|
strategy: "fixed",
|
|
2615
2624
|
placeholder: t("neetoFilters.messages.selectOption", {
|
|
2616
|
-
resource: label
|
|
2625
|
+
resource: label
|
|
2617
2626
|
}),
|
|
2618
2627
|
onChange: handleChange
|
|
2619
2628
|
}, otherProps));
|
|
@@ -2681,16 +2690,16 @@ var Datetime = function Datetime(_ref) {
|
|
|
2681
2690
|
autoFocus: autoFocus,
|
|
2682
2691
|
label: label,
|
|
2683
2692
|
isClearable: true,
|
|
2684
|
-
"data-cy": "neeto-filters-".concat(key, "-filter"),
|
|
2693
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
|
|
2685
2694
|
options: DATE_OPTIONS,
|
|
2686
2695
|
strategy: "fixed",
|
|
2687
2696
|
value: selectedRule,
|
|
2688
2697
|
placeholder: t("neetoFilters.messages.selectResource", {
|
|
2689
|
-
resource: label
|
|
2698
|
+
resource: label
|
|
2690
2699
|
}),
|
|
2691
2700
|
onChange: handleChange
|
|
2692
2701
|
}), isDatePickerShown && /*#__PURE__*/React.createElement(DatePicker, _extends({
|
|
2693
|
-
"data-cy": "neeto-filters-".concat(key, "-date-range"),
|
|
2702
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-date-range"),
|
|
2694
2703
|
getPopupContainer: prop("parentNode"),
|
|
2695
2704
|
type: (selectedRule === null || selectedRule === void 0 ? void 0 : selectedRule.value) === "custom-date-range" ? "range" : "date",
|
|
2696
2705
|
value: getDateValue(filter === null || filter === void 0 ? void 0 : filter.value, selectedRule),
|
|
@@ -2744,12 +2753,12 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
2744
2753
|
label: label,
|
|
2745
2754
|
options: options,
|
|
2746
2755
|
value: value,
|
|
2747
|
-
"data-cy": "neeto-filters-".concat(key, "-filter"),
|
|
2756
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
|
|
2748
2757
|
isClearable: !defaultValue && isClearable,
|
|
2749
2758
|
isMulti: isMulti(defaultType),
|
|
2750
2759
|
strategy: "fixed",
|
|
2751
2760
|
placeholder: t("neetoFilters.messages.selectResource", {
|
|
2752
|
-
resource: label
|
|
2761
|
+
resource: label
|
|
2753
2762
|
}),
|
|
2754
2763
|
onChange: handleChange
|
|
2755
2764
|
}, otherProps));
|
|
@@ -2823,7 +2832,7 @@ var SingleDatetime = function SingleDatetime(_ref) {
|
|
|
2823
2832
|
className: "neeto-filters-pane-filter__item-wrapper"
|
|
2824
2833
|
}, /*#__PURE__*/React.createElement(Select, {
|
|
2825
2834
|
label: label,
|
|
2826
|
-
"data-cy": "neeto-filters-".concat(key, "-filter-rule"),
|
|
2835
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter-rule"),
|
|
2827
2836
|
defaultValue: SINGLE_DATE_OPTIONS[0],
|
|
2828
2837
|
options: SINGLE_DATE_OPTIONS,
|
|
2829
2838
|
strategy: "fixed",
|
|
@@ -2832,7 +2841,7 @@ var SingleDatetime = function SingleDatetime(_ref) {
|
|
|
2832
2841
|
}), /*#__PURE__*/React.createElement(DatePicker, _extends({
|
|
2833
2842
|
autoFocus: autoFocus,
|
|
2834
2843
|
value: value,
|
|
2835
|
-
"data-cy": "neeto-filters-".concat(key, "-filter"),
|
|
2844
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
|
|
2836
2845
|
getPopupContainer: prop("parentNode"),
|
|
2837
2846
|
type: datePickerType,
|
|
2838
2847
|
onChange: handleChange
|
|
@@ -2908,7 +2917,7 @@ var SingleTime = function SingleTime(_ref) {
|
|
|
2908
2917
|
value: value,
|
|
2909
2918
|
use12Hours: true,
|
|
2910
2919
|
className: "w-full",
|
|
2911
|
-
"data-cy": "neeto-filters-".concat(key, "-filter"),
|
|
2920
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
|
|
2912
2921
|
format: "h:mm A",
|
|
2913
2922
|
getPopupContainer: prop("parentNode"),
|
|
2914
2923
|
type: timePickerType,
|
|
@@ -2990,7 +2999,7 @@ var Text = function Text(_ref) {
|
|
|
2990
2999
|
className: "neeto-filters-pane-filter__item-wrapper"
|
|
2991
3000
|
}, showRuleSelector && /*#__PURE__*/React.createElement(Select, {
|
|
2992
3001
|
label: label,
|
|
2993
|
-
"data-cy": "neeto-filters-".concat(key, "-filter-rule"),
|
|
3002
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter-rule"),
|
|
2994
3003
|
defaultValue: ruleOptions[0],
|
|
2995
3004
|
options: ruleOptions,
|
|
2996
3005
|
strategy: "fixed",
|
|
@@ -2998,12 +3007,12 @@ var Text = function Text(_ref) {
|
|
|
2998
3007
|
onChange: handleRuleChange
|
|
2999
3008
|
}), /*#__PURE__*/React.createElement(Input$1, _extends({
|
|
3000
3009
|
autoFocus: autoFocus,
|
|
3001
|
-
"data-cy": "neeto-filters-".concat(key, "-filter"),
|
|
3010
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
|
|
3002
3011
|
label: !showRuleSelector && label,
|
|
3003
3012
|
type: inputType,
|
|
3004
3013
|
value: inputValue,
|
|
3005
3014
|
placeholder: t("neetoFilters.messages.enterResource", {
|
|
3006
|
-
resource: label
|
|
3015
|
+
resource: label
|
|
3007
3016
|
}),
|
|
3008
3017
|
onChange: function onChange(event) {
|
|
3009
3018
|
return setInputValue(event.target.value);
|
|
@@ -3059,16 +3068,16 @@ var Time = function Time(_ref) {
|
|
|
3059
3068
|
label: label,
|
|
3060
3069
|
value: value,
|
|
3061
3070
|
isClearable: true,
|
|
3062
|
-
"data-cy": "neeto-filters-".concat(key, "-filter"),
|
|
3071
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-filter"),
|
|
3063
3072
|
options: TIME_OPTIONS,
|
|
3064
3073
|
strategy: "fixed",
|
|
3065
3074
|
placeholder: t("neetoFilters.messages.selectResource", {
|
|
3066
|
-
resource: label
|
|
3075
|
+
resource: label
|
|
3067
3076
|
}),
|
|
3068
3077
|
onChange: handleChange
|
|
3069
3078
|
}), isCustomTimeRangeShown && /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
3070
3079
|
use12Hours: true,
|
|
3071
|
-
"data-cy": "neeto-filters-".concat(key, "-date-range"),
|
|
3080
|
+
"data-cy": "neeto-filters-".concat(hyphenate(key), "-date-range"),
|
|
3072
3081
|
format: "h:mm A",
|
|
3073
3082
|
getPopupContainer: prop("parentNode"),
|
|
3074
3083
|
type: "range",
|
|
@@ -3175,7 +3184,9 @@ var Pane = function Pane(_ref) {
|
|
|
3175
3184
|
childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
|
|
3176
3185
|
children = _ref.children,
|
|
3177
3186
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
3178
|
-
var searchParams = useQueryParams(
|
|
3187
|
+
var searchParams = useQueryParams({
|
|
3188
|
+
toCamelCase: false
|
|
3189
|
+
});
|
|
3179
3190
|
var _useState = useState(""),
|
|
3180
3191
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3181
3192
|
searchTerm = _useState2[0],
|
|
@@ -3199,8 +3210,8 @@ var Pane = function Pane(_ref) {
|
|
|
3199
3210
|
rule: "contains",
|
|
3200
3211
|
label: t("neetoFilters.common.searchTerm")
|
|
3201
3212
|
}, keyword), {}, {
|
|
3202
|
-
key:
|
|
3203
|
-
value: searchParams
|
|
3213
|
+
key: SEARCH_TERM_KEY,
|
|
3214
|
+
value: searchParams[SEARCH_TERM_KEY] || ""
|
|
3204
3215
|
});
|
|
3205
3216
|
var filters = useFilters({
|
|
3206
3217
|
onFiltersChange: onChange,
|
|
@@ -3222,11 +3233,15 @@ var Pane = function Pane(_ref) {
|
|
|
3222
3233
|
});
|
|
3223
3234
|
};
|
|
3224
3235
|
var handleClearAll = function handleClearAll() {
|
|
3225
|
-
var params = isKeywordFilterPresent(keywordFilter) ? omit([
|
|
3236
|
+
var params = isKeywordFilterPresent(keywordFilter) ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams()) : getSnakeCasedQueryParams();
|
|
3226
3237
|
var pathname = window.location.pathname;
|
|
3227
3238
|
history.push(buildUrl(pathname, params));
|
|
3228
3239
|
handleChange([], true);
|
|
3229
3240
|
};
|
|
3241
|
+
var handleClearTermAndClose = function handleClearTermAndClose() {
|
|
3242
|
+
setSearchTerm("");
|
|
3243
|
+
onClose();
|
|
3244
|
+
};
|
|
3230
3245
|
var handleClose = function handleClose() {
|
|
3231
3246
|
columns.forEach(function (_ref2) {
|
|
3232
3247
|
var key = _ref2.key;
|
|
@@ -3235,7 +3250,7 @@ var Pane = function Pane(_ref) {
|
|
|
3235
3250
|
}, filters);
|
|
3236
3251
|
if ((filter === null || filter === void 0 ? void 0 : filter.value) === "") delete searchParams[key];
|
|
3237
3252
|
});
|
|
3238
|
-
|
|
3253
|
+
handleClearTermAndClose();
|
|
3239
3254
|
};
|
|
3240
3255
|
var isClearFiltersDisabled = !filters.some(function (_ref3) {
|
|
3241
3256
|
var value = _ref3.value,
|
|
@@ -3270,10 +3285,10 @@ var Pane = function Pane(_ref) {
|
|
|
3270
3285
|
return /*#__PURE__*/React.createElement(Item, {
|
|
3271
3286
|
column: column,
|
|
3272
3287
|
filters: filters,
|
|
3273
|
-
onClose: onClose,
|
|
3274
3288
|
autoFocus: column.key === isOpen,
|
|
3275
3289
|
key: column.key,
|
|
3276
|
-
onChange: handleChange
|
|
3290
|
+
onChange: handleChange,
|
|
3291
|
+
onClose: handleClearTermAndClose
|
|
3277
3292
|
});
|
|
3278
3293
|
}), isPresent(groupedColumns) && /*#__PURE__*/React.createElement(Accordion, {
|
|
3279
3294
|
defaultActiveKey: groupedColumns.findIndex(function (_ref4) {
|
|
@@ -3293,10 +3308,10 @@ var Pane = function Pane(_ref) {
|
|
|
3293
3308
|
return /*#__PURE__*/React.createElement(Item, {
|
|
3294
3309
|
column: column,
|
|
3295
3310
|
filters: filters,
|
|
3296
|
-
onClose: onClose,
|
|
3297
3311
|
autoFocus: column.key === isOpen,
|
|
3298
3312
|
key: column.key,
|
|
3299
|
-
onChange: handleChange
|
|
3313
|
+
onChange: handleChange,
|
|
3314
|
+
onClose: handleClearTermAndClose
|
|
3300
3315
|
});
|
|
3301
3316
|
}));
|
|
3302
3317
|
})), isEmpty(ungroupedColumns) && isEmpty(groupedColumns) && /*#__PURE__*/React.createElement(Typography, {
|
|
@@ -3308,7 +3323,7 @@ var Pane = function Pane(_ref) {
|
|
|
3308
3323
|
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
|
3309
3324
|
"data-cy": "neeto-filters-done-btn",
|
|
3310
3325
|
label: t("neetoFilters.common.done"),
|
|
3311
|
-
onClick:
|
|
3326
|
+
onClick: handleClearTermAndClose
|
|
3312
3327
|
}), /*#__PURE__*/React.createElement(Button, {
|
|
3313
3328
|
"data-cy": "neeto-filters-clear-btn",
|
|
3314
3329
|
disabled: isClearFiltersDisabled,
|
|
@@ -3567,12 +3582,11 @@ var MenuBlocks = function MenuBlocks(_ref) {
|
|
|
3567
3582
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3568
3583
|
showAll = _useState2[0],
|
|
3569
3584
|
setShowAll = _useState2[1];
|
|
3570
|
-
var location = useLocation();
|
|
3571
3585
|
var history = useHistory();
|
|
3572
3586
|
var _useTranslation = useTranslation(),
|
|
3573
3587
|
t = _useTranslation.t;
|
|
3574
|
-
var
|
|
3575
|
-
segmentId =
|
|
3588
|
+
var _getQueryParams = getQueryParams(),
|
|
3589
|
+
segmentId = _getQueryParams.segmentId;
|
|
3576
3590
|
var appliedFilters = buildFiltersFromURL(columns);
|
|
3577
3591
|
var _useFetchSegments = useFetchSegments({
|
|
3578
3592
|
entity: entity
|