@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,27 @@
1
+ import React, { memo, useCallback } from 'react';
2
+ import i18n from 'ui-i18n';
3
+ import CloseIcon from '@material-ui/icons/Close';
4
+ import AddCircleIcon from '@material-ui/icons/AddCircle';
5
+ import { SmallIconButtonWithTooltip } from '../../../SmallIconButton/index';
6
+ import DuplicateIcon from '../../../../icons/Duplicate';
7
+ import { useStyles } from './styles';
8
+ var RowActions = function (_a) {
9
+ var rowData = _a.rowData, rowContext = _a.rowContext;
10
+ var styles = useStyles();
11
+ var _b = rowData || {}, index = _b.id, attribute = _b.attribute;
12
+ var addRowAfterIndex = rowContext.addRowAfterIndex, removeRow = rowContext.removeRow, duplicateRow = rowContext.duplicateRow;
13
+ var onAddRowAfterId = useCallback(function () {
14
+ addRowAfterIndex(index);
15
+ }, [addRowAfterIndex, index]);
16
+ var onRowDuplicate = useCallback(function () {
17
+ duplicateRow(index);
18
+ }, [duplicateRow, index]);
19
+ var onRowDelete = useCallback(function () {
20
+ removeRow(index);
21
+ }, [index, removeRow]);
22
+ return (React.createElement("div", { className: styles.actions },
23
+ React.createElement(SmallIconButtonWithTooltip, { tooltipTitle: i18n.text('Add'), icon: AddCircleIcon, size: "M", onClick: onAddRowAfterId }),
24
+ attribute && (React.createElement(SmallIconButtonWithTooltip, { tooltipTitle: i18n.text('Duplicate'), icon: DuplicateIcon, size: "M", onClick: onRowDuplicate })),
25
+ React.createElement(SmallIconButtonWithTooltip, { tooltipTitle: i18n.text('Delete'), icon: CloseIcon, size: "M", onClick: onRowDelete })));
26
+ };
27
+ export default memo(RowActions);
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"actions" | "actionIcon">;
@@ -0,0 +1,20 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles(function () { return ({
3
+ actions: {
4
+ width: '88px',
5
+ height: '24px',
6
+ display: 'flex',
7
+ alignItems: 'center',
8
+ justifyContent: 'space-between',
9
+ flexShrink: 0,
10
+ '& >span': {
11
+ cursor: 'pointer',
12
+ display: 'flex'
13
+ },
14
+ '& $actionIcon': {
15
+ cursor: 'pointer',
16
+ color: 'rgba(0, 0, 0, .54)'
17
+ }
18
+ },
19
+ actionIcon: {}
20
+ }); });
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { AttributeFiltersComponentProps } from '../../types';
3
+ declare const _default: React.MemoExoticComponent<({ rowData, rowContext }: AttributeFiltersComponentProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,36 @@
1
+ import React, { memo, useMemo, useCallback } from 'react';
2
+ import { checkIfOptionHasValues, getAttrDataTypeDefinition, getDataTypeDefinitionForFilterValue } from '@reltio/mdm-sdk';
3
+ import FilterValueEditor from '../../../editors/FilterEditor/FilterValueEditor';
4
+ import { useStyles } from './styles';
5
+ var ValuesEditor = function (_a) {
6
+ var rowData = _a.rowData, rowContext = _a.rowContext;
7
+ var styles = useStyles();
8
+ var canFilterAcceptValues = (rowData === null || rowData === void 0 ? void 0 : rowData.attribute) && checkIfOptionHasValues(rowData.filter);
9
+ var changeFilter = rowContext.changeFilter;
10
+ var _b = rowData || {}, _c = _b.values, values = _c === void 0 ? [] : _c, _d = _b.attribute, _e = _d === void 0 ? {} : _d, _f = _e.attrType, attrType = _f === void 0 ? {} : _f, _g = _e.fieldName, fieldName = _g === void 0 ? null : _g, filter = _b.filter, id = _b.id;
11
+ var valueDataTypeDefinition = attrType && getAttrDataTypeDefinition(attrType);
12
+ var filterValueDataTypeDefinition = valueDataTypeDefinition && getDataTypeDefinitionForFilterValue(valueDataTypeDefinition, filter);
13
+ var editorFilter = useMemo(function () { return ({
14
+ filter: filter,
15
+ fieldName: fieldName,
16
+ values: values || []
17
+ }); }, [filter, fieldName, values]);
18
+ var TextFieldProps = useMemo(function () { return ({
19
+ InputProps: {
20
+ classes: {
21
+ root: styles.input
22
+ }
23
+ }
24
+ }); }, [styles]);
25
+ var editorClasses = useMemo(function () { return ({ root: styles.root }); }, [styles]);
26
+ var changeValue = useCallback(function (values) {
27
+ var newFilter = {
28
+ fieldName: fieldName,
29
+ filter: filter,
30
+ values: values
31
+ };
32
+ changeFilter(newFilter, id);
33
+ }, [changeFilter, id, fieldName, filter]);
34
+ return (React.createElement("div", { className: styles.valuesEditor }, (rowData === null || rowData === void 0 ? void 0 : rowData.attribute) && canFilterAcceptValues && (React.createElement(FilterValueEditor, { filter: editorFilter, onChange: changeValue, dataTypeDefinition: filterValueDataTypeDefinition, fullWidth: true, TextFieldProps: TextFieldProps, color: "primary", classes: editorClasses, orientation: "horizontal" }))));
35
+ };
36
+ export default memo(ValuesEditor);
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"input" | "root" | "valuesEditor">;
@@ -0,0 +1,22 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles(function () { return ({
3
+ input: {
4
+ margin: 0,
5
+ borderRadius: '4px',
6
+ width: '100%',
7
+ paddingTop: 0,
8
+ paddingBottom: 0
9
+ },
10
+ root: {
11
+ borderRadius: '4px 4px 0 0',
12
+ padding: 0,
13
+ display: 'flex',
14
+ alignItems: 'center',
15
+ margin: 0
16
+ },
17
+ valuesEditor: {
18
+ width: '222px!important',
19
+ minHeight: '40px',
20
+ flexShrink: 0
21
+ }
22
+ }); });
@@ -0,0 +1,12 @@
1
+ import { AttributeType, TEntityType, Metadata, SearchFilter } from '@reltio/mdm-sdk';
2
+ import { AttributeSelectorItem } from '../../types';
3
+ import { FilterOption } from './types';
4
+ export declare const getAttributeSelectorItems: (attributeTypes: AttributeType[], entityType: TEntityType, metadata: Metadata) => AttributeSelectorItem[];
5
+ export declare const findValue: (options: FilterOption[], filter: string) => FilterOption;
6
+ export declare const getRowsDataFromFilters: (filters: SearchFilter[], attributesGroup: AttributeSelectorItem[]) => {
7
+ attribute: AttributeSelectorItem;
8
+ filter: string;
9
+ id: number;
10
+ values: string[];
11
+ }[];
12
+ export declare const getEntityTypeFromAttrTypes: (attributeTypes: AttributeType[]) => any;
@@ -0,0 +1,70 @@
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 { getAttributesTreeFromAttributes, attributeUriToSearchUri, isSpecialAttribute, getBaseUri } from '@reltio/mdm-sdk';
13
+ var createAttributeItem = function (attrType, entityTypeUri) {
14
+ var title = attrType.label || attrType.name;
15
+ return {
16
+ title: title,
17
+ fieldName: attributeUriToSearchUri(attrType.uri),
18
+ entityTypeUri: entityTypeUri,
19
+ attrType: attrType
20
+ };
21
+ };
22
+ var createAttributesConfig = function (attrNode, entityTypeUri, createAttributeConfig) {
23
+ var resConfig = __assign(__assign({}, createAttributeConfig(attrNode, entityTypeUri)), { uri: attrNode.uri });
24
+ var children = attrNode.children
25
+ ? attrNode.children.map(function (childNode) { return createAttributesConfig(childNode, entityTypeUri, createAttributeConfig); })
26
+ : [];
27
+ if (children.length)
28
+ resConfig.children = children;
29
+ return resConfig;
30
+ };
31
+ export var getAttributeSelectorItems = function (attributeTypes, entityType, metadata) {
32
+ if (entityType === void 0) { entityType = {}; }
33
+ return getAttributesTreeFromAttributes(attributeTypes, metadata).map(function (attrNode) {
34
+ return createAttributesConfig(attrNode, entityType.uri, createAttributeItem);
35
+ });
36
+ };
37
+ var findAttributeSelectorItem = function (fieldName, attributesGroup) {
38
+ var attrGroup;
39
+ var findAttribute = function (fieldName, attributesGroup) {
40
+ for (var _i = 0, attributesGroup_1 = attributesGroup; _i < attributesGroup_1.length; _i++) {
41
+ var attributeGroup = attributesGroup_1[_i];
42
+ if (fieldName === attributeGroup.fieldName) {
43
+ attrGroup = attributeGroup;
44
+ return;
45
+ }
46
+ if ('children' in attributeGroup) {
47
+ findAttribute(fieldName, attributeGroup.children);
48
+ }
49
+ }
50
+ };
51
+ findAttribute(fieldName, attributesGroup);
52
+ return attrGroup;
53
+ };
54
+ export var findValue = function (options, filter) {
55
+ return options ? options.find(function (option) { return option.value === filter; }) : null;
56
+ };
57
+ export var getRowsDataFromFilters = function (filters, attributesGroup) {
58
+ return filters.map(function (filter, index) {
59
+ return {
60
+ attribute: filter.fieldName ? findAttributeSelectorItem(filter.fieldName, attributesGroup) : undefined,
61
+ filter: filter.filter,
62
+ id: index,
63
+ values: filter.values
64
+ };
65
+ });
66
+ };
67
+ export var getEntityTypeFromAttrTypes = function (attributeTypes) {
68
+ var regularAttribute = attributeTypes.find(function (attribute) { return !isSpecialAttribute(attribute); });
69
+ return regularAttribute ? getBaseUri(regularAttribute.uri) : null;
70
+ };
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"attrSelector" | "filterSelector" | "actionContainer">;
@@ -0,0 +1,18 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles(function () { return ({
3
+ attrSelector: {
4
+ width: '222px',
5
+ height: '40px',
6
+ flexShrink: 0
7
+ },
8
+ filterSelector: {
9
+ width: '180px',
10
+ flexShrink: 0,
11
+ marginTop: 0,
12
+ marginBottom: 0
13
+ },
14
+ actionContainer: {
15
+ alignItems: 'center',
16
+ marginRight: '15px'
17
+ }
18
+ }); });
@@ -0,0 +1,24 @@
1
+ import { SearchFilter } from '@reltio/mdm-sdk';
2
+ import { AttributeSelectorItem } from '../../types';
3
+ export declare type FilterOption = {
4
+ value: string;
5
+ label: string;
6
+ };
7
+ export declare type RowData = {
8
+ attribute: AttributeSelectorItem;
9
+ filter: string;
10
+ id: number;
11
+ values: string[];
12
+ };
13
+ export declare type RowContext = {
14
+ attributesGroup: AttributeSelectorItem[];
15
+ addNewFilter: (newFilter: SearchFilter) => void;
16
+ addRowAfterIndex: (index: number) => void;
17
+ changeFilter: (newFilter: SearchFilter, id: number) => void;
18
+ duplicateRow: (index: number) => void;
19
+ removeRow: (index: number) => void;
20
+ };
21
+ export declare type AttributeFiltersComponentProps = {
22
+ rowData: RowData;
23
+ rowContext: RowContext;
24
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ onClear: () => void;
4
+ onCancel: () => void;
5
+ onApply: () => void;
6
+ };
7
+ declare const ActionButtons: ({ onClear, onCancel, onApply }: Props) => JSX.Element;
8
+ export default ActionButtons;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import i18n from 'ui-i18n';
3
+ import Button from '@material-ui/core/Button';
4
+ import { useStyles } from './styles';
5
+ var ActionButtons = function (_a) {
6
+ var onClear = _a.onClear, onCancel = _a.onCancel, onApply = _a.onApply;
7
+ var styles = useStyles();
8
+ return (React.createElement("div", { className: styles.buttonsWrapper },
9
+ React.createElement(Button, { onClick: onClear, variant: "text", color: "default", className: styles.clearButon }, i18n.text('Clear all')),
10
+ React.createElement(Button, { onClick: onCancel, variant: "text", color: "default", className: styles.cancelButton }, i18n.text('Cancel')),
11
+ React.createElement(Button, { onClick: onApply, variant: "text", color: "primary", className: styles.applyButton }, i18n.text('Apply'))));
12
+ };
13
+ export default ActionButtons;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"buttonsWrapper" | "cancelButton" | "applyButton" | "clearButon">;
@@ -0,0 +1,23 @@
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 { makeStyles } from '@material-ui/core/styles';
13
+ var allButtonsStyle = {
14
+ alignSelf: 'center'
15
+ };
16
+ export var useStyles = makeStyles(function () { return ({
17
+ buttonsWrapper: {
18
+ display: 'flex'
19
+ },
20
+ applyButton: __assign(__assign({}, allButtonsStyle), { marginRight: '16px' }),
21
+ cancelButton: __assign(__assign({}, allButtonsStyle), { marginLeft: 'auto' }),
22
+ clearButon: __assign({}, allButtonsStyle)
23
+ }); });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { SearchFilter, AttributeType } from '@reltio/mdm-sdk';
3
+ declare type Props = {
4
+ filters: SearchFilter[];
5
+ onChange: (filtres: SearchFilter[]) => void;
6
+ attributeTypes: AttributeType[];
7
+ };
8
+ declare const _default: React.MemoExoticComponent<({ filters: filtersProp, attributeTypes, onChange }: Props) => JSX.Element>;
9
+ export default _default;
@@ -0,0 +1,58 @@
1
+ import React, { useRef, useState, useEffect, useCallback, memo } from 'react';
2
+ import i18n from 'ui-i18n';
3
+ import Popover from '@material-ui/core/Popover';
4
+ import Button from '@material-ui/core/Button';
5
+ import FilterIcon from '@material-ui/icons/FilterList';
6
+ import Typography from '@material-ui/core/Typography';
7
+ import Divider from '@material-ui/core/Divider';
8
+ import AttributesFiltersBuilder from '../AttributesFiltersBuilder/AttributesFiltersBuilder';
9
+ import ActionButtons from './ActionButtons/ActionButtons';
10
+ import { useStyles } from './styles';
11
+ var AttributesFiltersButton = function (_a) {
12
+ var filtersProp = _a.filters, attributeTypes = _a.attributeTypes, onChange = _a.onChange;
13
+ var styles = useStyles();
14
+ var buttonRef = useRef();
15
+ var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
16
+ var _c = useState([]), filters = _c[0], setFilters = _c[1];
17
+ var isFiltersApplied = filtersProp.some(function (_a) {
18
+ var fieldName = _a.fieldName, filter = _a.filter, values = _a.values;
19
+ return fieldName && filter && values.length;
20
+ });
21
+ var buttonColor = isFiltersApplied ? 'primary' : 'inherit';
22
+ var togglePopup = function () { return setIsOpen(function (open) { return !open; }); };
23
+ useEffect(function () {
24
+ if (isOpen) {
25
+ setFilters(filtersProp);
26
+ }
27
+ }, [filtersProp, isOpen]);
28
+ var applyButtonHandler = useCallback(function () {
29
+ onChange(filters);
30
+ togglePopup();
31
+ }, [filters, onChange]);
32
+ var cancelButtonHandler = useCallback(function () {
33
+ togglePopup();
34
+ }, []);
35
+ var clearAllButtonHandler = useCallback(function () {
36
+ setFilters([]);
37
+ }, []);
38
+ return (React.createElement(React.Fragment, null,
39
+ React.createElement(Button, { ref: buttonRef, color: buttonColor, classes: {
40
+ root: styles.triggerButton,
41
+ textPrimary: styles.changedFiltersIndicator
42
+ }, onClick: togglePopup },
43
+ React.createElement(FilterIcon, { color: buttonColor })),
44
+ React.createElement(Popover, { open: isOpen, classes: { paper: styles.popupContent }, anchorEl: buttonRef.current, onClose: togglePopup, anchorOrigin: {
45
+ vertical: 'bottom',
46
+ horizontal: 'right'
47
+ }, transformOrigin: {
48
+ vertical: 'top',
49
+ horizontal: 'left'
50
+ } },
51
+ React.createElement(React.Fragment, null,
52
+ React.createElement(Typography, { variant: "h6" }, i18n.text('Filter')),
53
+ React.createElement("div", { className: styles.filtersBuilderWrapper },
54
+ React.createElement(AttributesFiltersBuilder, { attributeTypes: attributeTypes, filters: filters, onChange: setFilters })),
55
+ React.createElement(Divider, { className: styles.divider }),
56
+ React.createElement(ActionButtons, { onApply: applyButtonHandler, onCancel: cancelButtonHandler, onClear: clearAllButtonHandler })))));
57
+ };
58
+ export default memo(AttributesFiltersButton);
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"divider" | "triggerButton" | "filtersBuilderWrapper" | "popupContent" | "changedFiltersIndicator">;
@@ -0,0 +1,27 @@
1
+ import { makeStyles, fade } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles(function (theme) { return ({
3
+ triggerButton: {
4
+ minWidth: 0,
5
+ color: 'rgba(0,0,0,0.54)',
6
+ width: '40px',
7
+ marginLeft: 'auto',
8
+ marginRight: '12px'
9
+ },
10
+ filtersBuilderWrapper: {
11
+ marginTop: '20px'
12
+ },
13
+ popupContent: {
14
+ paddingLeft: '16px',
15
+ paddingTop: '20px',
16
+ paddingBottom: '6px',
17
+ width: '770px'
18
+ },
19
+ divider: {
20
+ marginBottom: '14px',
21
+ marginLeft: '-16px',
22
+ background: 'rgba(0, 0, 0, 0.121569)'
23
+ },
24
+ changedFiltersIndicator: {
25
+ backgroundColor: fade(theme.palette.primary.main, 0.12)
26
+ }
27
+ }); });
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { AttributeSelectorItem } from '../../../types';
3
+ declare type Value = {
4
+ fieldName: string;
5
+ title: string;
6
+ };
7
+ declare type Props = {
8
+ value: AttributeSelectorItem;
9
+ disabled: boolean;
10
+ getLabel: (value: Value) => string;
11
+ onSelectAttributeClick: (event: any) => void;
12
+ };
13
+ declare const AttributeTitle: ({ value, getLabel, onSelectAttributeClick, disabled }: Props) => JSX.Element;
14
+ export default AttributeTitle;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import i18n from 'ui-i18n';
3
+ import classnames from 'classnames';
4
+ import { either, prop } from 'ramda';
5
+ import { ArrowDropDown } from '@material-ui/icons';
6
+ import ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';
7
+ import SmallIconButton from '../../SmallIconButton/SmallIconButton';
8
+ import useStyles from './styles';
9
+ var defaultGetLabel = either(prop('title'), prop('fieldName'));
10
+ var AttributeTitle = function (_a) {
11
+ var _b, _c, _d;
12
+ var value = _a.value, _e = _a.getLabel, getLabel = _e === void 0 ? defaultGetLabel : _e, onSelectAttributeClick = _a.onSelectAttributeClick, _f = _a.disabled, disabled = _f === void 0 ? false : _f;
13
+ var styles = useStyles();
14
+ var label = value && getLabel(value);
15
+ return (React.createElement("div", { onClick: disabled ? undefined : onSelectAttributeClick, className: classnames(styles.attribute, (_b = {},
16
+ _b[styles.attributeWithValue] = !!label,
17
+ _b), (_c = {}, _c[styles.disabled] = disabled, _c)) },
18
+ React.createElement(ExpandedValueTooltip, { value: label },
19
+ React.createElement("div", { className: classnames(styles.name, (_d = {}, _d[styles.disabled] = disabled, _d)) }, label || React.createElement("span", { className: styles.noSelect }, i18n.text('Select attribute')))),
20
+ React.createElement(SmallIconButton, { size: 'M', icon: ArrowDropDown, disabled: disabled })));
21
+ };
22
+ export default AttributeTitle;
@@ -0,0 +1,2 @@
1
+ declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"attribute" | "name" | "disabled" | "attributeWithValue" | "noSelect">;
2
+ export default useStyles;
@@ -0,0 +1,42 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ var useStyles = makeStyles({
3
+ attribute: {
4
+ cursor: 'pointer',
5
+ lineHeight: '16px',
6
+ flexBasis: '100%',
7
+ display: 'flex',
8
+ alignItems: 'center',
9
+ padding: '0 10px 0 16px',
10
+ width: 'calc(100% - 32px)',
11
+ '&$attributeWithValue': {
12
+ borderBottom: '1px solid rgba(0,0,0,0.38)'
13
+ },
14
+ '&$disabled': {
15
+ cursor: 'default'
16
+ }
17
+ },
18
+ disabled: {},
19
+ attributeWithValue: {},
20
+ noSelect: {},
21
+ name: {
22
+ fontSize: '14px',
23
+ color: 'rgba(0,0,0,0.87)',
24
+ overflow: 'hidden',
25
+ whiteSpace: 'nowrap',
26
+ textOverflow: 'ellipsis',
27
+ direction: 'rtl',
28
+ textAlign: 'left',
29
+ flex: '1 0',
30
+ width: '0',
31
+ '& $noSelect': {
32
+ color: 'rgba(0,0,0,0.38)'
33
+ },
34
+ '&$disabled': {
35
+ color: 'rgba(0,0,0,0.26)',
36
+ '& $noSelect': {
37
+ color: 'rgba(0,0,0,0.26)'
38
+ }
39
+ }
40
+ }
41
+ });
42
+ export default useStyles;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { BasicAttributeSelectorProps } from '../../types';
3
+ declare const _default: React.MemoExoticComponent<({ className, itemsGroups, value, getLabel, onSelect, onRestoreFocus, onOpenPopup, disableRestoreFocus, disableEnforceFocus, single, ungroup, disabled, hideCheckBox }: BasicAttributeSelectorProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,75 @@
1
+ import React, { memo, useCallback, useMemo, useRef, useState } from 'react';
2
+ import i18n from 'ui-i18n';
3
+ import classnames from 'classnames';
4
+ import { identity, pipe, tap, prop, flatten, pick, map, chain, when, always } from 'ramda';
5
+ import SelectionPopup from '../SelectionPopup/SelectionPopup';
6
+ import { useKeyboardNavigation } from '../SelectionPopup/helpers';
7
+ import AttributeTitle from './AttributeTitle/AttributeTitle';
8
+ import { filterSelectedAttributes, getAttributeIndex, getContainerWidth, getOnEnterHandler, prepareGroupsForSelectAttributeList } from './helpers';
9
+ import SelectAttributesList from '../SelectAttributesList/SelectAttributesList';
10
+ import { flattenGroupedItemsData } from '../VirtualGroupedList/helpers';
11
+ import useStyles from './styles';
12
+ var ATTRIBUTES_LIST_HEIGHT = 400;
13
+ var ATTRIBUTES_LIST_WIDTH = 308;
14
+ var ATTRIBUTES_POPUP_HEIGHT = 507;
15
+ var BasicAttributeSelector = function (_a) {
16
+ var className = _a.className, itemsGroups = _a.itemsGroups, value = _a.value, getLabel = _a.getLabel, onSelect = _a.onSelect, _b = _a.onRestoreFocus, onRestoreFocus = _b === void 0 ? identity : _b, _c = _a.onOpenPopup, onOpenPopup = _c === void 0 ? identity : _c, _d = _a.disableRestoreFocus, disableRestoreFocus = _d === void 0 ? false : _d, _e = _a.disableEnforceFocus, disableEnforceFocus = _e === void 0 ? false : _e, _f = _a.single, single = _f === void 0 ? false : _f, _g = _a.ungroup, ungroup = _g === void 0 ? false : _g, _h = _a.disabled, disabled = _h === void 0 ? false : _h, _j = _a.hideCheckBox, hideCheckBox = _j === void 0 ? false : _j;
17
+ var styles = useStyles();
18
+ var _k = useState(null), selectAnchor = _k[0], setSelectAnchor = _k[1];
19
+ var openPopup = function (event) {
20
+ onOpenPopup();
21
+ setSelectAnchor(event.currentTarget);
22
+ };
23
+ var closePopup = useCallback(function () { return setSelectAnchor(null); }, []);
24
+ var isPopupOpen = !!selectAnchor;
25
+ var _l = useState(''), filterText = _l[0], setFilterText = _l[1];
26
+ var clearFilterText = useCallback(function () { return setFilterText(''); }, []);
27
+ var _m = useState([]), selectedAttributes = _m[0], setSelectedAttributes = _m[1];
28
+ var clearSelectedAttributes = useCallback(function () { return setSelectedAttributes([]); }, []);
29
+ var filteredItemsGroups = useMemo(function () { return prepareGroupsForSelectAttributeList(filterText, itemsGroups); }, [
30
+ itemsGroups,
31
+ filterText
32
+ ]);
33
+ var items = useMemo(function () {
34
+ return pipe(when(always(ungroup), chain(pipe(prop('items'), flatten, map(pick(['item', 'level']))))), flattenGroupedItemsData)(filteredItemsGroups);
35
+ }, [ungroup, filteredItemsGroups]);
36
+ var containerWidth = useMemo(function () { return Math.max(getContainerWidth(filteredItemsGroups), ATTRIBUTES_LIST_WIDTH); }, [
37
+ filteredItemsGroups
38
+ ]);
39
+ var handleOnClose = pipe(tap(pipe(clearSelectedAttributes, clearFilterText, closePopup)), onRestoreFocus);
40
+ var searchInputRef = useRef();
41
+ var onListItemClick = useCallback(function (attribute, checked) {
42
+ onSelect({
43
+ checked: checked,
44
+ attribute: attribute,
45
+ index: checked ? selectedAttributes.length : getAttributeIndex(selectedAttributes, attribute),
46
+ selectedAttributes: selectedAttributes
47
+ });
48
+ if (single) {
49
+ setSelectedAttributes(checked ? [attribute] : []);
50
+ handleOnClose({});
51
+ }
52
+ else {
53
+ setSelectedAttributes(filterSelectedAttributes({ selectedAttributes: selectedAttributes, attribute: attribute, checked: checked }));
54
+ if (searchInputRef.current) {
55
+ searchInputRef.current.focus();
56
+ }
57
+ }
58
+ }, [selectedAttributes, onSelect, single, handleOnClose, searchInputRef]);
59
+ var handleSearchOnEnter = useCallback(getOnEnterHandler({ onListItemClick: onListItemClick, selectedAttributes: selectedAttributes }), [
60
+ onListItemClick,
61
+ selectedAttributes
62
+ ]);
63
+ var _o = useKeyboardNavigation({
64
+ items: items,
65
+ open: isPopupOpen,
66
+ onSelectFocusedItem: handleSearchOnEnter,
67
+ selectedItems: selectedAttributes,
68
+ onClose: handleOnClose
69
+ }), focusIndex = _o.focusIndex, handleKeyDown = _o.handleKeyDown;
70
+ return (React.createElement("div", { className: classnames(styles.selector, className), "data-reltio-id": "attribute-selector" },
71
+ React.createElement(AttributeTitle, { value: value, getLabel: getLabel, onSelectAttributeClick: openPopup, disabled: disabled }),
72
+ React.createElement(SelectionPopup, { open: isPopupOpen, anchorEl: selectAnchor, onClose: handleOnClose, onSearch: setFilterText, title: i18n.text('Select attribute'), containerWidth: containerWidth, containerHeight: ATTRIBUTES_POPUP_HEIGHT, searchInputOnKeyDown: handleKeyDown, anchorOrigin: { horizontal: 'right', vertical: 'bottom' }, searchInputRef: searchInputRef, disableRestoreFocus: disableRestoreFocus, disableEnforceFocus: disableEnforceFocus },
73
+ React.createElement(SelectAttributesList, { items: items, onItemClick: onListItemClick, selectedAttributes: selectedAttributes, width: containerWidth, height: ATTRIBUTES_LIST_HEIGHT, focusIndex: focusIndex, hideCheckBox: hideCheckBox }))));
74
+ };
75
+ export default memo(BasicAttributeSelector);
@@ -0,0 +1,22 @@
1
+ import { AttributeSelectorItem, AttributeSelectorItemsGroup } from '../../types';
2
+ export declare const isEqualAttributes: any;
3
+ export declare const checkAttributeIncludes: (attribute: AttributeSelectorItem, selectedAttributes: AttributeSelectorItem[]) => boolean;
4
+ export declare const filterItemsTree: (item: AttributeSelectorItem, filterText: string) => boolean;
5
+ export declare const filterSelectedAttributes: ({ attribute, selectedAttributes, checked }: {
6
+ attribute: AttributeSelectorItem;
7
+ selectedAttributes: AttributeSelectorItem[];
8
+ checked: boolean;
9
+ }) => AttributeSelectorItem[];
10
+ export declare const getAttributeIndex: (selectedAttributes: AttributeSelectorItem[], attribute: AttributeSelectorItem) => number;
11
+ export declare const getContainerWidth: (items: any) => any;
12
+ export declare const getOnEnterHandler: ({ onListItemClick, selectedAttributes }: {
13
+ selectedAttributes: AttributeSelectorItem[];
14
+ onListItemClick: (attribute: AttributeSelectorItem, checked: boolean) => void;
15
+ }) => ({ item, groupData }: {
16
+ item: any;
17
+ groupData: any;
18
+ }) => void;
19
+ export declare const prepareGroupsForSelectAttributeList: (filterText: string, groups: AttributeSelectorItemsGroup[]) => {
20
+ item: AttributeSelectorItemsGroup[];
21
+ items: AttributeSelectorItem[];
22
+ };