@truedat/core 8.6.7 → 8.7.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.
- package/package.json +3 -3
- package/src/components/AddMemberForm.js +3 -3
- package/src/components/Alert.js +3 -3
- package/src/components/AlertExporter.js +4 -4
- package/src/components/AvailableFilters.js +5 -5
- package/src/components/CSVFileModal.js +1 -1
- package/src/components/CardGroupsAccordion.js +4 -4
- package/src/components/CatalogMenu.js +2 -2
- package/src/components/CommentsForm.js +1 -1
- package/src/components/DomainSearchFilter.js +9 -9
- package/src/components/DomainSelector.js +1 -1
- package/src/components/FilterDropdown.js +5 -5
- package/src/components/FilterMultilevelDropdown.js +9 -9
- package/src/components/GlossaryMenu.js +10 -7
- package/src/components/Graph.js +199 -127
- package/src/components/GroupActions.js +2 -2
- package/src/components/Hierarchy.js +1 -1
- package/src/components/HierarchyFilterDropdown.js +7 -7
- package/src/components/HierarchySelector.js +1 -1
- package/src/components/LanguagesTabs.js +2 -2
- package/src/components/OptionGroup.js +8 -9
- package/src/components/QualityMenu.js +6 -8
- package/src/components/ResourceMembers.js +3 -3
- package/src/components/SearchFilterDropdown.js +3 -3
- package/src/components/SidebarToggle.js +1 -1
- package/src/components/Submenu.js +46 -27
- package/src/components/SystemsLoader.js +1 -1
- package/src/components/TemplatesLoader.js +1 -1
- package/src/components/TreeSelector.js +2 -2
- package/src/components/UploadJob.js +3 -3
- package/src/components/UploadJobBreadcrumbs.js +4 -1
- package/src/components/UploadJobParser.js +4 -3
- package/src/components/UploadModal.js +1 -1
- package/src/components/UserFilter.js +1 -1
- package/src/components/UserFilters.js +2 -2
- package/src/components/__tests__/ArrayDecorator.spec.js +2 -2
- package/src/components/__tests__/CardGroupsAccordion.spec.js +6 -6
- package/src/components/__tests__/CatalogMenu.spec.js +1 -1
- package/src/components/__tests__/DateTime.spec.js +1 -1
- package/src/components/__tests__/DomainSearchFilter.spec.js +2 -2
- package/src/components/__tests__/DomainSearchFilterItem.spec.js +7 -7
- package/src/components/__tests__/DomainSelector.spec.js +3 -3
- package/src/components/__tests__/DropdownMenuItem.spec.js +3 -3
- package/src/components/__tests__/FilterDropdown.spec.js +11 -11
- package/src/components/__tests__/FilterMultilevelDropdown.spec.js +2 -2
- package/src/components/__tests__/GlossaryMenu.spec.js +2 -2
- package/src/components/__tests__/Graph.spec.js +12 -4
- package/src/components/__tests__/GroupActions.spec.js +4 -4
- package/src/components/__tests__/Hierarchy.spec.js +1 -1
- package/src/components/__tests__/HierarchyFilterDropdown.spec.js +5 -5
- package/src/components/__tests__/HierarchyNodeFinder.spec.js +4 -4
- package/src/components/__tests__/HierarchySelector.spec.js +7 -5
- package/src/components/__tests__/Markdown.spec.js +22 -8
- package/src/components/__tests__/ModalSaveFilter.spec.js +1 -1
- package/src/components/__tests__/Pagination.spec.js +2 -2
- package/src/components/__tests__/ResourceMembers.spec.js +4 -4
- package/src/components/__tests__/SearchDateFilter.spec.js +10 -5
- package/src/components/__tests__/SearchFilterDropdown.spec.js +1 -1
- package/src/components/__tests__/SelectedFilters.spec.js +7 -7
- package/src/components/__tests__/SideMenu.spec.js +1 -1
- package/src/components/__tests__/Submenu.spec.js +1 -1
- package/src/components/__tests__/TemplateSelector.spec.js +5 -5
- package/src/components/__tests__/TreeSelector.spec.js +23 -24
- package/src/components/__tests__/UploadJob.spec.js +1 -3
- package/src/components/__tests__/UploadJobBreadcrumbs.spec.js +4 -4
- package/src/components/__tests__/UploadJobParser.spec.js +42 -38
- package/src/components/__tests__/UploadModal.spec.js +9 -9
- package/src/components/__tests__/UserFilters.spec.js +1 -1
- package/src/components/graph/ColoredEdge.js +29 -23
- package/src/components/graph/edgeLayout.js +4 -1
- package/src/hooks/__tests__/useActiveRoutes.spec.js +32 -18
- package/src/hooks/useAclEntries.js +2 -2
- package/src/hooks/useActiveRoutes.js +14 -6
- package/src/hooks/useAuthorized.js +3 -3
- package/src/hooks/useHierarchies.js +8 -8
- package/src/hooks/useLocales.js +3 -3
- package/src/hooks/useMessages.js +1 -1
- package/src/hooks/useOnScreen.js +1 -1
- package/src/hooks/useUploadJobs.js +2 -8
- package/src/hooks/useUserFilters.js +1 -1
- package/src/i18n/components/LangProvider.js +6 -6
- package/src/i18n/components/Languages.js +4 -4
- package/src/i18n/components/MessageForm.js +24 -13
- package/src/i18n/components/Messages.js +5 -5
- package/src/i18n/components/__tests__/I18nRoutes.spec.js +1 -1
- package/src/messages/index.js +1 -1
- package/src/reducers/comments.js +3 -3
- package/src/router/__tests__/ProtectedRoute.spec.js +1 -1
- package/src/routes.js +1 -1
- package/src/routesTree.js +6 -1
- package/src/routines.js +2 -2
- package/src/search/FilterDropdown.js +1 -1
- package/src/search/FilterMultilevelDropdown.js +10 -10
- package/src/search/FilterQueryDropdown.js +4 -4
- package/src/search/HierarchyFilterDropdown.js +7 -7
- package/src/search/SearchContext.js +19 -19
- package/src/search/SearchDateFilter.js +12 -2
- package/src/search/SearchFilters.js +1 -1
- package/src/search/SearchSelectedFilters.js +1 -1
- package/src/search/SearchWidget.js +6 -2
- package/src/search/UserFilter.js +1 -1
- package/src/search/UserFilters.js +4 -4
- package/src/search/__tests__/FilterDropdown.spec.js +3 -3
- package/src/search/__tests__/FilterQueryDropdown.spec.js +20 -18
- package/src/search/__tests__/ModalSaveFilter.spec.js +2 -2
- package/src/search/__tests__/SearchContext.spec.js +42 -42
- package/src/search/__tests__/SearchSelectedFilters.spec.js +21 -17
- package/src/search/__tests__/SearchWidget.spec.js +4 -4
- package/src/selectors/__tests__/getRiSubscopes.spec.js +1 -1
- package/src/selectors/__tests__/makeSearchQuerySelector.spec.js +2 -2
- package/src/selectors/getConceptSubscope.js +1 -1
- package/src/selectors/getDashboardConfig.js +3 -3
- package/src/selectors/getMessage.js +3 -3
- package/src/selectors/getRecipients.js +3 -3
- package/src/selectors/getRiSubscopes.js +2 -2
- package/src/selectors/getSidemenuGlossarySubscopes.js +1 -1
- package/src/selectors/makeActiveFiltersSelector.js +2 -2
- package/src/selectors/makeDateFiltersSelector.js +1 -1
- package/src/selectors/makeSearchQuerySelector.js +10 -10
- package/src/selectors/makeTagOptionsSelector.js +1 -4
- package/src/selectors/subscopedTemplates.js +2 -2
- package/src/services/columnPredicate.js +1 -1
- package/src/services/dateFilterFormatter.js +1 -1
- package/src/services/fieldType.js +1 -1
- package/src/services/formRules.js +16 -13
- package/src/services/getHierarchyOptions.js +2 -2
- package/src/services/message.js +7 -8
- package/src/services/operators.js +5 -5
- package/src/services/sort.js +2 -2
- package/src/services/swr.js +1 -1
- package/src/services/tree.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@truedat/core",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.7.1",
|
|
4
4
|
"description": "Truedat Web Core",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"**/*.css",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@testing-library/jest-dom": "^6.6.3",
|
|
55
55
|
"@testing-library/react": "^16.3.0",
|
|
56
56
|
"@testing-library/user-event": "^14.6.1",
|
|
57
|
-
"@truedat/test": "8.
|
|
57
|
+
"@truedat/test": "8.7.1",
|
|
58
58
|
"identity-obj-proxy": "^3.0.0",
|
|
59
59
|
"jest": "^29.7.0",
|
|
60
60
|
"redux-saga-test-plan": "^4.0.6"
|
|
@@ -95,5 +95,5 @@
|
|
|
95
95
|
"swr": "^2.3.3",
|
|
96
96
|
"turndown": "^7.2.2"
|
|
97
97
|
},
|
|
98
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "f7605a6ea3f78839b42bb7d8339eec125ba49acb"
|
|
99
99
|
}
|
|
@@ -14,10 +14,10 @@ import { getRecipients } from "@truedat/core/selectors";
|
|
|
14
14
|
import { useAclEntryCreate } from "@truedat/core/hooks/useAclEntries";
|
|
15
15
|
|
|
16
16
|
const UsersSearchLoader = lazy(
|
|
17
|
-
() => import("@truedat/auth/users/components/UsersSearchLoader")
|
|
17
|
+
() => import("@truedat/auth/users/components/UsersSearchLoader"),
|
|
18
18
|
);
|
|
19
19
|
const GroupsSearchLoader = lazy(
|
|
20
|
-
() => import("@truedat/auth/groups/components/GroupsSearchLoader")
|
|
20
|
+
() => import("@truedat/auth/groups/components/GroupsSearchLoader"),
|
|
21
21
|
);
|
|
22
22
|
|
|
23
23
|
const MIN_SEARCH_CHARACTERS = 2;
|
|
@@ -28,7 +28,7 @@ const roleOptions = (roles) =>
|
|
|
28
28
|
_.flow(
|
|
29
29
|
_.uniqBy("name"),
|
|
30
30
|
_.sortBy(accentInsensitivePathOrder("name")),
|
|
31
|
-
_.map(roleOption)
|
|
31
|
+
_.map(roleOption),
|
|
32
32
|
)(roles);
|
|
33
33
|
|
|
34
34
|
const selectOption = _.pick(["key", "text", "value", "id", "icon"]);
|
package/src/components/Alert.js
CHANGED
|
@@ -88,9 +88,9 @@ export const Alert = ({
|
|
|
88
88
|
const message_content =
|
|
89
89
|
content && !existingList(errors) && !existingList(formattedMessages)
|
|
90
90
|
? formatMessage(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
{ id: content, defaultMessage: content },
|
|
92
|
+
{ text, ...fields },
|
|
93
|
+
)
|
|
94
94
|
: undefined;
|
|
95
95
|
return content || header ? (
|
|
96
96
|
<>
|
|
@@ -39,8 +39,8 @@ const joinTranslations = ({ list, messages }) => {
|
|
|
39
39
|
_.map(
|
|
40
40
|
_.reduce(function (acc, ob) {
|
|
41
41
|
return _.assign(acc)(ob);
|
|
42
|
-
}, {})
|
|
43
|
-
)
|
|
42
|
+
}, {}),
|
|
43
|
+
),
|
|
44
44
|
)(messages);
|
|
45
45
|
return full_messages;
|
|
46
46
|
};
|
|
@@ -64,7 +64,7 @@ const getAllUniqueKeys = _.flow(
|
|
|
64
64
|
_.map(flattenObj),
|
|
65
65
|
_.map(Object.keys),
|
|
66
66
|
_.flattenDeep,
|
|
67
|
-
_.uniq
|
|
67
|
+
_.uniq,
|
|
68
68
|
);
|
|
69
69
|
|
|
70
70
|
const generateCsvHeaders = _.flow(
|
|
@@ -72,5 +72,5 @@ const generateCsvHeaders = _.flow(
|
|
|
72
72
|
_.map((key) => ({
|
|
73
73
|
label: key.toUpperCase(),
|
|
74
74
|
key,
|
|
75
|
-
}))
|
|
75
|
+
})),
|
|
76
76
|
);
|
|
@@ -11,8 +11,8 @@ const makeFiltersGroup = (filters, groups) =>
|
|
|
11
11
|
_.groupBy((filter) =>
|
|
12
12
|
_.flow(
|
|
13
13
|
_.find(([_group, fields]) => _.contains(filter)(fields)),
|
|
14
|
-
_.prop("[0]")
|
|
15
|
-
)(groups)
|
|
14
|
+
_.prop("[0]"),
|
|
15
|
+
)(groups),
|
|
16
16
|
)(filters);
|
|
17
17
|
|
|
18
18
|
export const AvailableFilters = ({
|
|
@@ -30,7 +30,7 @@ export const AvailableFilters = ({
|
|
|
30
30
|
_.flow(
|
|
31
31
|
_.prop("[0]"),
|
|
32
32
|
(groupName) => _.prop(groupName)(filtersByGroup),
|
|
33
|
-
_.isEmpty
|
|
33
|
+
_.isEmpty,
|
|
34
34
|
)(groups);
|
|
35
35
|
|
|
36
36
|
const groups = _.flow(
|
|
@@ -39,7 +39,7 @@ export const AvailableFilters = ({
|
|
|
39
39
|
_.map(([groupName, _filters]) => [
|
|
40
40
|
groupName,
|
|
41
41
|
_.prop(groupName)(filtersByGroup),
|
|
42
|
-
])
|
|
42
|
+
]),
|
|
43
43
|
)(filtersGroup);
|
|
44
44
|
|
|
45
45
|
return (
|
|
@@ -89,7 +89,7 @@ export const AvailableFilters = ({
|
|
|
89
89
|
})}
|
|
90
90
|
onClick={() => addFilter({ filter })}
|
|
91
91
|
/>
|
|
92
|
-
))
|
|
92
|
+
)),
|
|
93
93
|
)(filters)}
|
|
94
94
|
</Fragment>
|
|
95
95
|
))(groups)}
|
|
@@ -77,9 +77,9 @@ const CardGroupsAccordion = ({ groups, cardComponent: CardComponent }) => {
|
|
|
77
77
|
...acc,
|
|
78
78
|
[groupName]: { members, active: true },
|
|
79
79
|
}),
|
|
80
|
-
{}
|
|
80
|
+
{},
|
|
81
81
|
),
|
|
82
|
-
useState
|
|
82
|
+
useState,
|
|
83
83
|
)(groups);
|
|
84
84
|
|
|
85
85
|
// Handlers
|
|
@@ -87,7 +87,7 @@ const CardGroupsAccordion = ({ groups, cardComponent: CardComponent }) => {
|
|
|
87
87
|
const handleClick = (e, { index: groupName }) =>
|
|
88
88
|
_.flow(
|
|
89
89
|
_.set(`${groupName}.active`, !cardGroups[groupName].active),
|
|
90
|
-
setCardGroups
|
|
90
|
+
setCardGroups,
|
|
91
91
|
)(cardGroups);
|
|
92
92
|
|
|
93
93
|
// Renders
|
|
@@ -128,7 +128,7 @@ const CardGroupsAccordion = ({ groups, cardComponent: CardComponent }) => {
|
|
|
128
128
|
_.omit(["default"]),
|
|
129
129
|
_.toPairs,
|
|
130
130
|
_.sortBy(0),
|
|
131
|
-
_.map(([groupName, group]) => renderSection(groupName, group))
|
|
131
|
+
_.map(([groupName, group]) => renderSection(groupName, group)),
|
|
132
132
|
)(cardGroups)}
|
|
133
133
|
</Accordion>
|
|
134
134
|
);
|
|
@@ -43,13 +43,13 @@ const catalogViewConfigItems = (formatMessage) =>
|
|
|
43
43
|
linkTo.BUCKETS_VIEW({ propertyPath: `${fieldType}.${fieldName}` }),
|
|
44
44
|
],
|
|
45
45
|
})),
|
|
46
|
-
_.orderBy(["name"], ["asc"])
|
|
46
|
+
_.orderBy(["name"], ["asc"]),
|
|
47
47
|
);
|
|
48
48
|
|
|
49
49
|
export const CatalogMenu = ({ catalogViewConfigs }) => {
|
|
50
50
|
const adminAuthorized = useAuthorized();
|
|
51
51
|
const structureNotesAuthorized = useAuthorized(
|
|
52
|
-
"data_dictionary_structure_notes"
|
|
52
|
+
"data_dictionary_structure_notes",
|
|
53
53
|
);
|
|
54
54
|
const { formatMessage } = useIntl();
|
|
55
55
|
const iconCatalog = formatMessage({
|
|
@@ -31,7 +31,7 @@ export const DomainSearchFilter = ({
|
|
|
31
31
|
|
|
32
32
|
useEffect(() => {
|
|
33
33
|
const activeOptions = _.filter((option) =>
|
|
34
|
-
_.includes(option.id)(activeValues)
|
|
34
|
+
_.includes(option.id)(activeValues),
|
|
35
35
|
)(options);
|
|
36
36
|
|
|
37
37
|
_.flow(_.map("id"), _.uniq, setSelected)(activeOptions);
|
|
@@ -39,9 +39,9 @@ export const DomainSearchFilter = ({
|
|
|
39
39
|
const withAncestors = _.flow(
|
|
40
40
|
_.reduce(
|
|
41
41
|
(acc, option) => [...acc, ..._.map("id")(option.ancestors)],
|
|
42
|
-
[]
|
|
42
|
+
[],
|
|
43
43
|
),
|
|
44
|
-
_.uniq
|
|
44
|
+
_.uniq,
|
|
45
45
|
)(activeOptions);
|
|
46
46
|
setOpen(withAncestors);
|
|
47
47
|
setDisplayed([..._.map("id")(activeOptions), ...withAncestors]);
|
|
@@ -79,7 +79,7 @@ export const DomainSearchFilter = ({
|
|
|
79
79
|
const descendentIds = _.map("id")(option.descendents);
|
|
80
80
|
if (_.isEmpty(descendentIds)) return;
|
|
81
81
|
const allSelected = _.every((id) => _.includes(id)(activeValues))(
|
|
82
|
-
descendentIds
|
|
82
|
+
descendentIds,
|
|
83
83
|
);
|
|
84
84
|
const value = allSelected
|
|
85
85
|
? _.without(descendentIds)(activeValues)
|
|
@@ -108,8 +108,8 @@ export const DomainSearchFilter = ({
|
|
|
108
108
|
(domain) =>
|
|
109
109
|
match(domain.name, query) ||
|
|
110
110
|
_.some((descendent) => match(descendent.name, query))(
|
|
111
|
-
domain.descendents
|
|
112
|
-
)
|
|
111
|
+
domain.descendents,
|
|
112
|
+
),
|
|
113
113
|
)(all);
|
|
114
114
|
}
|
|
115
115
|
return all;
|
|
@@ -117,7 +117,7 @@ export const DomainSearchFilter = ({
|
|
|
117
117
|
|
|
118
118
|
const filterDisplayed = (all) =>
|
|
119
119
|
_.filter((domain) => domain.level == 0 || _.contains(domain.id)(displayed))(
|
|
120
|
-
all
|
|
120
|
+
all,
|
|
121
121
|
);
|
|
122
122
|
|
|
123
123
|
const filteredOptions = _.flow(filterSearch, filterDisplayed)(options);
|
|
@@ -175,12 +175,12 @@ export const DomainSearchFilter = ({
|
|
|
175
175
|
selected={_.contains(option.id)(selected)}
|
|
176
176
|
onToggleChildren={handleToggleChildren}
|
|
177
177
|
toggleChildrenOn={_.every((id) => _.includes(id)(activeValues))(
|
|
178
|
-
_.map("id")(option.descendents)
|
|
178
|
+
_.map("id")(option.descendents),
|
|
179
179
|
)}
|
|
180
180
|
partialSelected={
|
|
181
181
|
!_.contains(option.id)(selected) &&
|
|
182
182
|
_.some((id) => _.includes(id)(selected))(
|
|
183
|
-
_.map("id")(option.descendents)
|
|
183
|
+
_.map("id")(option.descendents),
|
|
184
184
|
)
|
|
185
185
|
}
|
|
186
186
|
{...option}
|
|
@@ -30,13 +30,13 @@ export const FilterDropdown = ({
|
|
|
30
30
|
|
|
31
31
|
useEffect(() => {
|
|
32
32
|
const activeOptions = _.filter((option) =>
|
|
33
|
-
_.includes(option.value)(activeValues)
|
|
33
|
+
_.includes(option.value)(activeValues),
|
|
34
34
|
)(options);
|
|
35
35
|
|
|
36
36
|
_.flow(
|
|
37
37
|
_.reduce((acc, option) => [...acc, option], []),
|
|
38
38
|
_.uniq,
|
|
39
|
-
setSelected
|
|
39
|
+
setSelected,
|
|
40
40
|
)(activeOptions);
|
|
41
41
|
}, [activeValues, options]);
|
|
42
42
|
|
|
@@ -47,7 +47,7 @@ export const FilterDropdown = ({
|
|
|
47
47
|
|
|
48
48
|
const toogleSelectedOption = (selectedOption) => {
|
|
49
49
|
const newSelectedOptions = selected.find(
|
|
50
|
-
(s) => s.value === selectedOption.value
|
|
50
|
+
(s) => s.value === selectedOption.value,
|
|
51
51
|
)
|
|
52
52
|
? selected.filter((s) => s.value !== selectedOption.value)
|
|
53
53
|
: [...selected, selectedOption];
|
|
@@ -118,7 +118,7 @@ export const FilterDropdown = ({
|
|
|
118
118
|
toggleFilterValue={toogleSelectedOption}
|
|
119
119
|
active={_.includes(_.prop("value")(option))(activeValues)}
|
|
120
120
|
/>
|
|
121
|
-
))
|
|
121
|
+
)),
|
|
122
122
|
)(selected)}
|
|
123
123
|
<Dropdown.Divider />
|
|
124
124
|
</>
|
|
@@ -134,7 +134,7 @@ export const FilterDropdown = ({
|
|
|
134
134
|
toggleFilterValue={toggleFilterValue}
|
|
135
135
|
active={_.includes(_.prop("value")(option))(activeValues)}
|
|
136
136
|
/>
|
|
137
|
-
))
|
|
137
|
+
)),
|
|
138
138
|
)(filteredOptions)}
|
|
139
139
|
</>
|
|
140
140
|
{loading ? (
|
|
@@ -31,7 +31,7 @@ export const FilterMultilevelDropdown = ({
|
|
|
31
31
|
|
|
32
32
|
useEffect(() => {
|
|
33
33
|
const activeOptions = _.filter((option) =>
|
|
34
|
-
_.includes(option.id)(activeValues)
|
|
34
|
+
_.includes(option.id)(activeValues),
|
|
35
35
|
)(options);
|
|
36
36
|
|
|
37
37
|
_.flow(
|
|
@@ -41,18 +41,18 @@ export const FilterMultilevelDropdown = ({
|
|
|
41
41
|
option.id,
|
|
42
42
|
..._.map("id")(option.descendents),
|
|
43
43
|
],
|
|
44
|
-
[]
|
|
44
|
+
[],
|
|
45
45
|
),
|
|
46
46
|
_.uniq,
|
|
47
|
-
setSelected
|
|
47
|
+
setSelected,
|
|
48
48
|
)(activeOptions);
|
|
49
49
|
if (_.isEmpty(open) && _.isEmpty(displayed)) {
|
|
50
50
|
const withAncestors = _.flow(
|
|
51
51
|
_.reduce(
|
|
52
52
|
(acc, option) => [...acc, ..._.map("id")(option.ancestors)],
|
|
53
|
-
[]
|
|
53
|
+
[],
|
|
54
54
|
),
|
|
55
|
-
_.uniq
|
|
55
|
+
_.uniq,
|
|
56
56
|
)(activeOptions);
|
|
57
57
|
setOpen(withAncestors);
|
|
58
58
|
setDisplayed([..._.map("id")(activeOptions), ...withAncestors]);
|
|
@@ -77,7 +77,7 @@ export const FilterMultilevelDropdown = ({
|
|
|
77
77
|
const handleClick = (e, selection) => {
|
|
78
78
|
const option = _.find({ id: selection })(options);
|
|
79
79
|
const ancestorsToDelete = _.intersection(_.map("id")(option.ancestors))(
|
|
80
|
-
activeValues
|
|
80
|
+
activeValues,
|
|
81
81
|
);
|
|
82
82
|
if (!_.isEmpty(ancestorsToDelete)) {
|
|
83
83
|
const active = _.union([selection])(activeValues);
|
|
@@ -115,8 +115,8 @@ export const FilterMultilevelDropdown = ({
|
|
|
115
115
|
(domain) =>
|
|
116
116
|
match(domain.name, query) ||
|
|
117
117
|
_.some((descendent) => match(descendent.name, query))(
|
|
118
|
-
domain.descendents
|
|
119
|
-
)
|
|
118
|
+
domain.descendents,
|
|
119
|
+
),
|
|
120
120
|
)(all);
|
|
121
121
|
}
|
|
122
122
|
return all;
|
|
@@ -124,7 +124,7 @@ export const FilterMultilevelDropdown = ({
|
|
|
124
124
|
|
|
125
125
|
const filterDisplayed = (all) =>
|
|
126
126
|
_.filter((domain) => domain.level == 0 || _.contains(domain.id)(displayed))(
|
|
127
|
-
all
|
|
127
|
+
all,
|
|
128
128
|
);
|
|
129
129
|
|
|
130
130
|
const filteredOptions = _.flow(filterSearch, filterDisplayed)(options);
|
|
@@ -33,9 +33,12 @@ function isMenuSubscope(pathname, subscope) {
|
|
|
33
33
|
CONCEPTS_SIDEMENU_SUBSCOPE_PENDING,
|
|
34
34
|
];
|
|
35
35
|
|
|
36
|
-
return pathsToCheck.some(path => {
|
|
36
|
+
return pathsToCheck.some((path) => {
|
|
37
37
|
const match = matchPath({ path }, pathname);
|
|
38
|
-
return
|
|
38
|
+
return (
|
|
39
|
+
match?.params?.subscope &&
|
|
40
|
+
subscope === decodeURIComponent(match.params.subscope)
|
|
41
|
+
);
|
|
39
42
|
});
|
|
40
43
|
}
|
|
41
44
|
|
|
@@ -48,7 +51,7 @@ function buildMainConceptsSubmenuItems(
|
|
|
48
51
|
mainSubscopes,
|
|
49
52
|
conceptStatus,
|
|
50
53
|
conceptSubscope,
|
|
51
|
-
pathname
|
|
54
|
+
pathname,
|
|
52
55
|
) {
|
|
53
56
|
const leftoverSubscopeItems = _.flow(
|
|
54
57
|
_.map((sc) => ({
|
|
@@ -59,7 +62,7 @@ function buildMainConceptsSubmenuItems(
|
|
|
59
62
|
(conceptStatus === "published" && sc === conceptSubscope) ||
|
|
60
63
|
pathname === linkTo.CONCEPTS_SUBSCOPE({ subscope: sc }),
|
|
61
64
|
})),
|
|
62
|
-
_.orderBy(["name"], ["asc"])
|
|
65
|
+
_.orderBy(["name"], ["asc"]),
|
|
63
66
|
)(mainSubscopes);
|
|
64
67
|
|
|
65
68
|
const mainItem = {
|
|
@@ -119,7 +122,7 @@ function buildRootSubscopeSubmenuItems(
|
|
|
119
122
|
name,
|
|
120
123
|
formatMessage,
|
|
121
124
|
conceptStatus,
|
|
122
|
-
pathname
|
|
125
|
+
pathname,
|
|
123
126
|
) {
|
|
124
127
|
const publishedRoute = linkTo.CONCEPTS_SIDEMENU_SUBSCOPE({ subscope: name });
|
|
125
128
|
const pendingRoute = linkTo.CONCEPTS_SIDEMENU_SUBSCOPE_PENDING({
|
|
@@ -222,7 +225,7 @@ export const GlossaryMenu = ({ bgSubscopes, rootSubscopes }) => {
|
|
|
222
225
|
mainSubscopes,
|
|
223
226
|
conceptStatus,
|
|
224
227
|
conceptSubscope,
|
|
225
|
-
location.pathname
|
|
228
|
+
location.pathname,
|
|
226
229
|
);
|
|
227
230
|
|
|
228
231
|
const rootSubscopeSubmenus = rootSubscopes.map((name) => {
|
|
@@ -230,7 +233,7 @@ export const GlossaryMenu = ({ bgSubscopes, rootSubscopes }) => {
|
|
|
230
233
|
name,
|
|
231
234
|
formatMessage,
|
|
232
235
|
conceptStatus,
|
|
233
|
-
location.pathname
|
|
236
|
+
location.pathname,
|
|
234
237
|
);
|
|
235
238
|
|
|
236
239
|
const icon = formatMessage({
|