@truedat/bg 6.3.3 → 6.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/package.json +6 -6
  2. package/src/concepts/api.js +3 -7
  3. package/src/concepts/components/ConceptActions.js +1 -0
  4. package/src/concepts/components/ConceptCreate.js +6 -4
  5. package/src/concepts/components/ConceptRoutes.js +10 -33
  6. package/src/concepts/components/Concepts.js +25 -16
  7. package/src/concepts/components/ConceptsActions.js +8 -14
  8. package/src/concepts/components/ConceptsBulkUpdate.js +25 -64
  9. package/src/concepts/components/ConceptsLabelResults.js +13 -26
  10. package/src/concepts/components/ConceptsLinksManagement.js +6 -92
  11. package/src/concepts/components/ConceptsPagination.js +13 -11
  12. package/src/concepts/components/ConceptsPanel.js +57 -20
  13. package/src/concepts/components/ConceptsTable.js +77 -106
  14. package/src/concepts/components/ConceptsUpdateButton.js +49 -37
  15. package/src/concepts/components/DomainConcepts.js +2 -11
  16. package/src/concepts/components/LinkedMessage.js +81 -0
  17. package/src/concepts/components/__tests__/ConceptLinksManagement.spec.js +60 -12
  18. package/src/concepts/components/__tests__/Concepts.spec.js +66 -11
  19. package/src/concepts/components/__tests__/ConceptsActions.spec.js +47 -3
  20. package/src/concepts/components/__tests__/ConceptsBulkUpdate.spec.js +7 -3
  21. package/src/concepts/components/__tests__/ConceptsLabelResults.spec.js +34 -4
  22. package/src/concepts/components/__tests__/ConceptsPanel.spec.js +59 -13
  23. package/src/concepts/components/__tests__/ConceptsTable.spec.js +53 -6
  24. package/src/concepts/components/__tests__/ConceptsUpdateButton.spec.js +26 -13
  25. package/src/concepts/components/__tests__/__snapshots__/ConceptLinksManagement.spec.js.snap +164 -8
  26. package/src/concepts/components/__tests__/__snapshots__/Concepts.spec.js.snap +284 -34
  27. package/src/concepts/components/__tests__/__snapshots__/ConceptsActions.spec.js.snap +1 -1
  28. package/src/concepts/components/__tests__/__snapshots__/ConceptsPanel.spec.js.snap +125 -2
  29. package/src/concepts/components/__tests__/__snapshots__/ConceptsTable.spec.js.snap +28 -44
  30. package/src/concepts/components/__tests__/__snapshots__/ConceptsUpdateButton.spec.js.snap +10 -47
  31. package/src/concepts/hooks/useConcepts.js +34 -0
  32. package/src/concepts/reducers/bulkUpdateQueryInfo.js +12 -0
  33. package/src/concepts/reducers/index.js +2 -26
  34. package/src/concepts/relations/components/ConceptRelationsRoutes.js +39 -35
  35. package/src/concepts/relations/components/ConceptSelector.js +44 -29
  36. package/src/concepts/relations/components/__tests__/ConceptRelationForm.spec.js +63 -23
  37. package/src/concepts/relations/components/__tests__/ConceptSelector.spec.js +74 -41
  38. package/src/concepts/relations/components/__tests__/ConceptSelector2.spec.js +72 -0
  39. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelationForm.spec.js.snap +44 -8
  40. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptSelector.spec.js.snap +44 -27
  41. package/src/concepts/routines.js +2 -29
  42. package/src/concepts/sagas/__tests__/bulkUpdate.spec.js +6 -10
  43. package/src/concepts/sagas/__tests__/downloadConcepts.spec.js +4 -8
  44. package/src/concepts/sagas/bulkUpdate.js +6 -5
  45. package/src/concepts/sagas/downloadConcepts.js +3 -4
  46. package/src/concepts/sagas/index.js +2 -17
  47. package/src/concepts/selectors/getConceptColumns.js +12 -21
  48. package/src/concepts/selectors/index.js +1 -7
  49. package/src/concepts/utils/filterOptions.js +6 -5
  50. package/src/concepts/components/ConceptFilters.js +0 -20
  51. package/src/concepts/components/ConceptFiltersLoader.js +0 -27
  52. package/src/concepts/components/ConceptSelectedFilters.js +0 -29
  53. package/src/concepts/components/ConceptSelectedFiltersDefault.js +0 -42
  54. package/src/concepts/components/ConceptSelectedFiltersPending.js +0 -41
  55. package/src/concepts/components/ConceptSelectedFiltersPublished.js +0 -73
  56. package/src/concepts/components/ConceptUserFiltersLoader.js +0 -27
  57. package/src/concepts/components/ConceptsLoader.js +0 -38
  58. package/src/concepts/components/ConceptsSearch.js +0 -32
  59. package/src/concepts/components/__tests__/ConceptFilters.spec.js +0 -19
  60. package/src/concepts/components/__tests__/ConceptSelectedFilters.spec.js +0 -10
  61. package/src/concepts/components/__tests__/ConceptUserFiltersLoader.spec.js +0 -27
  62. package/src/concepts/components/__tests__/ConceptsLoader.spec.js +0 -34
  63. package/src/concepts/components/__tests__/__snapshots__/ConceptFilters.spec.js.snap +0 -47
  64. package/src/concepts/components/__tests__/__snapshots__/ConceptSelectedFilters.spec.js.snap +0 -9
  65. package/src/concepts/components/__tests__/__snapshots__/ConceptUserFiltersLoader.spec.js.snap +0 -3
  66. package/src/concepts/reducers/__tests__/conceptActiveFilters.spec.js +0 -83
  67. package/src/concepts/reducers/__tests__/conceptCount.spec.js +0 -33
  68. package/src/concepts/reducers/__tests__/conceptFilters.spec.js +0 -49
  69. package/src/concepts/reducers/__tests__/conceptFiltersLoading.spec.js +0 -28
  70. package/src/concepts/reducers/__tests__/conceptQuery.spec.js +0 -75
  71. package/src/concepts/reducers/__tests__/conceptSelectedFilter.spec.js +0 -66
  72. package/src/concepts/reducers/__tests__/conceptSelectedUserFilter.spec.js +0 -53
  73. package/src/concepts/reducers/__tests__/conceptUserFilters.spec.js +0 -76
  74. package/src/concepts/reducers/__tests__/concepts.spec.js +0 -40
  75. package/src/concepts/reducers/__tests__/conceptsActions.spec.js +0 -38
  76. package/src/concepts/reducers/__tests__/conceptsLoading.spec.js +0 -32
  77. package/src/concepts/reducers/__tests__/conceptsPageSize.spec.js +0 -33
  78. package/src/concepts/reducers/__tests__/previousConceptQuery.spec.js +0 -23
  79. package/src/concepts/reducers/conceptActiveFilters.js +0 -58
  80. package/src/concepts/reducers/conceptCount.js +0 -20
  81. package/src/concepts/reducers/conceptFilters.js +0 -21
  82. package/src/concepts/reducers/conceptFiltersLoading.js +0 -14
  83. package/src/concepts/reducers/conceptQuery.js +0 -60
  84. package/src/concepts/reducers/conceptSelectedFilter.js +0 -34
  85. package/src/concepts/reducers/conceptSelectedUserFilter.js +0 -31
  86. package/src/concepts/reducers/conceptUserFilters.js +0 -36
  87. package/src/concepts/reducers/concepts.js +0 -21
  88. package/src/concepts/reducers/conceptsActions.js +0 -24
  89. package/src/concepts/reducers/conceptsLoading.js +0 -16
  90. package/src/concepts/reducers/conceptsPageSize.js +0 -16
  91. package/src/concepts/reducers/previousConceptQuery.js +0 -15
  92. package/src/concepts/sagas/__tests__/deleteConceptUserFilter.spec.js +0 -75
  93. package/src/concepts/sagas/__tests__/fetchConceptUserFilters.spec.js +0 -70
  94. package/src/concepts/sagas/__tests__/fetchConcepts.spec.js +0 -87
  95. package/src/concepts/sagas/__tests__/saveConceptFilters.spec.js +0 -78
  96. package/src/concepts/sagas/deleteConceptUserFilter.js +0 -34
  97. package/src/concepts/sagas/fecthConceptUserFilters.js +0 -30
  98. package/src/concepts/sagas/fetchConceptFilters.js +0 -29
  99. package/src/concepts/sagas/fetchConcepts.js +0 -27
  100. package/src/concepts/sagas/saveConceptFilters.js +0 -30
  101. package/src/concepts/selectors/__tests__/getConceptAvailableFilters.spec.js +0 -16
  102. package/src/concepts/selectors/__tests__/getConceptFilterTypes.spec.js +0 -19
  103. package/src/concepts/selectors/__tests__/getConceptSelectedFilterActiveValues.spec.js +0 -16
  104. package/src/concepts/selectors/__tests__/getConceptSelectedFilterValues.spec.js +0 -15
  105. package/src/concepts/selectors/__tests__/getConceptSelectedFilters.spec.js +0 -15
  106. package/src/concepts/selectors/__tests__/mapSelectedFilterStateToPropsByStatus.spec.js +0 -37
  107. package/src/concepts/selectors/getConceptAvailableFilters.js +0 -15
  108. package/src/concepts/selectors/getConceptFilterTypes.js +0 -7
  109. package/src/concepts/selectors/getConceptSelectedFilterActiveValues.js +0 -9
  110. package/src/concepts/selectors/getConceptSelectedFilterValues.js +0 -12
  111. package/src/concepts/selectors/getConceptSelectedFilters.js +0 -7
  112. package/src/concepts/selectors/getPreviousConceptQuery.js +0 -1
  113. package/src/concepts/selectors/mapSelectedFilterStateToPropsByStatus.js +0 -47
@@ -1,34 +0,0 @@
1
- import { compile } from "path-to-regexp";
2
- import { call, put, takeLatest } from "redux-saga/effects";
3
- import { apiJsonDelete, JSON_OPTS } from "@truedat/core/services/api";
4
- import { deleteConceptUserFilter } from "../routines";
5
- import { API_CONCEPT_USER_FILTER } from "../api";
6
-
7
- const toApiPath = compile(API_CONCEPT_USER_FILTER);
8
-
9
- export function* deleteConceptUserFilterSaga({ payload }) {
10
- try {
11
- const url = toApiPath(payload);
12
- const { id } = payload;
13
- const meta = { id };
14
- yield put({ meta, ...deleteConceptUserFilter.request() });
15
- const { data } = yield call(apiJsonDelete, url, JSON_OPTS);
16
- yield put({ meta, ...deleteConceptUserFilter.success(data) });
17
- } catch (error) {
18
- if (error.response) {
19
- const { status, data } = error.response;
20
- yield put(deleteConceptUserFilter.failure({ status, data }));
21
- } else {
22
- yield put(deleteConceptUserFilter.failure(error.message));
23
- }
24
- } finally {
25
- yield put(deleteConceptUserFilter.fulfill());
26
- }
27
- }
28
-
29
- export function* deleteConceptUserFilterRequestSaga() {
30
- yield takeLatest(
31
- deleteConceptUserFilter.TRIGGER,
32
- deleteConceptUserFilterSaga
33
- );
34
- }
@@ -1,30 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { call, put, takeLatest } from "redux-saga/effects";
3
- import { apiJson, JSON_OPTS } from "@truedat/core/services/api";
4
- import { fetchConceptUserFilters } from "../routines";
5
- import { API_GET_CONCEPT_USER_FILTERS } from "../api";
6
-
7
- export function* fetchConceptUserFiltersSaga() {
8
- try {
9
- const url = API_GET_CONCEPT_USER_FILTERS;
10
- yield put(fetchConceptUserFilters.request());
11
- const { data } = yield call(apiJson, url, JSON_OPTS);
12
- yield put(fetchConceptUserFilters.success(data));
13
- } catch (error) {
14
- if (error.response) {
15
- const { status, data } = error.response;
16
- yield put(fetchConceptUserFilters.failure({ status, data }));
17
- } else {
18
- yield put(fetchConceptUserFilters.failure(error.message));
19
- }
20
- } finally {
21
- yield put(fetchConceptUserFilters.fulfill());
22
- }
23
- }
24
-
25
- export function* fetchConceptUserFiltersRequestSaga() {
26
- yield takeLatest(
27
- fetchConceptUserFilters.TRIGGER,
28
- fetchConceptUserFiltersSaga
29
- );
30
- }
@@ -1,29 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { call, put, takeLatest } from "redux-saga/effects";
3
- import { apiJsonPost, JSON_OPTS } from "@truedat/core/services/api";
4
- import { fetchConceptFilters } from "../routines";
5
- import { API_CONCEPT_FILTERS } from "../api";
6
-
7
- export function* fetchConceptFiltersSaga(payload) {
8
- try {
9
- const url = API_CONCEPT_FILTERS;
10
- yield put(fetchConceptFilters.request());
11
- const filters = _.propOr({}, "payload.filters")(payload);
12
- const body = { filters };
13
- const { data } = yield call(apiJsonPost, url, body, JSON_OPTS);
14
- yield put(fetchConceptFilters.success(data));
15
- } catch (error) {
16
- if (error.response) {
17
- const { status, data } = error.response;
18
- yield put(fetchConceptFilters.failure({ status, data }));
19
- } else {
20
- yield put(fetchConceptFilters.failure(error.message));
21
- }
22
- } finally {
23
- yield put(fetchConceptFilters.fulfill());
24
- }
25
- }
26
-
27
- export function* fetchConceptFiltersRequestSaga() {
28
- yield takeLatest(fetchConceptFilters.TRIGGER, fetchConceptFiltersSaga);
29
- }
@@ -1,27 +0,0 @@
1
- import { call, delay, put, takeLatest } from "redux-saga/effects";
2
- import { apiJsonPost, JSON_OPTS } from "@truedat/core/services/api";
3
- import { fetchConcepts } from "../routines";
4
- import { API_BUSINESS_CONCEPT_VERSIONS_SEARCH } from "../api";
5
-
6
- export function* fetchConceptsSaga({ payload: body }) {
7
- try {
8
- yield delay(100);
9
- const url = API_BUSINESS_CONCEPT_VERSIONS_SEARCH;
10
- yield put(fetchConcepts.request(body));
11
- const { data, headers } = yield call(apiJsonPost, url, body, JSON_OPTS);
12
- yield put(fetchConcepts.success({ data, headers }));
13
- } catch (error) {
14
- if (error.response) {
15
- const { status, data } = error.response;
16
- yield put(fetchConcepts.failure({ status, data }));
17
- } else {
18
- yield put(fetchConcepts.failure(error.message));
19
- }
20
- } finally {
21
- yield put(fetchConcepts.fulfill());
22
- }
23
- }
24
-
25
- export function* fetchConceptsRequestSaga() {
26
- yield takeLatest(fetchConcepts.TRIGGER, fetchConceptsSaga);
27
- }
@@ -1,30 +0,0 @@
1
- import { call, put, takeLatest } from "redux-saga/effects";
2
- import { apiJsonPost, JSON_OPTS } from "@truedat/core/services/api";
3
- import { saveConceptFilters } from "../routines";
4
- import { API_CONCEPT_USER_FILTERS } from "../api";
5
-
6
- export function* saveConceptFiltersSaga({ payload }) {
7
- try {
8
- const { filterName, filters, isGlobal } = payload;
9
- const url = API_CONCEPT_USER_FILTERS;
10
- const requestData = {
11
- user_search_filter: { name: filterName, filters, is_global: isGlobal },
12
- };
13
- yield put({ ...saveConceptFilters.request() });
14
- const { data } = yield call(apiJsonPost, url, requestData, JSON_OPTS);
15
- yield put({ ...saveConceptFilters.success(data) });
16
- } catch (error) {
17
- if (error.response) {
18
- const { status, data } = error.response;
19
- yield put(saveConceptFilters.failure({ status, data }));
20
- } else {
21
- yield put(saveConceptFilters.failure(error.message));
22
- }
23
- } finally {
24
- yield put(saveConceptFilters.fulfill());
25
- }
26
- }
27
-
28
- export function* saveConceptFiltersRequestSaga() {
29
- yield takeLatest(saveConceptFilters.TRIGGER, saveConceptFiltersSaga);
30
- }
@@ -1,16 +0,0 @@
1
- import { getConceptAvailableFilters } from "..";
2
-
3
- const foo = { values: ["foo1", "foo2"] };
4
- const bar = { values: ["bar1", "bar2"] };
5
- const bay = { values: ["bay1"] };
6
- const baz = { values: ["baz1", "baz2"] };
7
-
8
- describe("selectors: getConceptAvailableFilters", () => {
9
- const conceptFilters = { foo, bar, bay, baz };
10
- const conceptActiveFilters = { baz: [] };
11
- const state = { conceptFilters, conceptActiveFilters };
12
-
13
- it("should return the keys of the concept filters which are not currently active", () => {
14
- expect(getConceptAvailableFilters(state)).toEqual(["foo", "bar"]);
15
- });
16
- });
@@ -1,19 +0,0 @@
1
- import { getConceptFilterTypes } from "..";
2
-
3
- const foo = { type: "fooType", values: ["foo1", "foo2"] };
4
- const bar = { type: "barType", values: ["bar1", "bar2"] };
5
- const bay = { values: ["bay1"] };
6
-
7
- describe("selectors: getConceptFilterTypes", () => {
8
- const state = { conceptFilters: { foo, bar, bay } };
9
-
10
- const expected = {
11
- foo: "fooType",
12
- bar: "barType",
13
- bay: undefined,
14
- };
15
-
16
- it("should return a map with filter types", () => {
17
- expect(getConceptFilterTypes(state)).toEqual(expected);
18
- });
19
- });
@@ -1,16 +0,0 @@
1
- import { getConceptSelectedFilterActiveValues } from "..";
2
-
3
- const foo = ["foo1", "foo2"];
4
- const bar = ["bar1", "bar2"];
5
- const baz = ["baz1", "baz2"];
6
-
7
- describe("selectors: getConceptSelectedFilterActiveValues", () => {
8
- const conceptFilters = { foo, bar, baz };
9
- const conceptActiveFilters = { foo: ["foo1"] };
10
- const conceptSelectedFilter = "foo";
11
- const state = { conceptFilters, conceptActiveFilters, conceptSelectedFilter };
12
-
13
- it("should return the active values of the currently selected concept filters", () => {
14
- expect(getConceptSelectedFilterActiveValues(state)).toEqual(["foo1"]);
15
- });
16
- });
@@ -1,15 +0,0 @@
1
- import { getConceptSelectedFilterValues } from "..";
2
-
3
- const foo = { values: ["foo1", "foo2"] };
4
- const bar = { values: ["bar1", "bar2"] };
5
- const baz = { values: ["baz1", "baz2"] };
6
-
7
- describe("selectors: getConceptSelectedFilterValues", () => {
8
- const conceptFilters = { foo, bar, baz };
9
- const conceptSelectedFilter = "foo";
10
- const state = { conceptFilters, conceptSelectedFilter };
11
-
12
- it("should return the values of the currently selected concept filters", () => {
13
- expect(getConceptSelectedFilterValues(state)).toEqual(foo.values);
14
- });
15
- });
@@ -1,15 +0,0 @@
1
- import { getConceptSelectedFilters } from "..";
2
-
3
- const foo = ["foo1", "foo2"];
4
- const bar = ["bar1", "bar2"];
5
- const baz = ["baz1", "baz2"];
6
-
7
- describe("selectors: getConceptAvailableFilters", () => {
8
- const conceptFilters = { foo, bar, baz };
9
- const conceptActiveFilters = { baz: [] };
10
- const state = { conceptFilters, conceptActiveFilters };
11
-
12
- it("should return the keys of the concept filters which are currently active", () => {
13
- expect(getConceptSelectedFilters(state)).toEqual(["baz"]);
14
- });
15
- });
@@ -1,37 +0,0 @@
1
- import { mapSelectedFilterStateToPropsByStatus } from "../mapSelectedFilterStateToPropsByStatus";
2
-
3
- describe("selectors: mapSelectedFilterStateToPropsByStatus", () => {
4
- it("creates i18n options for selectedFilterValues", () => {
5
- const ownProps = { intl: { formatMessage: ({ id }) => `intl.${id}` } };
6
- // const ownProps = null;
7
- const statuses = ["s1", "s2"];
8
- const state = {
9
- conceptSelectedFilter: "status",
10
- conceptFilters: { status: { values: ["s1", "s2"] } },
11
- };
12
- expect(
13
- mapSelectedFilterStateToPropsByStatus(statuses)(state, ownProps)
14
- ).toMatchObject({
15
- selectedFilterValues: expect.arrayContaining([
16
- { text: "intl.concepts.status.s1", value: "s1" },
17
- { text: "intl.concepts.status.s2", value: "s2" },
18
- ]),
19
- });
20
- });
21
-
22
- it("uses message id as fallback if formatMessage is not specified", () => {
23
- const statuses = ["s1", "s2"];
24
- const state = {
25
- conceptSelectedFilter: "status",
26
- conceptFilters: { status: { values: ["s1", "s2"] } },
27
- };
28
- expect(
29
- mapSelectedFilterStateToPropsByStatus(statuses)(state)
30
- ).toMatchObject({
31
- selectedFilterValues: expect.arrayContaining([
32
- { text: "concepts.status.s1", value: "s1" },
33
- { text: "concepts.status.s2", value: "s2" },
34
- ]),
35
- });
36
- });
37
- });
@@ -1,15 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
- import { getConceptSelectedFilters } from "./getConceptSelectedFilters";
4
-
5
- const getConceptFilters = _.propOr({}, "conceptFilters");
6
-
7
- export const getConceptAvailableFilters = createSelector(
8
- [getConceptFilters, getConceptSelectedFilters],
9
- (conceptFilters, conceptSelectedFilters) =>
10
- _.flow(
11
- _.omitBy(({ values }) => _.size(values) < 2),
12
- _.keys,
13
- _.without(conceptSelectedFilters)
14
- )(conceptFilters)
15
- );
@@ -1,7 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
-
4
- export const getConceptFilterTypes = createSelector(
5
- _.prop("conceptFilters"),
6
- _.mapValues("type")
7
- );
@@ -1,9 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
-
4
- export const getConceptSelectedFilterActiveValues = createSelector(
5
- _.prop("conceptSelectedFilter"),
6
- _.prop("conceptActiveFilters"),
7
- (conceptSelectedFilter, conceptActiveFilters) =>
8
- _.flow(_.propOr([], conceptSelectedFilter))(conceptActiveFilters)
9
- );
@@ -1,12 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
- import { formatFilterValues } from "@truedat/core/services/filters";
4
-
5
- export const getConceptSelectedFilterValues = createSelector(
6
- [_.prop("conceptSelectedFilter"), _.prop("conceptFilters")],
7
- (conceptSelectedFilter, conceptFilters) =>
8
- _.flow(
9
- _.propOr({ values: [] }, conceptSelectedFilter),
10
- formatFilterValues
11
- )(conceptFilters)
12
- );
@@ -1,7 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
-
4
- export const getConceptSelectedFilters = createSelector(
5
- [_.prop("conceptActiveFilters")],
6
- _.keys
7
- );
@@ -1 +0,0 @@
1
- export const getPreviousConceptQuery = ({ previousConceptQuery: q = {} }) => q;
@@ -1,47 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { makeOption } from "@truedat/core/services/i18n";
3
- import { translations } from "../utils/filterOptions";
4
- import {
5
- getConceptSelectedFilters,
6
- getConceptSelectedFilterValues,
7
- getConceptSelectedFilterActiveValues,
8
- getConceptFilterTypes,
9
- } from ".";
10
-
11
- export const mapSelectedFilterStateToPropsByStatus =
12
- (statuses) => (state, ownProps) => {
13
- const formatMessage = _.pathOr(
14
- _.prop("id"),
15
- "intl.formatMessage"
16
- )(ownProps);
17
- const {
18
- conceptActiveFilters: activeFilters,
19
- conceptFiltersLoading: loading,
20
- conceptSelectedFilter: selectedFilter,
21
- conceptSelectedUserFilter: selectedUserFilter,
22
- conceptUserFilters: userFilters,
23
- } = state;
24
- const selectedFilterValues =
25
- selectedFilter == "status"
26
- ? _.flow(
27
- getConceptSelectedFilterValues,
28
- _.intersection(statuses)
29
- )(state)
30
- : getConceptSelectedFilterValues(state);
31
- const selectedFilterActiveValues =
32
- getConceptSelectedFilterActiveValues(state);
33
- const selectedFilters = getConceptSelectedFilters(state);
34
- return {
35
- activeFilters,
36
- loading,
37
- filterTypes: getConceptFilterTypes(state),
38
- selectedFilter,
39
- selectedFilters,
40
- selectedFilterActiveValues,
41
- selectedFilterValues: _.map(
42
- makeOption(translations(formatMessage), selectedFilter)
43
- )(selectedFilterValues),
44
- selectedUserFilter,
45
- userFilters,
46
- };
47
- };