@truedat/dd 6.5.5 → 6.6.1

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 (99) hide show
  1. package/package.json +6 -6
  2. package/src/components/CatalogCustomViewCards.js +9 -32
  3. package/src/components/DictionaryRoutes.js +1 -9
  4. package/src/components/GrantRemovalDirectButton.js +1 -3
  5. package/src/components/GrantRequestCancel.js +1 -1
  6. package/src/components/GrantRoutes.js +1 -14
  7. package/src/components/StructureGrantListButton.js +4 -4
  8. package/src/components/StructureSelector.js +70 -44
  9. package/src/components/StructureStructureForm.js +1 -1
  10. package/src/components/StructuresBulkUpdate.js +10 -14
  11. package/src/components/StructuresDownloadOption.js +31 -27
  12. package/src/components/StructuresEditableDownloadOption.js +12 -7
  13. package/src/components/StructuresGrantRequestView.js +55 -24
  14. package/src/components/StructuresLabelResults.js +5 -11
  15. package/src/components/StructuresPagination.js +13 -15
  16. package/src/components/StructuresRoutes.js +17 -33
  17. package/src/components/StructuresTable.js +79 -115
  18. package/src/components/StructuresUpdateOption.js +77 -9
  19. package/src/components/StructuresView.js +67 -52
  20. package/src/components/__tests__/CatalogCustomViewCards.spec.js +44 -7
  21. package/src/components/__tests__/StructureGrantListButton.spec.js +27 -17
  22. package/src/components/__tests__/StructureSelector.spec.js +70 -25
  23. package/src/components/__tests__/StructureStructureForm.spec.js +92 -60
  24. package/src/components/__tests__/StructureStructureLinks.spec.js +1 -1
  25. package/src/components/__tests__/StructuresBulkUpdate.spec.js +26 -14
  26. package/src/components/__tests__/StructuresDownloadOption.spec.js +38 -5
  27. package/src/components/__tests__/StructuresEditableDownloadOption.spec.js +20 -8
  28. package/src/components/__tests__/StructuresGrantRequestView.spec.js +43 -15
  29. package/src/components/__tests__/StructuresLabelResults.spec.js +37 -10
  30. package/src/components/__tests__/StructuresOptions.spec.js +62 -1
  31. package/src/components/__tests__/StructuresSearchResults.spec.js +67 -12
  32. package/src/components/__tests__/StructuresTable.spec.js +77 -88
  33. package/src/components/__tests__/StructuresUpdateOption.spec.js +53 -6
  34. package/src/components/__tests__/StructuresView.spec.js +126 -31
  35. package/src/components/__tests__/__snapshots__/StructureSelector.spec.js.snap +206 -42
  36. package/src/components/__tests__/__snapshots__/StructuresDownloadOption.spec.js.snap +17 -0
  37. package/src/components/__tests__/__snapshots__/StructuresGrantRequestView.spec.js.snap +68 -5
  38. package/src/components/__tests__/__snapshots__/StructuresLabelResults.spec.js.snap +7 -12
  39. package/src/components/__tests__/__snapshots__/StructuresSearchResults.spec.js.snap +72 -27
  40. package/src/components/__tests__/__snapshots__/StructuresTable.spec.js.snap +226 -153
  41. package/src/components/__tests__/__snapshots__/StructuresUpdateOption.spec.js.snap +3 -3
  42. package/src/components/index.js +0 -8
  43. package/src/hooks/useStructures.js +6 -6
  44. package/src/reducers/__tests__/selectedUserSearchFilter.spec.js +2 -23
  45. package/src/reducers/__tests__/structureQuery.spec.js +1 -63
  46. package/src/reducers/index.js +0 -18
  47. package/src/reducers/previousStructureQuery.js +3 -6
  48. package/src/reducers/selectedUserSearchFilter.js +1 -10
  49. package/src/reducers/structureQuery.js +1 -33
  50. package/src/routines.js +1 -15
  51. package/src/sagas/__tests__/bulkUpdateStructures.spec.js +7 -7
  52. package/src/sagas/__tests__/downloadEditableStructures.spec.js +1 -6
  53. package/src/sagas/__tests__/downloadStructures.spec.js +2 -7
  54. package/src/sagas/__tests__/fetchStructures.spec.js +4 -4
  55. package/src/sagas/bulkUpdateStructures.js +6 -4
  56. package/src/sagas/downloadEditableStructures.js +2 -3
  57. package/src/sagas/downloadStructures.js +2 -3
  58. package/src/sagas/index.js +0 -3
  59. package/src/selectors/__tests__/getGrantSelectedFilters.spec.js +1 -1
  60. package/src/selectors/__tests__/structureColumnsSelector.spec.js +5 -19
  61. package/src/selectors/__tests__/templateNamesSelector.spec.js +19 -0
  62. package/src/selectors/index.js +1 -8
  63. package/src/selectors/structureColumnsSelector.js +6 -46
  64. package/src/selectors/templateNamesSelector.js +7 -0
  65. package/src/utils/structureCustomTranslations.js +19 -0
  66. package/src/components/StructureDateFilter.js +0 -32
  67. package/src/components/StructureFilters.js +0 -19
  68. package/src/components/StructureFiltersLoader.js +0 -32
  69. package/src/components/StructureSelectedFilters.js +0 -94
  70. package/src/components/__tests__/StructureDateFilter.spec.js +0 -11
  71. package/src/components/__tests__/__snapshots__/StructureDateFilter.spec.js.snap +0 -13
  72. package/src/reducers/__tests__/structureActiveFilters.spec.js +0 -100
  73. package/src/reducers/__tests__/structureDateFilter.spec.js +0 -57
  74. package/src/reducers/__tests__/structureFilters.spec.js +0 -37
  75. package/src/reducers/__tests__/structureUserFilters.spec.js +0 -76
  76. package/src/reducers/__tests__/structuresActions.spec.js +0 -38
  77. package/src/reducers/__tests__/structuresLoading.spec.js +0 -26
  78. package/src/reducers/structureActiveFilters.js +0 -58
  79. package/src/reducers/structureCount.js +0 -20
  80. package/src/reducers/structureDateFilter.js +0 -33
  81. package/src/reducers/structureFilters.js +0 -21
  82. package/src/reducers/structureFiltersLoading.js +0 -14
  83. package/src/reducers/structureSelectedFilter.js +0 -34
  84. package/src/reducers/structuresActions.js +0 -18
  85. package/src/reducers/structuresLoading.js +0 -14
  86. package/src/reducers/structuresPageSize.js +0 -15
  87. package/src/sagas/fetchStructureFilters.js +0 -29
  88. package/src/selectors/__tests__/bulkUpdateDisabledSelector.spec.js +0 -72
  89. package/src/selectors/__tests__/getStructureAvailableFilters.spec.js +0 -15
  90. package/src/selectors/__tests__/getStructureSelectedFilterActiveValues.spec.js +0 -20
  91. package/src/selectors/__tests__/getStructureSelectedFilterValues.spec.js +0 -15
  92. package/src/selectors/__tests__/getStructureSelectedFilters.spec.js +0 -15
  93. package/src/selectors/bulkUpdateDisabledSelector.js +0 -46
  94. package/src/selectors/getPreviousStructureQuery.js +0 -2
  95. package/src/selectors/getStructureAvailableFilters.js +0 -15
  96. package/src/selectors/getStructureFilterTypes.js +0 -7
  97. package/src/selectors/getStructureSelectedFilterActiveValues.js +0 -9
  98. package/src/selectors/getStructureSelectedFilterValues.js +0 -12
  99. package/src/selectors/getStructureSelectedFilters.js +0 -7
@@ -1,34 +0,0 @@
1
- import {
2
- addStructureFilter,
3
- closeStructureFilter,
4
- openStructureFilter,
5
- removeStructureFilter,
6
- resetStructureFilters,
7
- } from "../routines";
8
-
9
- /** @type {string} */
10
- export const initialState = null;
11
-
12
- export const structureSelectedFilter = (
13
- state = initialState,
14
- { type, payload }
15
- ) => {
16
- switch (type) {
17
- case addStructureFilter.TRIGGER: {
18
- const { filter } = payload;
19
- return filter;
20
- }
21
- case closeStructureFilter.TRIGGER:
22
- return initialState;
23
- case openStructureFilter.TRIGGER: {
24
- const { filter } = payload;
25
- return filter;
26
- }
27
- case removeStructureFilter.TRIGGER:
28
- return initialState;
29
- case resetStructureFilters.TRIGGER:
30
- return initialState;
31
- default:
32
- return state;
33
- }
34
- };
@@ -1,18 +0,0 @@
1
- import { clearStructures, fetchStructures } from "../routines";
2
-
3
- export const initialState = null;
4
-
5
- const structuresActions = (state = initialState, { type, payload }) => {
6
- switch (type) {
7
- case clearStructures.TRIGGER:
8
- return initialState;
9
- case fetchStructures.TRIGGER:
10
- return initialState;
11
- case fetchStructures.SUCCESS:
12
- return payload?.data?._actions || initialState;
13
- default:
14
- return state;
15
- }
16
- };
17
-
18
- export { structuresActions };
@@ -1,14 +0,0 @@
1
- import { fetchStructures, fetchStructureFilters } from "../routines";
2
-
3
- const structuresLoading = (state = false, { type }) => {
4
- switch (type) {
5
- case fetchStructures.TRIGGER:
6
- return true;
7
- case fetchStructures.FULFILL:
8
- return false;
9
- default:
10
- return state;
11
- }
12
- };
13
-
14
- export { structuresLoading };
@@ -1,15 +0,0 @@
1
- import { fetchStructures } from "../routines";
2
-
3
- const defaultPageSize = 20;
4
-
5
- const structuresPageSize = (state = defaultPageSize, { type, payload }) => {
6
- switch (type) {
7
- case fetchStructures.TRIGGER:
8
- const { size } = payload;
9
- return size || state;
10
- default:
11
- return state;
12
- }
13
- };
14
-
15
- export { structuresPageSize };
@@ -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 { fetchStructureFilters } from "../routines";
5
- import { API_DATA_STRUCTURE_FILTERS_SEARCH } from "../api";
6
-
7
- export function* fetchStructureFiltersSaga(payload) {
8
- try {
9
- yield put(fetchStructureFilters.request());
10
- const url = API_DATA_STRUCTURE_FILTERS_SEARCH;
11
- const filters = _.propOr({}, "payload.filters")(payload);
12
- const body = { filters };
13
- const { data } = yield call(apiJsonPost, url, body, JSON_OPTS);
14
- yield put(fetchStructureFilters.success({ data }));
15
- } catch (error) {
16
- if (error.response) {
17
- const { status, data } = error.response;
18
- yield put(fetchStructureFilters.failure({ status, data }));
19
- } else {
20
- yield put(fetchStructureFilters.failure(error.message));
21
- }
22
- } finally {
23
- yield put(fetchStructureFilters.fulfill());
24
- }
25
- }
26
-
27
- export function* fetchStructureFiltersRequestSaga() {
28
- yield takeLatest(fetchStructureFilters.TRIGGER, fetchStructureFiltersSaga);
29
- }
@@ -1,72 +0,0 @@
1
- import {
2
- selectedTypesSelector,
3
- templateNamesSelector,
4
- bulkUpdateDisabledSelector,
5
- } from "../bulkUpdateDisabledSelector";
6
-
7
- const templates = [
8
- { scope: "dd", name: "foo" },
9
- { scope: "dd", name: "bar" },
10
- { name: "baz" },
11
- ];
12
-
13
- describe("selectors: selectedTypesSelector", () => {
14
- it("should return undefined if type.raw filter is not present", () => {
15
- const state = {};
16
- expect(selectedTypesSelector(state)).toBe(undefined);
17
- });
18
-
19
- it("should return the values of the type.raw filter if present", () => {
20
- const values = ["foo", "bar"];
21
- const state = { structureActiveFilters: { "type.raw": values } };
22
- expect(selectedTypesSelector(state)).toBe(values);
23
- });
24
- });
25
-
26
- describe("selectors: templateNamesSelector", () => {
27
- it("should return the names of templates within the dd scope", () => {
28
- const state = { templates };
29
- expect(templateNamesSelector(state)).toEqual(["foo", "bar"]);
30
- });
31
-
32
- it("should return an empty list if no templates are present", () => {
33
- const state = { templates: [] };
34
- expect(templateNamesSelector(state)).toEqual([]);
35
- });
36
- });
37
-
38
- describe("selectors: bulkUpdateDisabledSelector", () => {
39
- const values = ["foo"];
40
- const state = {
41
- templates,
42
- structureCount: 1,
43
- structuresLoading: false,
44
- structures: [{ type: "foo" }],
45
- structureTypes: [{ name: "foo" }],
46
- structureActiveFilters: { "type.raw": values },
47
- };
48
-
49
- it("should return false if a single type is selected which has a template, etc.", () => {
50
- expect(bulkUpdateDisabledSelector(state)).toBe(false);
51
- });
52
-
53
- it("should return true if structureCount is 0", () => {
54
- expect(bulkUpdateDisabledSelector({ ...state, structureCount: 0 })).toBe(
55
- true
56
- );
57
- });
58
-
59
- it("should return true if structuresLoading is true", () => {
60
- const structuresLoading = true;
61
- expect(bulkUpdateDisabledSelector({ ...state, structuresLoading })).toBe(
62
- true
63
- );
64
- });
65
-
66
- it("should return true if structureTypesLoading is true", () => {
67
- const structureTypesLoading = true;
68
- expect(
69
- bulkUpdateDisabledSelector({ ...state, structureTypesLoading })
70
- ).toBe(true);
71
- });
72
- });
@@ -1,15 +0,0 @@
1
- import { getStructureAvailableFilters } from "..";
2
-
3
- const foo = { values: ["foo1", "foo2"] };
4
- const bar = { values: ["bar1", "bar2"] };
5
- const baz = { values: ["baz1", "baz2"] };
6
-
7
- describe("selectors: getStructureAvailableFilters", () => {
8
- const structureFilters = { foo, bar, baz };
9
- const structureActiveFilters = { baz: [] };
10
- const state = { structureFilters, structureActiveFilters };
11
-
12
- it("should return the keys of the structure filters which are not currently active", () => {
13
- expect(getStructureAvailableFilters(state)).toEqual(["foo", "bar"]);
14
- });
15
- });
@@ -1,20 +0,0 @@
1
- import { getStructureSelectedFilterActiveValues } from "..";
2
-
3
- const foo = ["foo1", "foo2"];
4
- const bar = ["bar1", "bar2"];
5
- const baz = ["baz1", "baz2"];
6
-
7
- describe("selectors: getStructureSelectedFilterActiveValues", () => {
8
- const structureFilters = { foo, bar, baz };
9
- const structureActiveFilters = { foo: ["foo1"] };
10
- const structureSelectedFilter = "foo";
11
- const state = {
12
- structureFilters,
13
- structureActiveFilters,
14
- structureSelectedFilter
15
- };
16
-
17
- it("should return the active values of the currently selected structure filters", () => {
18
- expect(getStructureSelectedFilterActiveValues(state)).toEqual(["foo1"]);
19
- });
20
- });
@@ -1,15 +0,0 @@
1
- import { getStructureSelectedFilterValues } from "..";
2
-
3
- const foo = { values: ["foo1", "foo2"] };
4
- const bar = { values: ["bar1", "bar2"] };
5
- const baz = { values: ["baz1", "baz2"] };
6
-
7
- describe("selectors: getStructureSelectedFilterValues", () => {
8
- const structureFilters = { foo, bar, baz };
9
- const structureSelectedFilter = "foo";
10
- const state = { structureFilters, structureSelectedFilter };
11
-
12
- it("should return the values of the currently selected structure filters", () => {
13
- expect(getStructureSelectedFilterValues(state)).toEqual(foo.values);
14
- });
15
- });
@@ -1,15 +0,0 @@
1
- import { getStructureSelectedFilters } from "..";
2
-
3
- const foo = ["foo1", "foo2"];
4
- const bar = ["bar1", "bar2"];
5
- const baz = ["baz1", "baz2"];
6
-
7
- describe("selectors: getStructureAvailableFilters", () => {
8
- const structureFilters = { foo, bar, baz };
9
- const structureActiveFilters = { baz: [] };
10
- const state = { structureFilters, structureActiveFilters };
11
-
12
- it("should return the keys of the structure filters which are currently active", () => {
13
- expect(getStructureSelectedFilters(state)).toEqual(["baz"]);
14
- });
15
- });
@@ -1,46 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
-
4
- export const selectedTypesSelector = createSelector(
5
- _.prop("structureActiveFilters"),
6
- _.prop("type.raw")
7
- );
8
-
9
- export const templateNamesSelector = createSelector(
10
- _.prop("templates"),
11
- _.flow(_.filter(_.propEq("scope", "dd")), _.map("name"))
12
- );
13
-
14
- export const bulkUpdateDisabledSelector = createSelector(
15
- selectedTypesSelector,
16
- templateNamesSelector,
17
- _.prop("structureCount"),
18
- _.prop("structuresLoading"),
19
- _.prop("structureTypes"),
20
- _.prop("structureTypesLoading"),
21
- _.prop("structures"),
22
- (
23
- types,
24
- templates,
25
- structureCount,
26
- structuresLoading,
27
- structureTypes,
28
- structureTypesLoading,
29
- structures
30
- ) => {
31
- if (
32
- structuresLoading ||
33
- structureTypesLoading ||
34
- _.isEmpty(structures) ||
35
- _.isEmpty(templates) ||
36
- _.size(types) != 1 ||
37
- structureCount <= 0
38
- )
39
- return true;
40
- const structure = _.head(structures);
41
- return _.flow(
42
- _.map("name"),
43
- _.negate(_.includes(_.prop("type")(structure)))
44
- )(structureTypes);
45
- }
46
- );
@@ -1,2 +0,0 @@
1
- export const getPreviousStructureQuery = ({ previousStructureQuery: q = {} }) =>
2
- q;
@@ -1,15 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
- import { getStructureSelectedFilters } from "./getStructureSelectedFilters";
4
-
5
- const getStructureFilters = _.propOr({}, "structureFilters");
6
-
7
- export const getStructureAvailableFilters = createSelector(
8
- [getStructureFilters, getStructureSelectedFilters],
9
- (structureFilters, structureSelectedFilters) =>
10
- _.flow(
11
- _.omitBy(({ values }) => _.size(values) < 2),
12
- _.keys,
13
- _.without(structureSelectedFilters)
14
- )(structureFilters)
15
- );
@@ -1,7 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
-
4
- export const getStructureFilterTypes = createSelector(
5
- _.prop("structureFilters"),
6
- _.mapValues("type")
7
- );
@@ -1,9 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
-
4
- export const getStructureSelectedFilterActiveValues = createSelector(
5
- _.prop("structureSelectedFilter"),
6
- _.prop("structureActiveFilters"),
7
- (structureSelectedFilter, structureActiveFilters) =>
8
- _.flow(_.propOr([], structureSelectedFilter))(structureActiveFilters)
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 getStructureSelectedFilterValues = createSelector(
6
- [_.prop("structureSelectedFilter"), _.prop("structureFilters")],
7
- (structureSelectedFilter, structureFilters) =>
8
- _.flow(
9
- _.propOr({ values: [] }, structureSelectedFilter),
10
- formatFilterValues
11
- )(structureFilters)
12
- );
@@ -1,7 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { createSelector } from "reselect";
3
-
4
- export const getStructureSelectedFilters = createSelector(
5
- [_.prop("structureActiveFilters")],
6
- _.keys
7
- );