@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.
- package/package.json +6 -6
- package/src/concepts/api.js +3 -7
- package/src/concepts/components/ConceptActions.js +1 -0
- package/src/concepts/components/ConceptCreate.js +6 -4
- package/src/concepts/components/ConceptRoutes.js +10 -33
- package/src/concepts/components/Concepts.js +25 -16
- package/src/concepts/components/ConceptsActions.js +8 -14
- package/src/concepts/components/ConceptsBulkUpdate.js +25 -64
- package/src/concepts/components/ConceptsLabelResults.js +13 -26
- package/src/concepts/components/ConceptsLinksManagement.js +6 -92
- package/src/concepts/components/ConceptsPagination.js +13 -11
- package/src/concepts/components/ConceptsPanel.js +57 -20
- package/src/concepts/components/ConceptsTable.js +77 -106
- package/src/concepts/components/ConceptsUpdateButton.js +49 -37
- package/src/concepts/components/DomainConcepts.js +2 -11
- package/src/concepts/components/LinkedMessage.js +81 -0
- package/src/concepts/components/__tests__/ConceptLinksManagement.spec.js +60 -12
- package/src/concepts/components/__tests__/Concepts.spec.js +66 -11
- package/src/concepts/components/__tests__/ConceptsActions.spec.js +47 -3
- package/src/concepts/components/__tests__/ConceptsBulkUpdate.spec.js +7 -3
- package/src/concepts/components/__tests__/ConceptsLabelResults.spec.js +34 -4
- package/src/concepts/components/__tests__/ConceptsPanel.spec.js +59 -13
- package/src/concepts/components/__tests__/ConceptsTable.spec.js +53 -6
- package/src/concepts/components/__tests__/ConceptsUpdateButton.spec.js +26 -13
- package/src/concepts/components/__tests__/__snapshots__/ConceptLinksManagement.spec.js.snap +164 -8
- package/src/concepts/components/__tests__/__snapshots__/Concepts.spec.js.snap +284 -34
- package/src/concepts/components/__tests__/__snapshots__/ConceptsActions.spec.js.snap +1 -1
- package/src/concepts/components/__tests__/__snapshots__/ConceptsPanel.spec.js.snap +125 -2
- package/src/concepts/components/__tests__/__snapshots__/ConceptsTable.spec.js.snap +28 -44
- package/src/concepts/components/__tests__/__snapshots__/ConceptsUpdateButton.spec.js.snap +10 -47
- package/src/concepts/hooks/useConcepts.js +34 -0
- package/src/concepts/reducers/bulkUpdateQueryInfo.js +12 -0
- package/src/concepts/reducers/index.js +2 -26
- package/src/concepts/relations/components/ConceptRelationsRoutes.js +39 -35
- package/src/concepts/relations/components/ConceptSelector.js +44 -29
- package/src/concepts/relations/components/__tests__/ConceptRelationForm.spec.js +63 -23
- package/src/concepts/relations/components/__tests__/ConceptSelector.spec.js +74 -41
- package/src/concepts/relations/components/__tests__/ConceptSelector2.spec.js +72 -0
- package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelationForm.spec.js.snap +44 -8
- package/src/concepts/relations/components/__tests__/__snapshots__/ConceptSelector.spec.js.snap +44 -27
- package/src/concepts/routines.js +2 -29
- package/src/concepts/sagas/__tests__/bulkUpdate.spec.js +6 -10
- package/src/concepts/sagas/__tests__/downloadConcepts.spec.js +4 -8
- package/src/concepts/sagas/bulkUpdate.js +6 -5
- package/src/concepts/sagas/downloadConcepts.js +3 -4
- package/src/concepts/sagas/index.js +2 -17
- package/src/concepts/selectors/getConceptColumns.js +12 -21
- package/src/concepts/selectors/index.js +1 -7
- package/src/concepts/utils/filterOptions.js +6 -5
- package/src/concepts/components/ConceptFilters.js +0 -20
- package/src/concepts/components/ConceptFiltersLoader.js +0 -27
- package/src/concepts/components/ConceptSelectedFilters.js +0 -29
- package/src/concepts/components/ConceptSelectedFiltersDefault.js +0 -42
- package/src/concepts/components/ConceptSelectedFiltersPending.js +0 -41
- package/src/concepts/components/ConceptSelectedFiltersPublished.js +0 -73
- package/src/concepts/components/ConceptUserFiltersLoader.js +0 -27
- package/src/concepts/components/ConceptsLoader.js +0 -38
- package/src/concepts/components/ConceptsSearch.js +0 -32
- package/src/concepts/components/__tests__/ConceptFilters.spec.js +0 -19
- package/src/concepts/components/__tests__/ConceptSelectedFilters.spec.js +0 -10
- package/src/concepts/components/__tests__/ConceptUserFiltersLoader.spec.js +0 -27
- package/src/concepts/components/__tests__/ConceptsLoader.spec.js +0 -34
- package/src/concepts/components/__tests__/__snapshots__/ConceptFilters.spec.js.snap +0 -47
- package/src/concepts/components/__tests__/__snapshots__/ConceptSelectedFilters.spec.js.snap +0 -9
- package/src/concepts/components/__tests__/__snapshots__/ConceptUserFiltersLoader.spec.js.snap +0 -3
- package/src/concepts/reducers/__tests__/conceptActiveFilters.spec.js +0 -83
- package/src/concepts/reducers/__tests__/conceptCount.spec.js +0 -33
- package/src/concepts/reducers/__tests__/conceptFilters.spec.js +0 -49
- package/src/concepts/reducers/__tests__/conceptFiltersLoading.spec.js +0 -28
- package/src/concepts/reducers/__tests__/conceptQuery.spec.js +0 -75
- package/src/concepts/reducers/__tests__/conceptSelectedFilter.spec.js +0 -66
- package/src/concepts/reducers/__tests__/conceptSelectedUserFilter.spec.js +0 -53
- package/src/concepts/reducers/__tests__/conceptUserFilters.spec.js +0 -76
- package/src/concepts/reducers/__tests__/concepts.spec.js +0 -40
- package/src/concepts/reducers/__tests__/conceptsActions.spec.js +0 -38
- package/src/concepts/reducers/__tests__/conceptsLoading.spec.js +0 -32
- package/src/concepts/reducers/__tests__/conceptsPageSize.spec.js +0 -33
- package/src/concepts/reducers/__tests__/previousConceptQuery.spec.js +0 -23
- package/src/concepts/reducers/conceptActiveFilters.js +0 -58
- package/src/concepts/reducers/conceptCount.js +0 -20
- package/src/concepts/reducers/conceptFilters.js +0 -21
- package/src/concepts/reducers/conceptFiltersLoading.js +0 -14
- package/src/concepts/reducers/conceptQuery.js +0 -60
- package/src/concepts/reducers/conceptSelectedFilter.js +0 -34
- package/src/concepts/reducers/conceptSelectedUserFilter.js +0 -31
- package/src/concepts/reducers/conceptUserFilters.js +0 -36
- package/src/concepts/reducers/concepts.js +0 -21
- package/src/concepts/reducers/conceptsActions.js +0 -24
- package/src/concepts/reducers/conceptsLoading.js +0 -16
- package/src/concepts/reducers/conceptsPageSize.js +0 -16
- package/src/concepts/reducers/previousConceptQuery.js +0 -15
- package/src/concepts/sagas/__tests__/deleteConceptUserFilter.spec.js +0 -75
- package/src/concepts/sagas/__tests__/fetchConceptUserFilters.spec.js +0 -70
- package/src/concepts/sagas/__tests__/fetchConcepts.spec.js +0 -87
- package/src/concepts/sagas/__tests__/saveConceptFilters.spec.js +0 -78
- package/src/concepts/sagas/deleteConceptUserFilter.js +0 -34
- package/src/concepts/sagas/fecthConceptUserFilters.js +0 -30
- package/src/concepts/sagas/fetchConceptFilters.js +0 -29
- package/src/concepts/sagas/fetchConcepts.js +0 -27
- package/src/concepts/sagas/saveConceptFilters.js +0 -30
- package/src/concepts/selectors/__tests__/getConceptAvailableFilters.spec.js +0 -16
- package/src/concepts/selectors/__tests__/getConceptFilterTypes.spec.js +0 -19
- package/src/concepts/selectors/__tests__/getConceptSelectedFilterActiveValues.spec.js +0 -16
- package/src/concepts/selectors/__tests__/getConceptSelectedFilterValues.spec.js +0 -15
- package/src/concepts/selectors/__tests__/getConceptSelectedFilters.spec.js +0 -15
- package/src/concepts/selectors/__tests__/mapSelectedFilterStateToPropsByStatus.spec.js +0 -37
- package/src/concepts/selectors/getConceptAvailableFilters.js +0 -15
- package/src/concepts/selectors/getConceptFilterTypes.js +0 -7
- package/src/concepts/selectors/getConceptSelectedFilterActiveValues.js +0 -9
- package/src/concepts/selectors/getConceptSelectedFilterValues.js +0 -12
- package/src/concepts/selectors/getConceptSelectedFilters.js +0 -7
- package/src/concepts/selectors/getPreviousConceptQuery.js +0 -1
- 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,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 +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
|
-
};
|