@reltio/components 1.4.1067 → 1.4.1072

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 (209) hide show
  1. package/cjs/components/AttributeGroupIcon/AttributeGroupIcon.d.ts +11 -0
  2. package/cjs/components/AttributeGroupIcon/AttributeGroupIcon.js +20 -0
  3. package/cjs/components/AttributeGroupIcon/styles.d.ts +1 -0
  4. package/cjs/components/AttributeGroupIcon/styles.js +11 -0
  5. package/cjs/components/AttributesFiltersBuilder/AttributesFiltersBuilder.d.ts +9 -0
  6. package/cjs/components/AttributesFiltersBuilder/AttributesFiltersBuilder.js +112 -0
  7. package/cjs/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.d.ts +9 -0
  8. package/cjs/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.js +53 -0
  9. package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.d.ts +7 -0
  10. package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.js +56 -0
  11. package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/styles.d.ts +2 -0
  12. package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/styles.js +9 -0
  13. package/cjs/components/AttributesFiltersBuilder/components/RowActions/RowActions.d.ts +4 -0
  14. package/cjs/components/AttributesFiltersBuilder/components/RowActions/RowActions.js +51 -0
  15. package/cjs/components/AttributesFiltersBuilder/components/RowActions/styles.d.ts +1 -0
  16. package/cjs/components/AttributesFiltersBuilder/components/RowActions/styles.js +23 -0
  17. package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.d.ts +4 -0
  18. package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.js +60 -0
  19. package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/styles.d.ts +1 -0
  20. package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/styles.js +25 -0
  21. package/cjs/components/AttributesFiltersBuilder/helpers.d.ts +12 -0
  22. package/cjs/components/AttributesFiltersBuilder/helpers.js +77 -0
  23. package/cjs/components/AttributesFiltersBuilder/styles.d.ts +1 -0
  24. package/cjs/components/AttributesFiltersBuilder/styles.js +21 -0
  25. package/cjs/components/AttributesFiltersBuilder/types.d.ts +24 -0
  26. package/cjs/components/AttributesFiltersBuilder/types.js +2 -0
  27. package/cjs/components/AttributesFiltersButton/ActionButtons/ActionButtons.d.ts +8 -0
  28. package/cjs/components/AttributesFiltersButton/ActionButtons/ActionButtons.js +18 -0
  29. package/cjs/components/AttributesFiltersButton/ActionButtons/styles.d.ts +1 -0
  30. package/cjs/components/AttributesFiltersButton/ActionButtons/styles.js +26 -0
  31. package/cjs/components/AttributesFiltersButton/AttributesFiltersButton.d.ts +9 -0
  32. package/cjs/components/AttributesFiltersButton/AttributesFiltersButton.js +82 -0
  33. package/cjs/components/AttributesFiltersButton/styles.d.ts +1 -0
  34. package/cjs/components/AttributesFiltersButton/styles.js +30 -0
  35. package/cjs/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.d.ts +14 -0
  36. package/cjs/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.js +27 -0
  37. package/cjs/components/BasicAttributeSelector/AttributeTitle/styles.d.ts +2 -0
  38. package/cjs/components/BasicAttributeSelector/AttributeTitle/styles.js +44 -0
  39. package/cjs/components/BasicAttributeSelector/BasicAttributeSelector.d.ts +4 -0
  40. package/cjs/components/BasicAttributeSelector/BasicAttributeSelector.js +99 -0
  41. package/cjs/components/BasicAttributeSelector/helpers.d.ts +22 -0
  42. package/cjs/components/BasicAttributeSelector/helpers.js +80 -0
  43. package/cjs/components/BasicAttributeSelector/styles.d.ts +2 -0
  44. package/cjs/components/BasicAttributeSelector/styles.js +14 -0
  45. package/cjs/components/ConnectionEditor/ConnectionEditor.d.ts +12 -3
  46. package/cjs/components/ConnectionEditor/ConnectionEditor.js +72 -5
  47. package/cjs/components/ConnectionEditor/styles.d.ts +1 -0
  48. package/cjs/components/ConnectionEditor/styles.js +12 -0
  49. package/cjs/components/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.js +3 -2
  50. package/cjs/components/Image/ImageActionsOverlay/styles.d.ts +1 -1
  51. package/cjs/components/ImageDetailsView/MetaInfoForm/styles.d.ts +1 -1
  52. package/cjs/components/QueryBuilderRow/QueryBuilderRow.d.ts +2 -2
  53. package/cjs/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.d.ts +2 -2
  54. package/cjs/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.js +1 -1
  55. package/cjs/components/SelectAttributesList/SelectAttributesList.d.ts +14 -0
  56. package/cjs/components/SelectAttributesList/SelectAttributesList.js +75 -0
  57. package/cjs/components/SelectAttributesList/styles.d.ts +1 -0
  58. package/cjs/components/SelectAttributesList/styles.js +16 -0
  59. package/cjs/components/SelectionPopup/SelectionPopup.d.ts +1 -1
  60. package/cjs/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.d.ts +2 -2
  61. package/cjs/components/Title/Title.d.ts +7 -13
  62. package/cjs/components/Title/Title.js +24 -8
  63. package/cjs/components/Title/styles.d.ts +1 -1
  64. package/cjs/components/activityLog/activities/SearchActivity.js +2 -2
  65. package/cjs/components/attributes/editMode/AttributesPager/AttributeRenderer.js +1 -1
  66. package/cjs/components/attributes/editMode/AttributesPager/AttributesPager.js +1 -1
  67. package/cjs/components/attributes/editMode/AttributesPager/SpecialRenderer.js +1 -1
  68. package/cjs/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +1 -1
  69. package/cjs/components/attributes/editMode/EntitySelector/EntitySelector.d.ts +1 -1
  70. package/cjs/components/attributes/editMode/EntitySelector/EntitySelector.js +13 -6
  71. package/cjs/components/attributes/editMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
  72. package/cjs/components/attributes/editMode/Roles/Roles.js +1 -1
  73. package/cjs/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +1 -1
  74. package/cjs/components/attributes/editMode/Tags/Tags.js +1 -1
  75. package/cjs/components/attributes/readMode/AttributesPager/AttributesPager.js +1 -1
  76. package/cjs/components/attributes/readMode/AttributesPager/MultiLineRenderer.js +1 -1
  77. package/cjs/components/attributes/readMode/AttributesPager/OneLineRenderer.js +1 -1
  78. package/cjs/components/attributes/readMode/AttributesPager/SpecialRenderer.js +1 -1
  79. package/cjs/components/attributes/readMode/ComplexAttribute/ComplexAttribute.js +1 -1
  80. package/cjs/components/attributes/readMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
  81. package/cjs/components/attributes/readMode/SimpleAttribute/SimpleAttribute.js +2 -2
  82. package/cjs/components/attributes/readMode/SpecialAttributes/Roles/Roles.js +1 -1
  83. package/cjs/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.d.ts +2 -1
  84. package/cjs/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.js +2 -2
  85. package/cjs/components/attributes/readMode/SpecialAttributes/Tags/Tags.d.ts +1 -0
  86. package/cjs/components/attributes/readMode/SpecialAttributes/Tags/Tags.js +1 -1
  87. package/cjs/components/index.d.ts +4 -0
  88. package/cjs/components/index.js +9 -1
  89. package/cjs/components/workflow/hooks/useWorkflowAssignee.d.ts +1 -1
  90. package/cjs/components/workflow/hooks/useWorkflowAssignee.js +2 -2
  91. package/cjs/constants/prop-types.d.ts +1 -1
  92. package/cjs/constants/prop-types.js +1 -1
  93. package/cjs/hooks/index.d.ts +1 -0
  94. package/cjs/hooks/index.js +3 -1
  95. package/cjs/hooks/useEditableConnection.d.ts +10 -4
  96. package/cjs/hooks/useEditableConnection.js +27 -3
  97. package/cjs/hooks/useReadableSearchState.d.ts +2 -0
  98. package/cjs/{components/activityLog/hooks → hooks}/useReadableSearchState.js +0 -0
  99. package/cjs/icons/Duplicate.d.ts +3 -0
  100. package/cjs/icons/Duplicate.js +28 -0
  101. package/cjs/icons/index.d.ts +6 -3
  102. package/cjs/icons/index.js +14 -7
  103. package/cjs/types/index.d.ts +40 -0
  104. package/esm/components/AttributeGroupIcon/AttributeGroupIcon.d.ts +11 -0
  105. package/esm/components/AttributeGroupIcon/AttributeGroupIcon.js +15 -0
  106. package/esm/components/AttributeGroupIcon/styles.d.ts +1 -0
  107. package/esm/components/AttributeGroupIcon/styles.js +8 -0
  108. package/esm/components/AttributesFiltersBuilder/AttributesFiltersBuilder.d.ts +9 -0
  109. package/esm/components/AttributesFiltersBuilder/AttributesFiltersBuilder.js +88 -0
  110. package/esm/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.d.ts +9 -0
  111. package/esm/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.js +29 -0
  112. package/esm/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.d.ts +7 -0
  113. package/esm/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.js +32 -0
  114. package/esm/components/AttributesFiltersBuilder/components/FilterSelector/styles.d.ts +2 -0
  115. package/esm/components/AttributesFiltersBuilder/components/FilterSelector/styles.js +7 -0
  116. package/esm/components/AttributesFiltersBuilder/components/RowActions/RowActions.d.ts +4 -0
  117. package/esm/components/AttributesFiltersBuilder/components/RowActions/RowActions.js +27 -0
  118. package/esm/components/AttributesFiltersBuilder/components/RowActions/styles.d.ts +1 -0
  119. package/esm/components/AttributesFiltersBuilder/components/RowActions/styles.js +20 -0
  120. package/esm/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.d.ts +4 -0
  121. package/esm/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.js +36 -0
  122. package/esm/components/AttributesFiltersBuilder/components/ValueEditor/styles.d.ts +1 -0
  123. package/esm/components/AttributesFiltersBuilder/components/ValueEditor/styles.js +22 -0
  124. package/esm/components/AttributesFiltersBuilder/helpers.d.ts +12 -0
  125. package/esm/components/AttributesFiltersBuilder/helpers.js +70 -0
  126. package/esm/components/AttributesFiltersBuilder/styles.d.ts +1 -0
  127. package/esm/components/AttributesFiltersBuilder/styles.js +18 -0
  128. package/esm/components/AttributesFiltersBuilder/types.d.ts +24 -0
  129. package/esm/components/AttributesFiltersBuilder/types.js +1 -0
  130. package/esm/components/AttributesFiltersButton/ActionButtons/ActionButtons.d.ts +8 -0
  131. package/esm/components/AttributesFiltersButton/ActionButtons/ActionButtons.js +13 -0
  132. package/esm/components/AttributesFiltersButton/ActionButtons/styles.d.ts +1 -0
  133. package/esm/components/AttributesFiltersButton/ActionButtons/styles.js +23 -0
  134. package/esm/components/AttributesFiltersButton/AttributesFiltersButton.d.ts +9 -0
  135. package/esm/components/AttributesFiltersButton/AttributesFiltersButton.js +58 -0
  136. package/esm/components/AttributesFiltersButton/styles.d.ts +1 -0
  137. package/esm/components/AttributesFiltersButton/styles.js +27 -0
  138. package/esm/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.d.ts +14 -0
  139. package/esm/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.js +22 -0
  140. package/esm/components/BasicAttributeSelector/AttributeTitle/styles.d.ts +2 -0
  141. package/esm/components/BasicAttributeSelector/AttributeTitle/styles.js +42 -0
  142. package/esm/components/BasicAttributeSelector/BasicAttributeSelector.d.ts +4 -0
  143. package/esm/components/BasicAttributeSelector/BasicAttributeSelector.js +75 -0
  144. package/esm/components/BasicAttributeSelector/helpers.d.ts +22 -0
  145. package/esm/components/BasicAttributeSelector/helpers.js +72 -0
  146. package/esm/components/BasicAttributeSelector/styles.d.ts +2 -0
  147. package/esm/components/BasicAttributeSelector/styles.js +12 -0
  148. package/esm/components/ConnectionEditor/ConnectionEditor.d.ts +12 -3
  149. package/esm/components/ConnectionEditor/ConnectionEditor.js +74 -7
  150. package/esm/components/ConnectionEditor/styles.d.ts +1 -0
  151. package/esm/components/ConnectionEditor/styles.js +9 -0
  152. package/esm/components/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.js +3 -2
  153. package/esm/components/Image/ImageActionsOverlay/styles.d.ts +1 -1
  154. package/esm/components/ImageDetailsView/MetaInfoForm/styles.d.ts +1 -1
  155. package/esm/components/QueryBuilderRow/QueryBuilderRow.d.ts +2 -2
  156. package/esm/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.d.ts +2 -2
  157. package/esm/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.js +1 -1
  158. package/esm/components/SelectAttributesList/SelectAttributesList.d.ts +14 -0
  159. package/esm/components/SelectAttributesList/SelectAttributesList.js +51 -0
  160. package/esm/components/SelectAttributesList/styles.d.ts +1 -0
  161. package/esm/components/SelectAttributesList/styles.js +13 -0
  162. package/esm/components/SelectionPopup/SelectionPopup.d.ts +1 -1
  163. package/esm/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.d.ts +2 -2
  164. package/esm/components/Title/Title.d.ts +7 -13
  165. package/esm/components/Title/Title.js +24 -8
  166. package/esm/components/Title/styles.d.ts +1 -1
  167. package/esm/components/activityLog/activities/SearchActivity.js +1 -1
  168. package/esm/components/attributes/editMode/AttributesPager/AttributeRenderer.js +1 -1
  169. package/esm/components/attributes/editMode/AttributesPager/AttributesPager.js +1 -1
  170. package/esm/components/attributes/editMode/AttributesPager/SpecialRenderer.js +1 -1
  171. package/esm/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +1 -1
  172. package/esm/components/attributes/editMode/EntitySelector/EntitySelector.d.ts +1 -1
  173. package/esm/components/attributes/editMode/EntitySelector/EntitySelector.js +13 -6
  174. package/esm/components/attributes/editMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
  175. package/esm/components/attributes/editMode/Roles/Roles.js +1 -1
  176. package/esm/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +1 -1
  177. package/esm/components/attributes/editMode/Tags/Tags.js +1 -1
  178. package/esm/components/attributes/readMode/AttributesPager/AttributesPager.js +1 -1
  179. package/esm/components/attributes/readMode/AttributesPager/MultiLineRenderer.js +1 -1
  180. package/esm/components/attributes/readMode/AttributesPager/OneLineRenderer.js +1 -1
  181. package/esm/components/attributes/readMode/AttributesPager/SpecialRenderer.js +1 -1
  182. package/esm/components/attributes/readMode/ComplexAttribute/ComplexAttribute.js +1 -1
  183. package/esm/components/attributes/readMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
  184. package/esm/components/attributes/readMode/SimpleAttribute/SimpleAttribute.js +2 -2
  185. package/esm/components/attributes/readMode/SpecialAttributes/Roles/Roles.js +1 -1
  186. package/esm/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.d.ts +2 -1
  187. package/esm/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.js +2 -2
  188. package/esm/components/attributes/readMode/SpecialAttributes/Tags/Tags.d.ts +1 -0
  189. package/esm/components/attributes/readMode/SpecialAttributes/Tags/Tags.js +1 -1
  190. package/esm/components/index.d.ts +4 -0
  191. package/esm/components/index.js +4 -0
  192. package/esm/components/workflow/hooks/useWorkflowAssignee.d.ts +1 -1
  193. package/esm/components/workflow/hooks/useWorkflowAssignee.js +1 -1
  194. package/esm/constants/prop-types.d.ts +1 -1
  195. package/esm/constants/prop-types.js +1 -1
  196. package/esm/hooks/index.d.ts +1 -0
  197. package/esm/hooks/index.js +1 -0
  198. package/esm/hooks/useEditableConnection.d.ts +10 -4
  199. package/esm/hooks/useEditableConnection.js +24 -3
  200. package/esm/hooks/useReadableSearchState.d.ts +2 -0
  201. package/esm/{components/activityLog/hooks → hooks}/useReadableSearchState.js +0 -0
  202. package/esm/icons/Duplicate.d.ts +3 -0
  203. package/esm/icons/Duplicate.js +23 -0
  204. package/esm/icons/index.d.ts +6 -3
  205. package/esm/icons/index.js +6 -3
  206. package/esm/types/index.d.ts +40 -0
  207. package/package.json +3 -3
  208. package/cjs/components/activityLog/hooks/useReadableSearchState.d.ts +0 -1
  209. package/esm/components/activityLog/hooks/useReadableSearchState.d.ts +0 -1
@@ -0,0 +1,72 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { eqBy, pick, curry } from 'ramda';
13
+ import { getMaxItemWidth } from '@reltio/mdm-sdk';
14
+ export var isEqualAttributes = eqBy(pick(['fieldName', 'uri', 'entityTypeUri']));
15
+ export var checkAttributeIncludes = function (attribute, selectedAttributes) {
16
+ return selectedAttributes && !!selectedAttributes.find(isEqualAttributes(attribute));
17
+ };
18
+ var filterItem = function (item, filterText) {
19
+ return item.title.toLowerCase().includes(filterText.toLowerCase());
20
+ };
21
+ export var filterItemsTree = function (item, filterText) {
22
+ return filterItem(item, filterText) || (item.children || []).some(function (item) { return filterItemsTree(item, filterText); });
23
+ };
24
+ export var filterSelectedAttributes = function (_a) {
25
+ var attribute = _a.attribute, selectedAttributes = _a.selectedAttributes, checked = _a.checked;
26
+ return checked
27
+ ? selectedAttributes.concat(attribute)
28
+ : selectedAttributes.filter(function (selectedAttribute) { return !isEqualAttributes(attribute, selectedAttribute); });
29
+ };
30
+ export var getAttributeIndex = function (selectedAttributes, attribute) {
31
+ return selectedAttributes.findIndex(isEqualAttributes(attribute));
32
+ };
33
+ export var getContainerWidth = getMaxItemWidth('title');
34
+ export var getOnEnterHandler = function (_a) {
35
+ var onListItemClick = _a.onListItemClick, selectedAttributes = _a.selectedAttributes;
36
+ return function (_a) {
37
+ var item = _a.item, groupData = _a.groupData;
38
+ var checked = checkAttributeIncludes(item, selectedAttributes);
39
+ onListItemClick(__assign(__assign({}, item), { groupName: groupData.groupName }), !checked);
40
+ };
41
+ };
42
+ var getAttributeGroupData = function (item, groupId, groupName, filterText, level, noFilter) {
43
+ if (level === void 0) { level = 0; }
44
+ if (noFilter === void 0) { noFilter = false; }
45
+ var isItemFiltered = filterItem(item, filterText);
46
+ return [
47
+ {
48
+ item: filterText ? __assign(__assign({}, item), { filterText: filterText }) : item,
49
+ level: level,
50
+ groupId: groupId,
51
+ groupName: groupName
52
+ }
53
+ ]
54
+ .concat(item.children
55
+ ? item.children
56
+ .filter(function (subItem) { return noFilter || isItemFiltered || filterItemsTree(subItem, filterText); })
57
+ .flatMap(function (subItem) {
58
+ return getAttributeGroupData(subItem, groupId, groupName, filterText, level + 1, noFilter || isItemFiltered);
59
+ })
60
+ : [])
61
+ .flat();
62
+ };
63
+ export var prepareGroupsForSelectAttributeList = curry(function (filterText, groups) {
64
+ return groups
65
+ .map(function (group) { return ({
66
+ item: group,
67
+ items: group.attributes
68
+ .filter(function (attribute) { return filterItemsTree(attribute, filterText); })
69
+ .map(function (item) { return getAttributeGroupData(item, group.id, group.title, filterText); })
70
+ }); })
71
+ .filter(function (group) { return group.items.length; });
72
+ });
@@ -0,0 +1,2 @@
1
+ declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"selector">;
2
+ export default useStyles;
@@ -0,0 +1,12 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ var useStyles = makeStyles({
3
+ selector: {
4
+ minWidth: '200px',
5
+ alignItems: 'stretch',
6
+ background: 'rgba(0,0,0, 0.0267)',
7
+ boxSizing: 'border-box',
8
+ borderRadius: '4px',
9
+ display: 'flex'
10
+ }
11
+ });
12
+ export default useStyles;
@@ -1,11 +1,20 @@
1
1
  /// <reference types="react" />
2
- import { EditingConnection, AttributeItem } from '@reltio/mdm-sdk';
2
+ import { AttributeItem, EditingConnection, Entity, TRelationType } from '@reltio/mdm-sdk';
3
3
  declare type Props = {
4
4
  connection: EditingConnection;
5
5
  showEmptyEditors?: boolean;
6
6
  onChangeAttribute: (attribute: AttributeItem) => void;
7
7
  onAddAttributes: (attributes: AttributeItem[]) => void;
8
- onRemoveAttribute: (attrbutes: AttributeItem) => void;
8
+ onRemoveAttribute: (attributes: AttributeItem) => void;
9
+ onChangeRelationType?: (value: {
10
+ type: string;
11
+ direction: string;
12
+ }) => void;
13
+ onChangeEntity?: (entity: Entity) => void;
14
+ relatedEntity?: Entity;
15
+ inRelationTypes?: TRelationType[];
16
+ outRelationTypes?: TRelationType[];
17
+ entityErrorMessage?: string;
9
18
  };
10
- export declare const ConnectionEditor: ({ connection, onChangeAttribute, onRemoveAttribute, onAddAttributes, showEmptyEditors }: Props) => JSX.Element;
19
+ export declare const ConnectionEditor: ({ connection, relatedEntity, inRelationTypes, outRelationTypes, showEmptyEditors, entityErrorMessage, onChangeAttribute, onRemoveAttribute, onAddAttributes, onChangeRelationType, onChangeEntity }: Props) => JSX.Element;
11
20
  export {};
@@ -9,20 +9,87 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import React, { useMemo } from 'react';
12
+ import { useStyles } from './styles';
13
+ import { useDidUpdateEffect } from '../../hooks';
14
+ import React, { useCallback, useEffect, useMemo } from 'react';
13
15
  import { useSelector } from 'react-redux';
14
16
  import mdmModule from '@reltio/mdm-module';
15
- import { getActivenessAttributes, getRelationAttributesList, ModeTypes } from '@reltio/mdm-sdk';
17
+ import { Directions, getActivenessAttributes, getSuitableEntityTypeUrisForRelationTypes, getDefaultRelationTypeObject, getLabel, getRelationAttributesList, getRelationType, isAvailableRelationBetweenEntities, ModeTypes } from '@reltio/mdm-sdk';
16
18
  import AttributesList from '../attributes/editMode/AttributesList';
19
+ import classnames from 'classnames';
20
+ import { uniq } from 'ramda';
21
+ import ConnectionRelationTypeSelector from '../ConnectionRelationTypeSelector/ConnectionRelationTypeSelector';
22
+ import ErrorWrapper from '../ErrorWrapper/ErrorWrapper';
23
+ import EntitySelector from '../attributes/editMode/EntitySelector/EntitySelector';
17
24
  export var ConnectionEditor = function (_a) {
18
- var connection = _a.connection, onChangeAttribute = _a.onChangeAttribute, onRemoveAttribute = _a.onRemoveAttribute, onAddAttributes = _a.onAddAttributes, showEmptyEditors = _a.showEmptyEditors;
19
- var relation = connection.relation;
20
- var attributes = relation.attributes, relationUri = relation.uri, _b = relation.type, relationTypeUri = _b === void 0 ? '' : _b;
25
+ var _b;
26
+ var connection = _a.connection, relatedEntity = _a.relatedEntity, _c = _a.inRelationTypes, inRelationTypes = _c === void 0 ? [] : _c, _d = _a.outRelationTypes, outRelationTypes = _d === void 0 ? [] : _d, showEmptyEditors = _a.showEmptyEditors, entityErrorMessage = _a.entityErrorMessage, onChangeAttribute = _a.onChangeAttribute, onRemoveAttribute = _a.onRemoveAttribute, onAddAttributes = _a.onAddAttributes, onChangeRelationType = _a.onChangeRelationType, onChangeEntity = _a.onChangeEntity;
27
+ var styles = useStyles();
28
+ var relation = connection.relation, entity = connection.entity;
29
+ var _e = relation || {}, attributes = _e.attributes, relationUri = _e.uri, _f = _e.type, relationTypeUri = _f === void 0 ? '' : _f, direction = _e.direction;
30
+ var isRelationTypeSelected = Boolean(relationTypeUri);
21
31
  var metadata = useSelector(mdmModule.selectors.getMetadata);
22
- var attributeListEntity = useMemo(function () { return (__assign({ attributes: attributes }, getActivenessAttributes(relation))); }, [relation, attributes]);
32
+ var attributeListEntity = useMemo(function () {
33
+ return relation && __assign({ attributes: attributes }, getActivenessAttributes(relation));
34
+ }, [relation, attributes]);
23
35
  var relationAttrTypes = useMemo(function () { return getRelationAttributesList(metadata, relationTypeUri); }, [
24
36
  relationTypeUri,
25
37
  metadata
26
38
  ]);
27
- return (React.createElement(AttributesList, { attrTypes: relationAttrTypes, entity: attributeListEntity, showEmptyEditors: showEmptyEditors, mode: ModeTypes.EDITING, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onRemoveAttribute }));
39
+ var availableEntityTypeUris = useMemo(function () {
40
+ return isRelationTypeSelected
41
+ ? getSuitableEntityTypeUrisForRelationTypes(direction === Directions.OUT, metadata, [
42
+ getRelationType(metadata, relationTypeUri)
43
+ ])
44
+ : uniq(getSuitableEntityTypeUrisForRelationTypes(true, metadata, outRelationTypes).concat(getSuitableEntityTypeUrisForRelationTypes(false, metadata, inRelationTypes)));
45
+ }, [isRelationTypeSelected, relationTypeUri, metadata, inRelationTypes, outRelationTypes]);
46
+ var globalSearchRequestOptions = useSelector(function (state) {
47
+ return mdmModule.selectors.getGlobalSearchRequestOptions(state, ['ovOnly']);
48
+ });
49
+ var selectorCompatibleRelation = useMemo(function () {
50
+ return relation && {
51
+ relationType: relation.type,
52
+ direction: relation.direction
53
+ };
54
+ }, [relation]);
55
+ var selectorCompatibleEntity = useMemo(function () {
56
+ return entity && {
57
+ entityUri: entity.uri,
58
+ entityType: entity.type,
59
+ entityLabel: getLabel(entity.label)
60
+ };
61
+ }, [entity]);
62
+ var availableInRelationTypes = useMemo(function () {
63
+ return entity && entity.uri
64
+ ? inRelationTypes.filter(isAvailableRelationBetweenEntities(false, entity, relatedEntity, metadata))
65
+ : inRelationTypes;
66
+ }, [entity, inRelationTypes, relatedEntity, metadata]);
67
+ var availableOutRelationTypes = useMemo(function () {
68
+ return entity && entity.uri
69
+ ? outRelationTypes.filter(isAvailableRelationBetweenEntities(true, entity, relatedEntity, metadata))
70
+ : outRelationTypes;
71
+ }, [entity, outRelationTypes, relatedEntity, metadata]);
72
+ useEffect(function () {
73
+ // autoselecting relation type on mount
74
+ var _a = getDefaultRelationTypeObject(inRelationTypes, outRelationTypes) || {}, type = _a.type, direction = _a.direction;
75
+ if (!relationTypeUri && type && onChangeRelationType) {
76
+ onChangeRelationType({ type: type.uri, direction: direction });
77
+ }
78
+ }, [relationTypeUri, inRelationTypes, outRelationTypes, onChangeRelationType]);
79
+ useDidUpdateEffect(function () {
80
+ // autoselecting relation type on entity change
81
+ var _a = getDefaultRelationTypeObject(availableInRelationTypes, availableOutRelationTypes) || {}, type = _a.type, direction = _a.direction;
82
+ if (!relationTypeUri && type) {
83
+ onChangeRelationType({ type: type.uri, direction: direction });
84
+ }
85
+ }, [relationTypeUri, entity, availableInRelationTypes, availableOutRelationTypes, onChangeEntity]);
86
+ var handleChangeRelationType = useCallback(function (_a) {
87
+ var type = _a.type, direction = _a.direction;
88
+ onChangeRelationType({ type: type.uri, direction: direction });
89
+ }, [onChangeRelationType]);
90
+ return (React.createElement(React.Fragment, null,
91
+ onChangeRelationType && (React.createElement(ConnectionRelationTypeSelector, { className: styles.item, relation: selectorCompatibleRelation, metadata: metadata, inRelationTypes: inRelationTypes, outRelationTypes: outRelationTypes, onChange: handleChangeRelationType })),
92
+ onChangeEntity && (React.createElement(ErrorWrapper, { errorMessage: entityErrorMessage, className: styles.item },
93
+ React.createElement(EntitySelector, { key: relationTypeUri, className: classnames((_b = {}, _b[styles.dense] = entityErrorMessage, _b)), entity: selectorCompatibleEntity || {}, entityTypesUris: availableEntityTypeUris, max: 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: ModeTypes.EDITING, onChange: onChangeEntity, onCreate: undefined, metadata: metadata, attributeTypesSelectionStrategy: undefined }))),
94
+ relationTypeUri && (React.createElement(AttributesList, { attrTypes: relationAttrTypes, entity: attributeListEntity, showEmptyEditors: showEmptyEditors, mode: ModeTypes.EDITING, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onRemoveAttribute }))));
28
95
  };
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"item" | "dense">;
@@ -0,0 +1,9 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles({
3
+ item: {
4
+ marginBottom: '16px'
5
+ },
6
+ dense: {
7
+ marginBottom: 0
8
+ }
9
+ });
@@ -40,11 +40,12 @@ var ConnectionRelationTypeSelector = function (_a) {
40
40
  outRelationTypes,
41
41
  onChange
42
42
  ]);
43
+ var hasValue = !!relation.relationType;
43
44
  useEffect(function () {
44
- if (applyFirstByDefault && relationsTypesOptions.length) {
45
+ if (applyFirstByDefault && relationsTypesOptions.length && !hasValue) {
45
46
  handleChange(relationsTypesOptions[0]);
46
47
  }
47
- }, [relationsTypesOptions, applyFirstByDefault, handleChange]);
48
+ }, [relationsTypesOptions, applyFirstByDefault, handleChange, hasValue]);
48
49
  return (React.createElement(RelationTypeSelector, __assign({ value: toEditorValue(relation, relationsTypesOptions), options: relationsTypesOptions, onChange: handleChange }, otherProps)));
49
50
  };
50
51
  ConnectionRelationTypeSelector.propTypes = {
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"button" | "overlay" | "selected" | "checkedIcon" | "actions" | "selectionMode" | "actionButton" | "dropDownMenuButton">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"button" | "overlay" | "selected" | "actions" | "checkedIcon" | "selectionMode" | "actionButton" | "dropDownMenuButton">;
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"form" | "root" | "divider" | "actions" | "cancelButton">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"form" | "root" | "actions" | "divider" | "cancelButton">;
@@ -40,7 +40,7 @@ declare var _default: React.MemoExoticComponent<{
40
40
  actionsContainer: PropTypes.Requireable<string>;
41
41
  }>>;
42
42
  rowData: PropTypes.Requireable<PropTypes.InferProps<{
43
- id: PropTypes.Requireable<string>;
43
+ id: PropTypes.Requireable<string | number>;
44
44
  values: PropTypes.Requireable<any[]>;
45
45
  data: PropTypes.Requireable<PropTypes.InferProps<{
46
46
  title: PropTypes.Requireable<string>;
@@ -69,7 +69,7 @@ declare var _default: React.MemoExoticComponent<{
69
69
  operator: PropTypes.Requireable<string>;
70
70
  }>>;
71
71
  previousRowData: PropTypes.Requireable<PropTypes.InferProps<{
72
- id: PropTypes.Requireable<string>;
72
+ id: PropTypes.Requireable<string | number>;
73
73
  values: PropTypes.Requireable<any[]>;
74
74
  data: PropTypes.Requireable<PropTypes.InferProps<{
75
75
  title: PropTypes.Requireable<string>;
@@ -1,7 +1,7 @@
1
1
  declare var _default: React.MemoExoticComponent<{
2
2
  ({ className, rowClasses, rowsData, lastRowAttributeSelectorProps, filterSelectorRef, filterSelectorRefIndex, ...rowProps }: {
3
3
  [x: string]: any;
4
- className: any;
4
+ className?: any;
5
5
  rowClasses: any;
6
6
  rowsData: any;
7
7
  lastRowAttributeSelectorProps: any;
@@ -19,7 +19,7 @@ declare var _default: React.MemoExoticComponent<{
19
19
  actionsContainer: PropTypes.Requireable<string>;
20
20
  }>>;
21
21
  rowsData: PropTypes.Requireable<PropTypes.InferProps<{
22
- id: PropTypes.Requireable<string>;
22
+ id: PropTypes.Requireable<string | number>;
23
23
  values: PropTypes.Requireable<any[]>;
24
24
  data: PropTypes.Requireable<PropTypes.InferProps<{
25
25
  title: PropTypes.Requireable<string>;
@@ -26,7 +26,7 @@ import { path } from 'ramda';
26
26
  import QueryBuilderRow from '../QueryBuilderRow/QueryBuilderRow';
27
27
  import { QueryBuilderAttributeType } from '../../constants';
28
28
  var QueryBuilderRowsGroup = function (_a) {
29
- var className = _a.className, rowClasses = _a.rowClasses, rowsData = _a.rowsData, lastRowAttributeSelectorProps = _a.lastRowAttributeSelectorProps, filterSelectorRef = _a.filterSelectorRef, filterSelectorRefIndex = _a.filterSelectorRefIndex, rowProps = __rest(_a, ["className", "rowClasses", "rowsData", "lastRowAttributeSelectorProps", "filterSelectorRef", "filterSelectorRefIndex"]);
29
+ var _b = _a.className, className = _b === void 0 ? undefined : _b, rowClasses = _a.rowClasses, rowsData = _a.rowsData, lastRowAttributeSelectorProps = _a.lastRowAttributeSelectorProps, filterSelectorRef = _a.filterSelectorRef, filterSelectorRefIndex = _a.filterSelectorRefIndex, rowProps = __rest(_a, ["className", "rowClasses", "rowsData", "lastRowAttributeSelectorProps", "filterSelectorRef", "filterSelectorRefIndex"]);
30
30
  var renderRow = function (rowData, index, rowsData) {
31
31
  var previousRow = index > 0 ? path([index - 1], rowsData) : null;
32
32
  var lastRowProps = index === rowsData.length
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { AttributeType } from '@reltio/mdm-sdk';
3
+ import { AttributeSelectorItem } from '../../types';
4
+ declare type Data = {
5
+ attrType?: AttributeType;
6
+ };
7
+ declare type Props = {
8
+ selectedAttributes: AttributeSelectorItem[];
9
+ focusIndex: number;
10
+ hideCheckBox: boolean;
11
+ onItemClick: (data: Data, checked: boolean, groupId: string) => void;
12
+ } & Record<string, unknown>;
13
+ declare const _default: React.MemoExoticComponent<({ selectedAttributes, onItemClick, focusIndex, hideCheckBox, ...otherProps }: Props) => JSX.Element>;
14
+ export default _default;
@@ -0,0 +1,51 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { memo } from 'react';
24
+ import { useSelector } from 'react-redux';
25
+ import ListItem from '@material-ui/core/ListItem';
26
+ import mdmModule from '@reltio/mdm-module';
27
+ import AttributeListItem from '../AttributeListItem/AttributeListItem';
28
+ import VirtualGroupedList from '../VirtualGroupedList/VirtualGroupedList';
29
+ import Highlighter from '../Highlighter/Highlighter';
30
+ import AttributeGroupIcon from '../AttributeGroupIcon/AttributeGroupIcon';
31
+ import { checkAttributeIncludes } from '../BasicAttributeSelector/helpers';
32
+ import { useStyles } from './styles';
33
+ var ITEM_HEIGHT = 28;
34
+ var ITEM_GROUP_TITLE_HEIGHT = 40;
35
+ var SelectAttributesList = function (_a) {
36
+ var selectedAttributes = _a.selectedAttributes, onItemClick = _a.onItemClick, focusIndex = _a.focusIndex, hideCheckBox = _a.hideCheckBox, otherProps = __rest(_a, ["selectedAttributes", "onItemClick", "focusIndex", "hideCheckBox"]);
37
+ var styles = useStyles();
38
+ var metadata = useSelector(mdmModule.selectors.getMetadata);
39
+ var getItemSize = function (i, item) { return (item.items ? ITEM_GROUP_TITLE_HEIGHT : ITEM_HEIGHT); };
40
+ var renderGroupTitle = function (style, item) { return (React.createElement(ListItem, { component: 'div', className: styles.subHeader, style: style, key: "group-" + item.item.id },
41
+ item.item.needGroupIcon && React.createElement(AttributeGroupIcon, { group: item.item, metadata: metadata }),
42
+ item.item.title)); };
43
+ var renderItem = function (style, _a, index) {
44
+ var item = _a.item, level = _a.level, groupId = _a.groupId, groupName = _a.groupName;
45
+ var checked = checkAttributeIncludes(item, selectedAttributes);
46
+ var isFocused = index === focusIndex;
47
+ return (React.createElement(AttributeListItem, { key: "item-" + groupId + "-" + item.fieldName, onClick: onItemClick, checked: checked, data: __assign(__assign({}, item), { groupName: groupName }), notSelectable: item.notSelectable, hideCheckBox: hideCheckBox, label: React.createElement(Highlighter, { text: item.title, highlight: item.filterText }), labelInText: item.title, level: level, style: style, isFocused: isFocused, groupId: groupId, LogoIcon: item.LogoIcon }));
48
+ };
49
+ return (React.createElement(VirtualGroupedList, __assign({ getItemSize: getItemSize, renderItem: renderItem, renderGroupTitle: renderGroupTitle, focusIndex: focusIndex }, otherProps)));
50
+ };
51
+ export default memo(SelectAttributesList);
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"subHeader">;
@@ -0,0 +1,13 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles({
3
+ subHeader: {
4
+ backgroundColor: '#f5f5f5',
5
+ padding: '0 16px',
6
+ margin: 0,
7
+ display: 'flex',
8
+ alignItems: 'center',
9
+ color: 'rgba(0,0,0,0.84)',
10
+ fontSize: '14px',
11
+ fontWeight: 500
12
+ }
13
+ });
@@ -5,7 +5,7 @@ declare type Props = {
5
5
  containerWidth: number;
6
6
  containerHeight: number;
7
7
  children: React.ReactNode;
8
- PaperProps: Record<string, unknown>;
8
+ PaperProps?: Record<string, unknown>;
9
9
  searchInputOnKeyDown: (event: React.KeyboardEvent) => void;
10
10
  onSearch: (value?: string) => void;
11
11
  className?: string;
@@ -1,4 +1,4 @@
1
- import { ReactNode, VFC } from 'react';
1
+ import { ReactNode } from 'react';
2
2
  declare type HeaderProps = {
3
3
  mainTitle?: string;
4
4
  secondTitle?: string;
@@ -8,5 +8,5 @@ declare type HeaderProps = {
8
8
  declare type Props = HeaderProps & {
9
9
  onClose: () => void;
10
10
  };
11
- export declare const SidePanelContentHeader: VFC<Props>;
11
+ export declare const SidePanelContentHeader: ({ onClose, mainTitle, secondTitle, content, rightContent }: Props) => JSX.Element;
12
12
  export {};
@@ -1,14 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ label: string;
4
+ isRequired?: boolean;
5
+ className?: string;
6
+ };
7
+ declare const Title: ({ label, isRequired, className, ...otherProps }: Props) => JSX.Element;
1
8
  export default Title;
2
- declare function Title({ label, isRequired, className }: {
3
- label: any;
4
- isRequired: any;
5
- className: any;
6
- }): JSX.Element;
7
- declare namespace Title {
8
- namespace propTypes {
9
- const label: PropTypes.Requireable<string>;
10
- const isRequired: PropTypes.Requireable<boolean>;
11
- const className: PropTypes.Requireable<string>;
12
- }
13
- }
14
- import PropTypes from "prop-types";
@@ -1,19 +1,35 @@
1
- import PropTypes from 'prop-types';
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
2
23
  import React from 'react';
3
24
  import classnames from 'classnames';
4
25
  import RequiredMark from '../RequiredMark/RequiredMark';
5
26
  import Typography from '@material-ui/core/Typography';
6
27
  import { useStyles } from './styles';
7
28
  var Title = function (_a) {
8
- var label = _a.label, isRequired = _a.isRequired, className = _a.className;
29
+ var label = _a.label, isRequired = _a.isRequired, className = _a.className, otherProps = __rest(_a, ["label", "isRequired", "className"]);
9
30
  var styles = useStyles();
10
- return (React.createElement(Typography, { className: classnames(styles.label, className), component: "span" },
31
+ return (React.createElement(Typography, __assign({ className: classnames(styles.label, className), component: "span" }, otherProps),
11
32
  label,
12
33
  isRequired && React.createElement(RequiredMark, null)));
13
34
  };
14
- Title.propTypes = {
15
- label: PropTypes.string,
16
- isRequired: PropTypes.bool,
17
- className: PropTypes.string
18
- };
19
35
  export default Title;
@@ -1 +1 @@
1
- export const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"label">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"label">;
@@ -4,7 +4,7 @@ import { ui } from '@reltio/mdm-module';
4
4
  import ActivityTitle from './ActivityTitle/ActivityTitle';
5
5
  import { always, pipe } from 'ramda';
6
6
  import { parseJSON } from '../../../core';
7
- import { useReadableSearchState } from '../hooks/useReadableSearchState';
7
+ import { useReadableSearchState } from '../../../hooks';
8
8
  import i18n from 'ui-i18n';
9
9
  import { useStyles } from './styles';
10
10
  var SearchActivity = function (_a) {
@@ -76,7 +76,7 @@ var AttributeRenderer = function (_a) {
76
76
  return (React.createElement(BranchDecorator, { enabled: drawLines },
77
77
  React.createElement("div", { className: styles.wrapper },
78
78
  React.createElement("div", { className: styles.titleWrapper },
79
- React.createElement(Title, { label: label, isRequired: isRequired, className: styles.title }),
79
+ React.createElement(Title, { label: label, isRequired: isRequired, className: styles.title, "data-reltio-id": "reltio-attribute-label" }),
80
80
  React.createElement(OvIcon, { nonOvValues: nonVisibleValues, attributeType: attributeType, className: styles.ovIcon, nonOvTotal: totalNonVisibleValues })),
81
81
  isEditableMode && React.createElement(Cardinality, { cardinality: cardinality }),
82
82
  isEditableMode && React.createElement(ErrorMessage, { message: errorMessage, className: styles.typeError }),
@@ -57,7 +57,7 @@ var AttributesPager = function (_a) {
57
57
  case RENDERER_TYPES.imageLine:
58
58
  return (React.createElement(BranchDecorator, { enabled: drawLines },
59
59
  React.createElement("div", { className: styles.wrapper },
60
- React.createElement(Title, { label: attributeType === null || attributeType === void 0 ? void 0 : attributeType.label }),
60
+ React.createElement(Title, { label: attributeType === null || attributeType === void 0 ? void 0 : attributeType.label, "data-reltio-id": "reltio-attribute-label" }),
61
61
  React.createElement(ImageAttributesLine, { attributeValues: visibleValues, attributeType: attributeType, paging: paging, onDeleteAttribute: onDeleteAttribute, parentUri: parentUri, onChangeAttribute: onChangeAttribute, requestNextPageOfAttributeValues: requestNextPageOfAttributeValues, showNonOv: showNonOv }))));
62
62
  default:
63
63
  return (React.createElement(AttributeRenderer, __assign({ values: visibleValues, attributeType: attributeType, max: max, paging: paging, crosswalks: crosswalks, drawLines: drawLines, requestNextPageOfAttributeValues: requestNextPageOfAttributeValues, showNonOv: showNonOv, nonVisibleValues: nonVisibleValues }, commonProps)));
@@ -62,7 +62,7 @@ var SpecialRenderer = function (_a) {
62
62
  return null;
63
63
  }
64
64
  return (React.createElement(Box, { className: styles.wrapper },
65
- React.createElement(Title, { label: label, isRequired: isRequired, className: styles.title }),
65
+ React.createElement(Title, { label: label, isRequired: isRequired, className: styles.title, "data-reltio-id": "reltio-attribute-label" }),
66
66
  isEditableMode && React.createElement(Cardinality, { cardinality: cardinality }),
67
67
  isEditableMode && React.createElement(ErrorMessage, { message: errorMessage }),
68
68
  React.createElement(Box, { className: styles.attributesWrapper }, renderValue())));
@@ -67,7 +67,7 @@ var ComplexAttribute = function (_a) {
67
67
  React.createElement("div", { className: styles.titleContainer },
68
68
  React.createElement(ArrowExpandButton, { onClick: function () { return setExpanded(function (value) { return !value; }); }, expanded: expanded, className: styles.expandButton, disabled: deleted }),
69
69
  React.createElement(ErrorWrapper, { errorMessage: errorMessage, classes: { helperText: styles.errorWrapperHelperText } },
70
- React.createElement("div", { className: classnames(styles.label, (_b = {}, _b[styles.deleted] = deleted, _b)) }, label))),
70
+ React.createElement("div", { className: classnames(styles.label, (_b = {}, _b[styles.deleted] = deleted, _b)), "data-reltio-id": "reltio-attribute-complex-label" }, label))),
71
71
  React.createElement("div", { className: styles.actions },
72
72
  edited && (React.createElement(Typography, { variant: "caption", className: styles.editedLabel },
73
73
  "(",
@@ -10,7 +10,7 @@ declare function EntitySelector({ entity, entityTypesUris, mode, max, onChange,
10
10
  metadata: any;
11
11
  globalSearchRequestOptions: any;
12
12
  attributeTypesSelectionStrategy: any;
13
- disableLinkClick: any;
13
+ disableLinkClick?: boolean;
14
14
  }): JSX.Element;
15
15
  declare namespace EntitySelector {
16
16
  namespace propTypes {
@@ -33,7 +33,7 @@ import EntityCreator from '../EntityCreator';
33
33
  import { EmptyStub } from '../../../../core';
34
34
  import Group from './components/Group';
35
35
  import { useStyles } from './styles';
36
- var buildEntityOptions = function (entityTypes) { return function (entities) {
36
+ var buildEntityOptions = function (entityTypes, onCreate) { return function (entities) {
37
37
  var newOptions = entities.map(function (entity) { return (__assign(__assign({}, entity), { label: getLabel(entity.label), entityType: entityTypes.find(function (_a) {
38
38
  var uri = _a.uri;
39
39
  return uri === entity.type;
@@ -49,8 +49,13 @@ var buildEntityOptions = function (entityTypes) { return function (entities) {
49
49
  ]
50
50
  : options;
51
51
  };
52
- return entityTypes.length > 1
53
- ? entityTypes.map(function (type) {
52
+ var filteredEntityTypes = onCreate
53
+ ? entityTypes
54
+ : entityTypes.filter(function (type) {
55
+ return newOptions.some(function (option) { return option.type === type.uri; });
56
+ });
57
+ return filteredEntityTypes.length > 1
58
+ ? filteredEntityTypes.map(function (type) {
54
59
  return {
55
60
  label: type.label,
56
61
  entityType: type.uri,
@@ -60,9 +65,9 @@ var buildEntityOptions = function (entityTypes) { return function (entities) {
60
65
  : addDummyOptionToEmptyOptionList(newOptions);
61
66
  }; };
62
67
  var EntitySelector = function (_a) {
63
- var _b = _a.entity, entity = _b === void 0 ? {} : _b, _c = _a.entityTypesUris, entityTypesUris = _c === void 0 ? [] : _c, mode = _a.mode, max = _a.max, onChange = _a.onChange, onCreate = _a.onCreate, metadata = _a.metadata, globalSearchRequestOptions = _a.globalSearchRequestOptions, attributeTypesSelectionStrategy = _a.attributeTypesSelectionStrategy, disableLinkClick = _a.disableLinkClick, otherProps = __rest(_a, ["entity", "entityTypesUris", "mode", "max", "onChange", "onCreate", "metadata", "globalSearchRequestOptions", "attributeTypesSelectionStrategy", "disableLinkClick"]);
68
+ var _b = _a.entity, entity = _b === void 0 ? {} : _b, _c = _a.entityTypesUris, entityTypesUris = _c === void 0 ? [] : _c, mode = _a.mode, max = _a.max, onChange = _a.onChange, onCreate = _a.onCreate, metadata = _a.metadata, globalSearchRequestOptions = _a.globalSearchRequestOptions, attributeTypesSelectionStrategy = _a.attributeTypesSelectionStrategy, _d = _a.disableLinkClick, disableLinkClick = _d === void 0 ? false : _d, otherProps = __rest(_a, ["entity", "entityTypesUris", "mode", "max", "onChange", "onCreate", "metadata", "globalSearchRequestOptions", "attributeTypesSelectionStrategy", "disableLinkClick"]);
64
69
  var styles = useStyles();
65
- var _d = useState(''), inputValue = _d[0], setInputValue = _d[1];
70
+ var _e = useState(''), inputValue = _e[0], setInputValue = _e[1];
66
71
  var entityTypes = useMemo(function () { return entityTypesUris.map(function (type) { return getEntityType(metadata, type); }); }, [
67
72
  entityTypesUris,
68
73
  metadata
@@ -94,7 +99,9 @@ var EntitySelector = function (_a) {
94
99
  handleChange({});
95
100
  };
96
101
  var groupMode = useMemo(function () { return entityTypes.length !== 1; }, [entityTypes]);
97
- var getOptions = function (value) { return getFilteredEntities(filters, options, value).then(buildEntityOptions(entityTypes)); };
102
+ var getOptions = function (value) {
103
+ return getFilteredEntities(filters, options, value).then(buildEntityOptions(entityTypes, onCreate));
104
+ };
98
105
  var currentEntityType = (isEmpty(entity) ? entityTypes[0] : getEntityType(metadata, entity.entityType)) || {};
99
106
  var createLabel = onCreate && i18n.text("Create " + (inputValue ? "\"" + inputValue + "\" as " : '') + "new " + currentEntityType.label);
100
107
  var label = i18n.text("Select " + (entityTypes.length === 1 ? entityTypes[0].label + " " : '') + "profile");
@@ -70,7 +70,7 @@ var ImageAttributesLine = function (_a) {
70
70
  var uri = attribute.uri;
71
71
  var onOpenImageGalleryDialog = methods.onOpenImageGalleryDialog;
72
72
  return (React.createElement("div", { className: styles.image, key: uri },
73
- React.createElement(Image, { src: src, overlay: renderImageActionsOverlay(methods, attribute), onClick: function () { return onOpenImageGalleryDialog(uri); }, size: { imageWidth: imageSize.imageWidth, imageHeight: imageSize.imageHeight } })));
73
+ React.createElement(Image, { src: src, overlay: renderImageActionsOverlay(methods, attribute), onClick: function () { return onOpenImageGalleryDialog(uri); }, size: { imageWidth: imageSize.imageWidth, imageHeight: imageSize.imageHeight }, "data-reltio-id": "reltio-attribute-value" })));
74
74
  };
75
75
  return renderImage;
76
76
  };
@@ -38,7 +38,7 @@ export var Roles = function (_a) {
38
38
  var handleDelete = useCallback(function () {
39
39
  onDelete({ uri: entityUri, attributeType: EntityAttrTypes.roles });
40
40
  }, [entityUri, onDelete]);
41
- return (React.createElement("div", { className: styles.container },
41
+ return (React.createElement("div", { className: styles.container, "data-reltio-id": "reltio-attribute-value" },
42
42
  React.createElement(SimpleDropDownSelector, { label: '', height: 40, isMulti: true, options: options, value: formattedValues, onChange: handleChange, components: components, classes: styles, className: styles.roleContainer }),
43
43
  !!onDelete && (React.createElement(SmallIconButton, { className: styles.deleteButton, icon: DeleteIcon, onClick: handleDelete, size: "L" }))));
44
44
  };