@bigbinary/neeto-filters-frontend 3.0.5 → 3.0.6
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 +4 -0
- package/app/javascript/src/translations/en.json +4 -2
- package/dist/index.cjs.js +256 -212
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +256 -213
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/types.d.ts +2 -0
package/dist/index.cjs.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var classnames = require('classnames');
|
|
7
|
+
var i18next = require('i18next');
|
|
7
8
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
8
9
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
9
10
|
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
@@ -12,11 +13,11 @@ var ramda = require('ramda');
|
|
|
12
13
|
var reactI18next = require('react-i18next');
|
|
13
14
|
var reactRouterDom = require('react-router-dom');
|
|
14
15
|
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
15
|
-
var i18next = require('i18next');
|
|
16
|
-
var yup = require('yup');
|
|
17
16
|
var formik = require('@bigbinary/neetoui/formik');
|
|
18
17
|
var reactQuery = require('react-query');
|
|
19
18
|
var axios = require('axios');
|
|
19
|
+
var yup = require('yup');
|
|
20
|
+
var Search = require('@bigbinary/neeto-molecules/Search');
|
|
20
21
|
var ReactDOM = require('react-dom');
|
|
21
22
|
var MenuBar = require('@bigbinary/neeto-molecules/MenuBar');
|
|
22
23
|
var InlineInput = require('@bigbinary/neeto-molecules/InlineInput');
|
|
@@ -44,8 +45,9 @@ function _interopNamespace(e) {
|
|
|
44
45
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
45
46
|
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
46
47
|
var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
|
|
47
|
-
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
48
48
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
49
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
50
|
+
var Search__default = /*#__PURE__*/_interopDefaultLegacy(Search);
|
|
49
51
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
50
52
|
var MenuBar__default = /*#__PURE__*/_interopDefaultLegacy(MenuBar);
|
|
51
53
|
|
|
@@ -136,9 +138,6 @@ var SHORTCUTS = {
|
|
|
136
138
|
}
|
|
137
139
|
};
|
|
138
140
|
|
|
139
|
-
var SEGMENT_VALIDATION_SCHEMA = yup__namespace.object({
|
|
140
|
-
name: yup__namespace.string().trim().required()
|
|
141
|
-
});
|
|
142
141
|
var SEGMENTS_BASE_URL = "/neeto_filters/segments";
|
|
143
142
|
var DATE_OPTIONS = [{
|
|
144
143
|
label: "Today",
|
|
@@ -782,7 +781,8 @@ var compareFilters = function compareFilters(oldFilters, newFilters) {
|
|
|
782
781
|
return ramda.equals(formatFilters(oldFilters), formatFilters(newFilters));
|
|
783
782
|
};
|
|
784
783
|
var buildFilteredColumns = function buildFilteredColumns(_ref11) {
|
|
785
|
-
var searchTerm = _ref11.searchTerm,
|
|
784
|
+
var _ref11$searchTerm = _ref11.searchTerm,
|
|
785
|
+
searchTerm = _ref11$searchTerm === void 0 ? "" : _ref11$searchTerm,
|
|
786
786
|
columns = _ref11.columns;
|
|
787
787
|
var groupedColumsObject = groupByGroup(columns.filter(function (_ref12) {
|
|
788
788
|
var label = _ref12.label,
|
|
@@ -1221,6 +1221,18 @@ var useDestroySegment = function useDestroySegment(options) {
|
|
|
1221
1221
|
}, options));
|
|
1222
1222
|
};
|
|
1223
1223
|
|
|
1224
|
+
var buildSegmentsValidationSchema = function buildSegmentsValidationSchema(defaultSegmentName) {
|
|
1225
|
+
return yup__namespace.object({
|
|
1226
|
+
name: yup__namespace.string().trim().required().test({
|
|
1227
|
+
name: "not-default-segment-name",
|
|
1228
|
+
test: function test(value) {
|
|
1229
|
+
return (value === null || value === void 0 ? void 0 : value.toLocaleLowerCase()) !== defaultSegmentName.toLocaleLowerCase();
|
|
1230
|
+
},
|
|
1231
|
+
message: i18next.t("neetoFilters.segments.reservedNameErrorMessage")
|
|
1232
|
+
})
|
|
1233
|
+
});
|
|
1234
|
+
};
|
|
1235
|
+
|
|
1224
1236
|
var Menu = neetoui.Dropdown.Menu,
|
|
1225
1237
|
MenuItem = neetoui.Dropdown.MenuItem;
|
|
1226
1238
|
var Segment = function Segment(_ref) {
|
|
@@ -1228,7 +1240,8 @@ var Segment = function Segment(_ref) {
|
|
|
1228
1240
|
filters = _ref.filters,
|
|
1229
1241
|
columns = _ref.columns,
|
|
1230
1242
|
childrenKeys = _ref.childrenKeys,
|
|
1231
|
-
setIsFilterPaneOpen = _ref.setIsFilterPaneOpen
|
|
1243
|
+
setIsFilterPaneOpen = _ref.setIsFilterPaneOpen,
|
|
1244
|
+
defaultSegmentName = _ref.defaultSegmentName;
|
|
1232
1245
|
var _useState = React.useState(false),
|
|
1233
1246
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1234
1247
|
isSavePaneOpen = _useState2[0],
|
|
@@ -1331,7 +1344,7 @@ var Segment = function Segment(_ref) {
|
|
|
1331
1344
|
},
|
|
1332
1345
|
validateOnChange: true,
|
|
1333
1346
|
validateOnBlur: true,
|
|
1334
|
-
validationSchema:
|
|
1347
|
+
validationSchema: buildSegmentsValidationSchema(defaultSegmentName),
|
|
1335
1348
|
onSubmit: handleSubmit
|
|
1336
1349
|
}
|
|
1337
1350
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
|
|
@@ -1382,118 +1395,123 @@ var Bar = function Bar(_ref) {
|
|
|
1382
1395
|
_ref$setIsPaneOpen = _ref.setIsPaneOpen,
|
|
1383
1396
|
setIsPaneOpen = _ref$setIsPaneOpen === void 0 ? ramda.identity : _ref$setIsPaneOpen,
|
|
1384
1397
|
_ref$childrenKeys = _ref.childrenKeys,
|
|
1385
|
-
childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
hidden: true
|
|
1402
|
-
}, filters);
|
|
1403
|
-
var history = reactRouterDom.useHistory();
|
|
1404
|
-
var handleSubmit = function handleSubmit(newFilters, isClearAll) {
|
|
1405
|
-
var params = buildUrlFromFilters(_objectSpread$2({
|
|
1406
|
-
columns: columns,
|
|
1407
|
-
filters: isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
|
|
1408
|
-
}, isClearAll && {
|
|
1409
|
-
isClearAll: true,
|
|
1410
|
-
childrenKeys: childrenKeys
|
|
1411
|
-
}));
|
|
1412
|
-
history.push({
|
|
1413
|
-
search: params
|
|
1398
|
+
childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
|
|
1399
|
+
_ref$defaultSegmentNa = _ref.defaultSegmentName,
|
|
1400
|
+
defaultSegmentName = _ref$defaultSegmentNa === void 0 ? i18next.t("neetoFilters.common.allResults") : _ref$defaultSegmentNa;
|
|
1401
|
+
return function () {
|
|
1402
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
1403
|
+
t = _useTranslation.t;
|
|
1404
|
+
var initialRenderRef = React.useRef(true);
|
|
1405
|
+
var searchParams = reactUtils.useQueryParams();
|
|
1406
|
+
var keywordValue = searchParams.search_term || "";
|
|
1407
|
+
var keywordFilter = _objectSpread$2(_objectSpread$2({
|
|
1408
|
+
type: "text",
|
|
1409
|
+
rule: "contains",
|
|
1410
|
+
label: t("neetoFilters.common.searchTerm")
|
|
1411
|
+
}, keyword), {}, {
|
|
1412
|
+
key: "search_term",
|
|
1413
|
+
value: keywordValue
|
|
1414
1414
|
});
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1415
|
+
var filters = buildFiltersFromSearchParams(isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
|
|
1416
|
+
var nonHiddenFilters = neetoCist.removeBy({
|
|
1417
|
+
hidden: true
|
|
1418
|
+
}, filters);
|
|
1419
|
+
var history = reactRouterDom.useHistory();
|
|
1420
|
+
var handleSubmit = function handleSubmit(newFilters, isClearAll) {
|
|
1421
|
+
var params = buildUrlFromFilters(_objectSpread$2({
|
|
1422
|
+
columns: columns,
|
|
1423
|
+
filters: isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
|
|
1424
|
+
}, isClearAll && {
|
|
1425
|
+
isClearAll: true,
|
|
1426
|
+
childrenKeys: childrenKeys
|
|
1427
|
+
}));
|
|
1428
|
+
history.push({
|
|
1429
|
+
search: params
|
|
1430
|
+
});
|
|
1431
|
+
};
|
|
1432
|
+
var handleDelete = function handleDelete(key) {
|
|
1433
|
+
if (key === "search_term") {
|
|
1434
|
+
var params = ramda.omit(["search_term"], utils.getQueryParams());
|
|
1435
|
+
var pathname = window.location.pathname;
|
|
1436
|
+
history.push(utils.buildUrl(pathname, params));
|
|
1437
|
+
return;
|
|
1438
|
+
}
|
|
1439
|
+
if (childrenKeys.includes(key)) {
|
|
1440
|
+
var _params = ramda.omit([key], utils.getQueryParams());
|
|
1441
|
+
var _pathname = window.location.pathname;
|
|
1442
|
+
history.push(utils.buildUrl(_pathname, _params));
|
|
1443
|
+
}
|
|
1444
|
+
var newFilters = neetoCist.removeBy({
|
|
1445
|
+
key: key
|
|
1446
|
+
}, filters);
|
|
1447
|
+
handleSubmit(newFilters);
|
|
1448
|
+
};
|
|
1449
|
+
var handleClearAll = function handleClearAll() {
|
|
1450
|
+
var params = isKeywordFilterPresent(keywordFilter) ? ramda.omit(["search_term"], utils.getQueryParams()) : utils.getQueryParams();
|
|
1419
1451
|
var pathname = window.location.pathname;
|
|
1420
1452
|
history.push(utils.buildUrl(pathname, params));
|
|
1421
|
-
|
|
1422
|
-
}
|
|
1423
|
-
if (childrenKeys.includes(key)) {
|
|
1424
|
-
var _params = ramda.omit([key], utils.getQueryParams());
|
|
1425
|
-
var _pathname = window.location.pathname;
|
|
1426
|
-
history.push(utils.buildUrl(_pathname, _params));
|
|
1427
|
-
}
|
|
1428
|
-
var newFilters = neetoCist.removeBy({
|
|
1429
|
-
key: key
|
|
1430
|
-
}, filters);
|
|
1431
|
-
handleSubmit(newFilters);
|
|
1432
|
-
};
|
|
1433
|
-
var handleClearAll = function handleClearAll() {
|
|
1434
|
-
var params = isKeywordFilterPresent(keywordFilter) ? ramda.omit(["search_term"], utils.getQueryParams()) : utils.getQueryParams();
|
|
1435
|
-
var pathname = window.location.pathname;
|
|
1436
|
-
history.push(utils.buildUrl(pathname, params));
|
|
1437
|
-
handleSubmit([], true);
|
|
1438
|
-
};
|
|
1439
|
-
var childrenFiltersApplied = childrenKeys.some(function (key) {
|
|
1440
|
-
return ramda.has(key, searchParams);
|
|
1441
|
-
});
|
|
1442
|
-
var hideClearButton = nonHiddenFilters.every(function (_ref2) {
|
|
1443
|
-
var defaultValue = _ref2.defaultValue,
|
|
1444
|
-
isClearable = _ref2.isClearable;
|
|
1445
|
-
return defaultValue && !isClearable;
|
|
1446
|
-
}) && !childrenFiltersApplied;
|
|
1447
|
-
React.useEffect(function () {
|
|
1448
|
-
if (initialRenderRef.current) {
|
|
1449
|
-
initialRenderRef.current = false;
|
|
1450
|
-
return neetoCist.noop;
|
|
1451
|
-
}
|
|
1452
|
-
var handler = setTimeout(function () {
|
|
1453
|
-
handleSubmit(filters);
|
|
1454
|
-
}, 500);
|
|
1455
|
-
return function () {
|
|
1456
|
-
return clearTimeout(handler);
|
|
1453
|
+
handleSubmit([], true);
|
|
1457
1454
|
};
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1455
|
+
var childrenFiltersApplied = childrenKeys.some(function (key) {
|
|
1456
|
+
return ramda.has(key, searchParams);
|
|
1457
|
+
});
|
|
1458
|
+
var hideClearButton = nonHiddenFilters.every(function (_ref2) {
|
|
1459
|
+
var defaultValue = _ref2.defaultValue,
|
|
1460
|
+
isClearable = _ref2.isClearable;
|
|
1461
|
+
return defaultValue && !isClearable;
|
|
1462
|
+
}) && !childrenFiltersApplied;
|
|
1463
|
+
React.useEffect(function () {
|
|
1464
|
+
if (initialRenderRef.current) {
|
|
1465
|
+
initialRenderRef.current = false;
|
|
1466
|
+
return neetoCist.noop;
|
|
1467
|
+
}
|
|
1468
|
+
var handler = setTimeout(function () {
|
|
1469
|
+
handleSubmit(filters);
|
|
1470
|
+
}, 500);
|
|
1471
|
+
return function () {
|
|
1472
|
+
return clearTimeout(handler);
|
|
1473
|
+
};
|
|
1474
|
+
}, [keywordValue]);
|
|
1475
|
+
if (ramda.isEmpty(nonHiddenFilters) && !childrenFiltersApplied) return null;
|
|
1476
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1477
|
+
className: classnames__default["default"]("neeto-filters-bar", _defineProperty({}, className, className))
|
|
1478
|
+
}, nonHiddenFilters.map(function (filter) {
|
|
1479
|
+
var _filter$suffixCompone;
|
|
1480
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
|
|
1481
|
+
key: filter.key
|
|
1482
|
+
}, /*#__PURE__*/React__default["default"].createElement(Block, {
|
|
1483
|
+
filter: filter,
|
|
1484
|
+
handleDelete: handleDelete,
|
|
1485
|
+
setIsPaneOpen: setIsPaneOpen
|
|
1486
|
+
}), (_filter$suffixCompone = filter.suffixComponent) === null || _filter$suffixCompone === void 0 ? void 0 : _filter$suffixCompone.call(filter), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1487
|
+
className: "neeto-filters-bar--separator"
|
|
1488
|
+
}));
|
|
1489
|
+
}), childrenKeys.filter(function (childKey) {
|
|
1490
|
+
return ramda.has(childKey, searchParams);
|
|
1491
|
+
}).map(function (childKey) {
|
|
1492
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
|
|
1493
|
+
key: childKey
|
|
1494
|
+
}, /*#__PURE__*/React__default["default"].createElement(ChildBlock, {
|
|
1495
|
+
childKey: childKey,
|
|
1496
|
+
handleDelete: handleDelete,
|
|
1497
|
+
setIsPaneOpen: setIsPaneOpen
|
|
1498
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1499
|
+
className: "neeto-filters-bar--separator"
|
|
1500
|
+
}));
|
|
1501
|
+
}), ramda.isNotNil(entity) && /*#__PURE__*/React__default["default"].createElement(Segment, {
|
|
1502
|
+
childrenKeys: childrenKeys,
|
|
1503
|
+
columns: columns,
|
|
1504
|
+
defaultSegmentName: defaultSegmentName,
|
|
1505
|
+
entity: entity,
|
|
1506
|
+
filters: filters,
|
|
1507
|
+
setIsFilterPaneOpen: setIsPaneOpen
|
|
1508
|
+
}), !hideClearButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
1509
|
+
"data-cy": "neeto-filters-bar-clear-btn",
|
|
1510
|
+
label: t("neetoFilters.common.clearFilters"),
|
|
1511
|
+
style: "text",
|
|
1512
|
+
onClick: handleClearAll
|
|
1484
1513
|
}));
|
|
1485
|
-
}
|
|
1486
|
-
childrenKeys: childrenKeys,
|
|
1487
|
-
columns: columns,
|
|
1488
|
-
entity: entity,
|
|
1489
|
-
filters: filters,
|
|
1490
|
-
setIsFilterPaneOpen: setIsPaneOpen
|
|
1491
|
-
}), !hideClearButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
1492
|
-
"data-cy": "neeto-filters-bar-clear-btn",
|
|
1493
|
-
label: t("neetoFilters.common.clearFilters"),
|
|
1494
|
-
style: "text",
|
|
1495
|
-
onClick: handleClearAll
|
|
1496
|
-
}));
|
|
1514
|
+
}();
|
|
1497
1515
|
};
|
|
1498
1516
|
|
|
1499
1517
|
function _extends() {
|
|
@@ -3273,16 +3291,13 @@ var Pane = function Pane(_ref) {
|
|
|
3273
3291
|
weight: "semibold"
|
|
3274
3292
|
}, t("neetoFilters.common.filters"))), /*#__PURE__*/React__default["default"].createElement(Slider.Body, {
|
|
3275
3293
|
className: "neeto-filters-pane-filter__body neeto-ui-pt-2"
|
|
3276
|
-
}, isSearchable && /*#__PURE__*/React__default["default"].createElement(
|
|
3277
|
-
autoFocus: true,
|
|
3294
|
+
}, isSearchable && /*#__PURE__*/React__default["default"].createElement(Search__default["default"], {
|
|
3278
3295
|
"data-cy": "neeto-filters-column-search",
|
|
3279
|
-
prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
|
|
3280
|
-
value: searchTerm,
|
|
3281
3296
|
placeholder: t("neetoFilters.messages.searchResources", {
|
|
3282
3297
|
resources: t("neetoFilters.common.filters").toLocaleLowerCase()
|
|
3283
3298
|
}),
|
|
3284
|
-
|
|
3285
|
-
return setSearchTerm(
|
|
3299
|
+
onSearch: function onSearch(value) {
|
|
3300
|
+
return setSearchTerm(value);
|
|
3286
3301
|
}
|
|
3287
3302
|
}), ungroupedColumns.map(function (column) {
|
|
3288
3303
|
return /*#__PURE__*/React__default["default"].createElement(Item, {
|
|
@@ -3442,7 +3457,8 @@ var DeleteAlert = function DeleteAlert(_ref) {
|
|
|
3442
3457
|
|
|
3443
3458
|
var Card = function Card(_ref) {
|
|
3444
3459
|
var segment = _ref.segment,
|
|
3445
|
-
columns = _ref.columns
|
|
3460
|
+
columns = _ref.columns,
|
|
3461
|
+
defaultSegmentName = _ref.defaultSegmentName;
|
|
3446
3462
|
var _useState = React.useState(false),
|
|
3447
3463
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3448
3464
|
isEditing = _useState2[0],
|
|
@@ -3476,7 +3492,7 @@ var Card = function Card(_ref) {
|
|
|
3476
3492
|
initialValues: segment,
|
|
3477
3493
|
validateOnChange: true,
|
|
3478
3494
|
validateOnBlur: true,
|
|
3479
|
-
validationSchema:
|
|
3495
|
+
validationSchema: buildSegmentsValidationSchema(defaultSegmentName),
|
|
3480
3496
|
onSubmit: handleRename,
|
|
3481
3497
|
enableReinitialize: true
|
|
3482
3498
|
}
|
|
@@ -3494,6 +3510,7 @@ var Card = function Card(_ref) {
|
|
|
3494
3510
|
style: "body2"
|
|
3495
3511
|
}, segment.name), /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
|
|
3496
3512
|
buttonStyle: "text",
|
|
3513
|
+
disabled: neetoCist.isNotPresent(segment.id),
|
|
3497
3514
|
icon: neetoIcons.MenuHorizontal,
|
|
3498
3515
|
size: "small"
|
|
3499
3516
|
}, /*#__PURE__*/React__default["default"].createElement(Menu, null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
|
|
@@ -3521,7 +3538,8 @@ var ManagePane = function ManagePane(_ref) {
|
|
|
3521
3538
|
var isOpen = _ref.isOpen,
|
|
3522
3539
|
onClose = _ref.onClose,
|
|
3523
3540
|
entity = _ref.entity,
|
|
3524
|
-
columns = _ref.columns
|
|
3541
|
+
columns = _ref.columns,
|
|
3542
|
+
defaultSegmentName = _ref.defaultSegmentName;
|
|
3525
3543
|
var _useState = React.useState(""),
|
|
3526
3544
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3527
3545
|
searchTerm = _useState2[0],
|
|
@@ -3545,25 +3563,26 @@ var ManagePane = function ManagePane(_ref) {
|
|
|
3545
3563
|
style: "h2"
|
|
3546
3564
|
}, t("neetoFilters.segments.manageSegments"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, {
|
|
3547
3565
|
className: "max-h-full gap-4 overflow-scroll"
|
|
3548
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
3566
|
+
}, /*#__PURE__*/React__default["default"].createElement(Search__default["default"], {
|
|
3549
3567
|
className: "w-full flex-grow-0",
|
|
3550
3568
|
placeholder: t("neetoFilters.segments.searchSegments"),
|
|
3551
|
-
prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
|
|
3552
3569
|
ref: inputRef,
|
|
3553
|
-
|
|
3554
|
-
value: searchTerm,
|
|
3555
|
-
onChange: function onChange(_ref2) {
|
|
3556
|
-
var value = _ref2.target.value;
|
|
3570
|
+
onSearch: function onSearch(value) {
|
|
3557
3571
|
return setSearchTerm(value);
|
|
3558
3572
|
}
|
|
3559
3573
|
}), isLoading ? /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
|
|
3560
3574
|
className: "mx-auto mt-4"
|
|
3561
|
-
}) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
3575
|
+
}) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Card$1, {
|
|
3576
|
+
segment: {
|
|
3577
|
+
name: defaultSegmentName
|
|
3578
|
+
}
|
|
3579
|
+
}), ramda.isEmpty(segments) ? /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
3562
3580
|
className: "mx-auto",
|
|
3563
3581
|
style: "body2"
|
|
3564
3582
|
}, t("neetoFilters.segments.noSegmentsFound")) : segments.map(function (segment) {
|
|
3565
3583
|
return /*#__PURE__*/React__default["default"].createElement(Card$1, {
|
|
3566
3584
|
columns: columns,
|
|
3585
|
+
defaultSegmentName: defaultSegmentName,
|
|
3567
3586
|
segment: segment,
|
|
3568
3587
|
key: segment.id
|
|
3569
3588
|
});
|
|
@@ -3575,7 +3594,8 @@ var ITEMS_MAX_COUNT = 20;
|
|
|
3575
3594
|
var MenuBlocks = function MenuBlocks(_ref) {
|
|
3576
3595
|
var entity = _ref.entity,
|
|
3577
3596
|
searchTerm = _ref.searchTerm,
|
|
3578
|
-
columns = _ref.columns
|
|
3597
|
+
columns = _ref.columns,
|
|
3598
|
+
defaultSegmentName = _ref.defaultSegmentName;
|
|
3579
3599
|
var _useState = React.useState(false),
|
|
3580
3600
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3581
3601
|
showAll = _useState2[0],
|
|
@@ -3586,6 +3606,7 @@ var MenuBlocks = function MenuBlocks(_ref) {
|
|
|
3586
3606
|
t = _useTranslation.t;
|
|
3587
3607
|
var _Object$fromEntries = Object.fromEntries(new URLSearchParams(location.search)),
|
|
3588
3608
|
segmentId = _Object$fromEntries.segmentId;
|
|
3609
|
+
var appliedFilters = buildFiltersFromURL(columns);
|
|
3589
3610
|
var _useFetchSegments = useFetchSegments({
|
|
3590
3611
|
entity: entity,
|
|
3591
3612
|
searchTerm: searchTerm
|
|
@@ -3593,27 +3614,40 @@ var MenuBlocks = function MenuBlocks(_ref) {
|
|
|
3593
3614
|
_useFetchSegments$dat = _useFetchSegments.data,
|
|
3594
3615
|
segments = _useFetchSegments$dat === void 0 ? [] : _useFetchSegments$dat,
|
|
3595
3616
|
isLoading = _useFetchSegments.isLoading;
|
|
3596
|
-
var
|
|
3617
|
+
var clearAppliedFilters = function clearAppliedFilters() {
|
|
3597
3618
|
var _filters$, _filters$2;
|
|
3598
|
-
var
|
|
3599
|
-
|
|
3600
|
-
return ramda.equals(id, segmentId) ? history.push({
|
|
3619
|
+
var filters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : appliedFilters;
|
|
3620
|
+
history.push({
|
|
3601
3621
|
search: buildUrlFromFilters({
|
|
3602
3622
|
columns: columns,
|
|
3603
3623
|
filters: [],
|
|
3604
3624
|
isClearAll: true,
|
|
3605
|
-
childrenKeys: ramda.pluck("key", neetoCist.filterBy({
|
|
3625
|
+
childrenKeys: ((_filters$ = filters[0]) === null || _filters$ === void 0 ? void 0 : _filters$.conditions) && ramda.pluck("key", neetoCist.filterBy({
|
|
3606
3626
|
node: "children"
|
|
3607
|
-
}, (_filters$ = filters[0]) === null || _filters$ === void 0 ? void 0 : _filters
|
|
3627
|
+
}, (_filters$2 = filters[0]) === null || _filters$2 === void 0 ? void 0 : _filters$2.conditions))
|
|
3608
3628
|
})
|
|
3609
|
-
})
|
|
3629
|
+
});
|
|
3630
|
+
};
|
|
3631
|
+
var applySelectedSegment = function applySelectedSegment(_ref2) {
|
|
3632
|
+
var _filters$3;
|
|
3633
|
+
var id = _ref2.id,
|
|
3634
|
+
filters = _ref2.filters;
|
|
3635
|
+
history.push({
|
|
3610
3636
|
search: buildUrlFromSegment({
|
|
3611
3637
|
columns: columns,
|
|
3612
|
-
filters: (_filters$
|
|
3638
|
+
filters: (_filters$3 = filters[0]) === null || _filters$3 === void 0 ? void 0 : _filters$3.conditions,
|
|
3613
3639
|
id: id
|
|
3614
3640
|
})
|
|
3615
3641
|
});
|
|
3616
3642
|
};
|
|
3643
|
+
var handleSelectSegment = function handleSelectSegment(_ref3) {
|
|
3644
|
+
var id = _ref3.id,
|
|
3645
|
+
filters = _ref3.filters;
|
|
3646
|
+
return ramda.equals(id, segmentId) ? clearAppliedFilters(filters) : applySelectedSegment({
|
|
3647
|
+
id: id,
|
|
3648
|
+
filters: filters
|
|
3649
|
+
});
|
|
3650
|
+
};
|
|
3617
3651
|
if (isLoading) {
|
|
3618
3652
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null);
|
|
3619
3653
|
}
|
|
@@ -3633,6 +3667,10 @@ var MenuBlocks = function MenuBlocks(_ref) {
|
|
|
3633
3667
|
return !open;
|
|
3634
3668
|
});
|
|
3635
3669
|
}
|
|
3670
|
+
}), /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Block, {
|
|
3671
|
+
active: ramda.isEmpty(appliedFilters),
|
|
3672
|
+
label: defaultSegmentName,
|
|
3673
|
+
onClick: clearAppliedFilters
|
|
3636
3674
|
}), segments.slice(0, showAll ? segments.length : ITEMS_MAX_COUNT).map(function (segment) {
|
|
3637
3675
|
return /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Block, {
|
|
3638
3676
|
active: segment.id === segmentId,
|
|
@@ -3651,77 +3689,83 @@ var Segments = function Segments(_ref) {
|
|
|
3651
3689
|
var entity = _ref.entity,
|
|
3652
3690
|
columns = _ref.columns,
|
|
3653
3691
|
_ref$setIsFilterPaneO = _ref.setIsFilterPaneOpen,
|
|
3654
|
-
setIsFilterPaneOpen = _ref$setIsFilterPaneO === void 0 ? neetoCist.noop : _ref$setIsFilterPaneO
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3692
|
+
setIsFilterPaneOpen = _ref$setIsFilterPaneO === void 0 ? neetoCist.noop : _ref$setIsFilterPaneO,
|
|
3693
|
+
_ref$defaultSegmentNa = _ref.defaultSegmentName,
|
|
3694
|
+
defaultSegmentName = _ref$defaultSegmentNa === void 0 ? i18next.t("neetoFilters.common.allResults") : _ref$defaultSegmentNa;
|
|
3695
|
+
return function () {
|
|
3696
|
+
var _useState = React.useState(""),
|
|
3697
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
3698
|
+
searchTerm = _useState2[0],
|
|
3699
|
+
setSearchTerm = _useState2[1];
|
|
3700
|
+
var _useState3 = React.useState(true),
|
|
3701
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
3702
|
+
isSearchCollapsed = _useState4[0],
|
|
3703
|
+
setIsSearchCollapsed = _useState4[1];
|
|
3704
|
+
var _useState5 = React.useState(false),
|
|
3705
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
3706
|
+
isSegmentsPaneOpen = _useState6[0],
|
|
3707
|
+
setIsSegmentsPaneOpen = _useState6[1];
|
|
3708
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
3709
|
+
t = _useTranslation.t;
|
|
3710
|
+
var debouncedSearchTerm = reactUtils.useDebounce(searchTerm);
|
|
3711
|
+
var iconProps = [{
|
|
3712
|
+
icon: neetoIcons.Search,
|
|
3713
|
+
onClick: function onClick() {
|
|
3714
|
+
setSearchTerm("");
|
|
3715
|
+
setIsSearchCollapsed(function (collapsed) {
|
|
3716
|
+
return !collapsed;
|
|
3717
|
+
});
|
|
3718
|
+
},
|
|
3719
|
+
tooltipProps: {
|
|
3720
|
+
content: t("neetoFilters.segments.searchSegments"),
|
|
3721
|
+
position: "top"
|
|
3722
|
+
}
|
|
3723
|
+
}, {
|
|
3724
|
+
icon: neetoIcons.Settings,
|
|
3725
|
+
onClick: function onClick() {
|
|
3726
|
+
setIsFilterPaneOpen(false);
|
|
3727
|
+
setIsSegmentsPaneOpen(true);
|
|
3728
|
+
},
|
|
3729
|
+
tooltipProps: {
|
|
3730
|
+
content: t("neetoFilters.segments.manageSegments"),
|
|
3731
|
+
position: "top"
|
|
3732
|
+
}
|
|
3733
|
+
}];
|
|
3734
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].SubTitle, {
|
|
3735
|
+
iconProps: iconProps
|
|
3736
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
3737
|
+
component: "h4",
|
|
3738
|
+
style: "h5",
|
|
3739
|
+
textTransform: "uppercase",
|
|
3740
|
+
weight: "bold"
|
|
3741
|
+
}, t("neetoFilters.common.segments"))), /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Search, {
|
|
3742
|
+
autoFocus: true,
|
|
3743
|
+
isCollapsed: isSearchCollapsed,
|
|
3744
|
+
placeholder: t("neetoFilters.segments.searchSegments"),
|
|
3745
|
+
value: searchTerm,
|
|
3746
|
+
onChange: function onChange(_ref2) {
|
|
3747
|
+
var value = _ref2.target.value;
|
|
3748
|
+
return setSearchTerm(value);
|
|
3749
|
+
},
|
|
3750
|
+
onCollapse: function onCollapse() {
|
|
3751
|
+
setSearchTerm("");
|
|
3752
|
+
setIsSearchCollapsed(true);
|
|
3753
|
+
}
|
|
3754
|
+
}), /*#__PURE__*/React__default["default"].createElement(MenuBlocks$1, {
|
|
3755
|
+
columns: columns,
|
|
3756
|
+
defaultSegmentName: defaultSegmentName,
|
|
3757
|
+
entity: entity,
|
|
3758
|
+
searchTerm: debouncedSearchTerm
|
|
3759
|
+
}), /*#__PURE__*/React__default["default"].createElement(ManagePane, {
|
|
3760
|
+
columns: columns,
|
|
3761
|
+
defaultSegmentName: defaultSegmentName,
|
|
3762
|
+
entity: entity,
|
|
3763
|
+
isOpen: isSegmentsPaneOpen,
|
|
3764
|
+
onClose: function onClose() {
|
|
3765
|
+
return setIsSegmentsPaneOpen(false);
|
|
3766
|
+
}
|
|
3767
|
+
}));
|
|
3768
|
+
}();
|
|
3725
3769
|
};
|
|
3726
3770
|
var index = /*#__PURE__*/React__default["default"].memo(Segments);
|
|
3727
3771
|
|