@reltio/components 1.4.2044 → 1.4.2046

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 (175) hide show
  1. package/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
  2. package/BasicTable/BasicTable.test.js +232 -278
  3. package/BlobRenderer/BlobRenderer.js +1 -1
  4. package/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
  5. package/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
  6. package/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  7. package/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
  8. package/DeleteButton/DeleteButton.spec.js +53 -15
  9. package/DependentLookupEditor/DependentLookupEditor.test.js +555 -807
  10. package/Drawer/Drawer.test.js +9 -20
  11. package/DropDownEditor/DropDownEditor.test.js +81 -29
  12. package/DropDownMenuButton/DropDownMenuButton.spec.js +101 -70
  13. package/DropDownSelector/DropDownSelector.test.js +159 -30
  14. package/EditModeAttributesFactory/EditModeAttributesFactory.test.js +143 -0
  15. package/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
  16. package/EditModeAttributesList/attributes.test-data.d.ts +0 -11
  17. package/EditModeAttributesList/attributes.test-data.js +1 -1
  18. package/EditModeAttributesPager/EditModeAttributesPager.test.js +698 -234
  19. package/EditModeAttributesPager/helpers.test.js +2 -12
  20. package/EditModeAttributesView/EditModeAttributesView.test.js +263 -157
  21. package/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
  22. package/EditModeComplexAttribute/EditModeComplexAttribute.test.js +313 -298
  23. package/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
  24. package/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
  25. package/EmptyState/EmptyState.test.js +99 -38
  26. package/EntityCreator/EntityCreator.test.js +68 -35
  27. package/EntitySelector/EntitySelector.js +1 -1
  28. package/EntitySelector/EntitySelector.test.js +275 -422
  29. package/EntityTypeIcon/EntityTypeIcon.test.js +16 -16
  30. package/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
  31. package/ErrorBoundary/ErrorBoundary.test.js +19 -17
  32. package/ErrorMessage/ErrorMessage.js +1 -1
  33. package/ErrorPopup/ErrorPopup.test.js +72 -25
  34. package/ErrorWrapper/ErrorWrapper.test.js +10 -9
  35. package/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
  36. package/FileTypeEditor/FileTypeEditor.test.js +95 -64
  37. package/FilterValueEditor/FilterValueEditor.test.js +183 -157
  38. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
  39. package/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
  40. package/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
  41. package/OvIcon/OvIcon.js +2 -2
  42. package/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  43. package/ShowLess/ShowLess.js +1 -1
  44. package/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  45. package/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  46. package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
  47. package/cjs/BasicTable/BasicTable.test.js +230 -299
  48. package/cjs/BlobRenderer/BlobRenderer.js +1 -1
  49. package/cjs/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
  50. package/cjs/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
  51. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  52. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
  53. package/cjs/DeleteButton/DeleteButton.spec.js +53 -15
  54. package/cjs/DependentLookupEditor/DependentLookupEditor.test.js +569 -821
  55. package/cjs/Drawer/Drawer.test.js +10 -21
  56. package/cjs/DropDownEditor/DropDownEditor.test.js +81 -29
  57. package/cjs/DropDownMenuButton/DropDownMenuButton.spec.js +102 -71
  58. package/cjs/DropDownSelector/DropDownSelector.test.js +159 -30
  59. package/cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.js +148 -0
  60. package/cjs/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
  61. package/cjs/EditModeAttributesList/attributes.test-data.d.ts +0 -11
  62. package/cjs/EditModeAttributesList/attributes.test-data.js +1 -1
  63. package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +696 -232
  64. package/cjs/EditModeAttributesPager/helpers.test.js +2 -12
  65. package/cjs/EditModeAttributesView/EditModeAttributesView.test.js +262 -156
  66. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
  67. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.test.js +312 -297
  68. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
  69. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
  70. package/cjs/EmptyState/EmptyState.test.js +98 -37
  71. package/cjs/EntityCreator/EntityCreator.test.js +69 -36
  72. package/cjs/EntitySelector/EntitySelector.js +1 -1
  73. package/cjs/EntitySelector/EntitySelector.test.js +274 -421
  74. package/cjs/EntityTypeIcon/EntityTypeIcon.test.js +17 -17
  75. package/cjs/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
  76. package/cjs/ErrorBoundary/ErrorBoundary.test.js +19 -17
  77. package/cjs/ErrorMessage/ErrorMessage.js +1 -1
  78. package/cjs/ErrorPopup/ErrorPopup.test.js +71 -24
  79. package/cjs/ErrorWrapper/ErrorWrapper.test.js +10 -9
  80. package/cjs/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
  81. package/cjs/FileTypeEditor/FileTypeEditor.test.js +95 -64
  82. package/cjs/FilterValueEditor/FilterValueEditor.test.js +182 -156
  83. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
  84. package/cjs/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
  85. package/cjs/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
  86. package/cjs/OvIcon/OvIcon.js +2 -2
  87. package/cjs/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  88. package/cjs/ShowLess/ShowLess.js +1 -1
  89. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  90. package/cjs/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  91. package/cjs/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  92. package/cjs/contexts/MdmModuleContext/hooks.d.ts +2 -2
  93. package/cjs/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -53
  94. package/cjs/test-utils/TestStylesProvider.js +6 -5
  95. package/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  96. package/contexts/MdmModuleContext/hooks.d.ts +2 -2
  97. package/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -30
  98. package/package.json +2 -2
  99. package/test-utils/TestStylesProvider.js +3 -2
  100. package/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -101
  101. package/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -106
  102. package/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  103. package/BasicTable/IntegrationBasicTable.test.js +0 -203
  104. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  105. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -137
  106. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  107. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -32
  108. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  109. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -106
  110. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  111. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -338
  112. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  113. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -225
  114. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  115. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -47
  116. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  117. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -204
  118. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  119. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -246
  120. package/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  121. package/EditModeAttributesView/metadata.test-data.js +0 -119
  122. package/EntityCreator/entityType.test-data.d.ts +0 -52
  123. package/EntityCreator/entityType.test-data.js +0 -188
  124. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  125. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -27
  126. package/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  127. package/EntitySelector/components/EntityOption/EntityOption.test.js +0 -79
  128. package/EntitySelector/components/Group/Group.test.d.ts +0 -1
  129. package/EntitySelector/components/Group/Group.test.js +0 -65
  130. package/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  131. package/EntitySelector/components/SingleValue/SingleValue.test.js +0 -78
  132. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  133. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -76
  134. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts +0 -1
  135. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -106
  136. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts +0 -1
  137. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -111
  138. package/cjs/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  139. package/cjs/BasicTable/IntegrationBasicTable.test.js +0 -208
  140. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  141. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -142
  142. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  143. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -37
  144. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  145. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -111
  146. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  147. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -343
  148. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  149. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -230
  150. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  151. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -52
  152. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  153. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -209
  154. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  155. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -251
  156. package/cjs/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  157. package/cjs/EditModeAttributesView/metadata.test-data.js +0 -123
  158. package/cjs/EntityCreator/entityType.test-data.d.ts +0 -52
  159. package/cjs/EntityCreator/entityType.test-data.js +0 -191
  160. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  161. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -32
  162. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  163. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.js +0 -84
  164. package/cjs/EntitySelector/components/Group/Group.test.d.ts +0 -1
  165. package/cjs/EntitySelector/components/Group/Group.test.js +0 -70
  166. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  167. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.js +0 -83
  168. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  169. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -81
  170. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  171. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -104
  172. package/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  173. package/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -99
  174. /package/{AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts → EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
  175. /package/{AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts → cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
@@ -51,83 +51,114 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  var react_1 = __importDefault(require("react"));
54
- var enzyme_1 = require("enzyme");
55
- var UploadFileButton_1 = require("../UploadFileButton");
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
56
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
56
57
  var FileTypeEditor_1 = require("./FileTypeEditor");
57
- jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { uploadFileForSearch: function (file) {
58
- return Promise.resolve({
59
- downloadLink: file.name,
60
- path: file.name,
61
- expirationDate: '2021-10-27T10:39:14.374+0000'
62
- });
63
- } })); });
58
+ var test_utils_1 = require("../test-utils");
59
+ jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { uploadFileForSearch: jest.fn() })); });
60
+ var defaultProps = {
61
+ onChange: jest.fn(),
62
+ onError: jest.fn()
63
+ };
64
+ var setUp = function (props) {
65
+ if (props === void 0) { props = defaultProps; }
66
+ var user = user_event_1.default.setup();
67
+ return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, __assign({}, props)))), { user: user });
68
+ };
64
69
  describe('File Type editor tests', function () {
65
- it('should render UploadFileButton', function () {
66
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: jest.fn() }));
67
- expect(wrapper.find(UploadFileButton_1.UploadFileButton)).toHaveLength(1);
70
+ beforeEach(function () {
71
+ jest.spyOn(Date, 'now').mockReturnValue(new Date('2024-01-05T16:00:00.374+0000').getTime());
72
+ mdm_sdk_1.uploadFileForSearch.mockResolvedValue({
73
+ downloadLink: 'https://reltio.com/file.csv',
74
+ path: 'path',
75
+ expirationDate: '2024-01-05T16:00:00.374+0000'
76
+ });
68
77
  });
69
- it('should pass value into UploadFileButton', function () {
70
- var value = { downloadLink: 'downloadLink', expirationDate: 1234567890, filename: 'file', link: 'link' };
71
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { value: value, onChange: jest.fn() }));
72
- wrapper.update();
73
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
74
- expect(uploadFileButton.prop('link')).toBe(value.downloadLink);
75
- expect(uploadFileButton.prop('filename')).toBe(value.filename);
76
- expect(uploadFileButton.prop('supportedFileTypes')).toEqual(['.txt', '.csv']);
78
+ afterEach(function () {
79
+ jest.clearAllMocks();
77
80
  });
78
- it('should call onChange with correct parameters on file upload', function () { return __awaiter(void 0, void 0, void 0, function () {
79
- var onChange, wrapper, uploadFileButton;
81
+ it('should render correctly', function () {
82
+ setUp();
83
+ react_2.screen.getByText('Select File');
84
+ expect(react_2.screen.getByTestId('file-uploader')).toHaveAttribute('accept', '.txt,.csv');
85
+ });
86
+ it('should upload file correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
87
+ var user, file;
80
88
  return __generator(this, function (_a) {
81
89
  switch (_a.label) {
82
90
  case 0:
83
- onChange = jest.fn();
84
- wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: onChange }));
85
- wrapper.update();
86
- uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
87
- uploadFileButton.prop('onUpload')({ name: 'file' });
88
- return [4 /*yield*/, Promise.resolve()];
91
+ user = setUp().user;
92
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
93
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), [file])];
89
94
  case 1:
90
95
  _a.sent();
91
- expect(onChange).toHaveBeenCalledWith({
92
- filename: 'file',
93
- downloadLink: 'file',
94
- link: 'file',
95
- expirationDate: 1635331154374
96
+ expect(mdm_sdk_1.uploadFileForSearch).toHaveBeenCalledWith(file);
97
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
98
+ downloadLink: 'https://reltio.com/file.csv',
99
+ expirationDate: 1704470400374,
100
+ filename: 'file.csv',
101
+ link: 'path'
96
102
  });
97
103
  return [2 /*return*/];
98
104
  }
99
105
  });
100
106
  }); });
101
- it('should call onChange with empty params on cancel action', function () {
102
- var onChange = jest.fn();
103
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: onChange }));
104
- wrapper.update();
105
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
106
- uploadFileButton.prop('onCancel')();
107
- expect(onChange).toHaveBeenCalledWith(null);
108
- });
109
- it('should call onError with error message on file upload error', function () {
110
- var onError = jest.fn();
111
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onError: onError, onChange: jest.fn() }));
112
- wrapper.update();
113
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
114
- var ERROR_MESSAGE = new Error('Error');
115
- uploadFileButton.prop('onError')(ERROR_MESSAGE);
116
- expect(onError).toHaveBeenCalledWith(ERROR_MESSAGE);
117
- });
118
- it('should not have default value for onError prop', function () {
119
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: jest.fn() }));
120
- wrapper.update();
121
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
122
- expect(uploadFileButton.prop('onError')).toBeUndefined();
123
- });
124
- it('should pass isValidLink prop to UploadFileButton correctly', function () {
125
- var value = { downloadLink: 'downloadLink', expirationDate: 1234567890, filename: 'file', link: 'link' };
126
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { value: value, onChange: jest.fn() }));
127
- expect(wrapper.find(UploadFileButton_1.UploadFileButton).prop('isValidLink')).toBe(false);
128
- wrapper.setProps({
129
- value: __assign(__assign({}, value), { expirationDate: 12312312314324 })
107
+ it('should cancel upload correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
108
+ var props, user;
109
+ return __generator(this, function (_a) {
110
+ switch (_a.label) {
111
+ case 0:
112
+ props = __assign(__assign({}, defaultProps), { value: { downloadLink: 'https://reltio.com/file.csv' } });
113
+ user = setUp(props).user;
114
+ return [4 /*yield*/, user.click((0, test_utils_1.getMuiIconByName)('Cancel'))];
115
+ case 1:
116
+ _a.sent();
117
+ expect(props.onChange).toHaveBeenCalledWith(null);
118
+ return [2 /*return*/];
119
+ }
130
120
  });
131
- expect(wrapper.find(UploadFileButton_1.UploadFileButton).prop('isValidLink')).toBe(true);
132
- });
121
+ }); });
122
+ it('should handle error correctly in case if upload request has been rejected', function () { return __awaiter(void 0, void 0, void 0, function () {
123
+ var user, file;
124
+ return __generator(this, function (_a) {
125
+ switch (_a.label) {
126
+ case 0:
127
+ mdm_sdk_1.uploadFileForSearch.mockRejectedValue({ errorMessage: 'Something went wrong' });
128
+ user = setUp().user;
129
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
130
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), [file])];
131
+ case 1:
132
+ _a.sent();
133
+ expect(defaultProps.onError).toHaveBeenCalledWith({ errorMessage: 'Something went wrong' });
134
+ return [2 /*return*/];
135
+ }
136
+ });
137
+ }); });
138
+ it('should render label as link if link is valid', function () { return __awaiter(void 0, void 0, void 0, function () {
139
+ var props;
140
+ return __generator(this, function (_a) {
141
+ props = __assign(__assign({}, defaultProps), { value: {
142
+ downloadLink: 'https://reltio.com/file.csv',
143
+ filename: 'file.csv',
144
+ expirationDate: new Date('2025-01-05T16:00:00.374+0000').getTime()
145
+ } });
146
+ setUp(props);
147
+ expect(react_2.screen.getByText('file.csv')).toHaveAttribute('href', 'https://reltio.com/file.csv');
148
+ return [2 /*return*/];
149
+ });
150
+ }); });
151
+ it('should render label as plain text if link is not valid', function () { return __awaiter(void 0, void 0, void 0, function () {
152
+ var props;
153
+ return __generator(this, function (_a) {
154
+ props = __assign(__assign({}, defaultProps), { value: {
155
+ downloadLink: 'https://reltio.com/file.csv',
156
+ filename: 'file.csv',
157
+ expirationDate: new Date('2023-01-05T16:00:00.374+0000').getTime()
158
+ } });
159
+ setUp(props);
160
+ expect(react_2.screen.getByText('file.csv')).not.toHaveAttribute('href');
161
+ return [2 /*return*/];
162
+ });
163
+ }); });
133
164
  });
@@ -10,176 +10,202 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
13
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
51
  };
16
52
  Object.defineProperty(exports, "__esModule", { value: true });
17
53
  var react_1 = __importDefault(require("react"));
18
- var enzyme_1 = require("enzyme");
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
19
56
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
20
- var DataTypeValueEditor_1 = require("../DataTypeValueEditor");
21
- var DateRangeEditor_1 = require("../DateRangeEditor");
22
- var RangeDataTypeValueEditor_1 = require("./components/RangeDataTypeValueEditor");
57
+ var LocalizationProvider_1 = require("@mui/x-date-pickers/LocalizationProvider");
58
+ var AdapterMoment_1 = require("@mui/x-date-pickers/AdapterMoment");
23
59
  var FilterValueEditor_1 = require("./FilterValueEditor");
24
- var toLocalDate = function (timestamp) {
25
- var date = new Date(timestamp);
26
- return new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
60
+ var defaultProps = {
61
+ filter: { fieldName: 'entity.label', filter: mdm_sdk_1.FilterOptions.EQUALS, values: ['test label'] },
62
+ dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_STRING },
63
+ TextFieldProps: {},
64
+ onChange: jest.fn()
27
65
  };
28
- describe('FilterValueEditor', function () {
29
- it('should render DataTypeValueEditor with correct props (not range value)', function () {
30
- var props = {
31
- filter: { fieldName: 'entity.label', filter: mdm_sdk_1.FilterOptions.EQUALS, values: ['Label1'] },
32
- onChange: jest.fn(),
33
- dataTypeDefinition: {
34
- type: mdm_sdk_1.DataTypes.TYPE_STRING
35
- },
36
- orientation: 'horizontal'
37
- };
38
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
39
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
40
- expect(editor).toHaveLength(1);
41
- expect(editor.props()).toMatchObject({
42
- value: props.filter.values[0],
43
- dataTypeDefinition: props.dataTypeDefinition,
44
- fieldName: props.filter.fieldName
45
- });
46
- expect(editor.prop('orientation')).toBeUndefined();
47
- editor.prop('onChange')('Label2');
48
- expect(props.onChange).toHaveBeenCalledWith(['Label2']);
66
+ var setUp = function (props) {
67
+ if (props === void 0) { props = defaultProps; }
68
+ var user = user_event_1.default.setup();
69
+ var Providers = function (_a) {
70
+ var children = _a.children;
71
+ return (react_1.default.createElement(LocalizationProvider_1.LocalizationProvider, { dateAdapter: AdapterMoment_1.AdapterMoment }, children));
72
+ };
73
+ return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)), { wrapper: Providers })), { user: user });
74
+ };
75
+ describe('Filter value editor', function () {
76
+ afterEach(function () {
77
+ jest.clearAllMocks();
49
78
  });
50
- it('should render RangeDataTypeValueEditor if filter is type of range (not date range)', function () {
51
- var props = {
52
- filter: { fieldName: 'relation.attributes.int', filter: mdm_sdk_1.FilterOptions.IN_RANGE, values: [['1', '2']] },
53
- onChange: jest.fn(),
54
- dataTypeDefinition: {
55
- type: mdm_sdk_1.DataTypes.TYPE_INT
56
- },
57
- orientation: 'horizontal'
58
- };
59
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
60
- var editor = wrapper.find(RangeDataTypeValueEditor_1.RangeDataTypeValueEditor);
61
- expect(editor).toHaveLength(1);
62
- expect(editor.props()).toMatchObject({
63
- value: ['1', '2'],
64
- dataTypeDefinition: props.dataTypeDefinition,
65
- fieldName: props.filter.fieldName,
66
- orientation: 'horizontal'
79
+ it('should render data type value editor with correct props (not range value)', function () { return __awaiter(void 0, void 0, void 0, function () {
80
+ var user, input;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ user = setUp().user;
85
+ react_2.screen.getByText('test label');
86
+ input = react_2.screen.getByRole('textbox');
87
+ return [4 /*yield*/, user.type(input, 'new label{Enter}')];
88
+ case 1:
89
+ _a.sent();
90
+ expect(defaultProps.onChange).toHaveBeenCalledWith([['test label', 'new label']]);
91
+ return [2 /*return*/];
92
+ }
67
93
  });
68
- editor.prop('onChange')(['1', '3']);
69
- expect(props.onChange).toHaveBeenLastCalledWith([['1', '3']]);
70
- });
71
- it('should render DateRangeEditor if filter is type of date range with special value)', function () {
72
- var props = {
73
- filter: {
74
- fieldName: 'relation.attributes.date',
75
- filter: mdm_sdk_1.FilterOptions.WITHIN,
76
- values: [mdm_sdk_1.DateRangeValue.LAST_MONTH]
77
- },
78
- onChange: jest.fn(),
79
- dataTypeDefinition: {
80
- type: mdm_sdk_1.DataTypes.TYPE_DATE
94
+ }); });
95
+ it('should render range data type value editor with horizontal orientation if filter is type of range (not date range)', function () { return __awaiter(void 0, void 0, void 0, function () {
96
+ var props, user, inputs;
97
+ return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0:
100
+ props = __assign(__assign({}, defaultProps), { orientation: 'horizontal', filter: { fieldName: 'relation.attributes.int', filter: mdm_sdk_1.FilterOptions.IN_RANGE, values: [['1', '2']] }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_INT } });
101
+ user = setUp(props).user;
102
+ react_2.screen.getByTestId('horizontal-range-data-type-value-editor');
103
+ inputs = react_2.screen.getAllByRole('textbox');
104
+ expect(inputs[0]).toHaveValue('1');
105
+ expect(inputs[1]).toHaveValue('2');
106
+ return [4 /*yield*/, user.type(inputs[1], '{Backspace}3{Enter}')];
107
+ case 1:
108
+ _a.sent();
109
+ expect(props.onChange).toHaveBeenCalledWith([['1', '3']]);
110
+ return [2 /*return*/];
81
111
  }
82
- };
83
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
84
- var editor = wrapper.find(DateRangeEditor_1.DateRangeEditor);
85
- expect(editor).toHaveLength(1);
86
- expect(editor.props()).toMatchObject({
87
- values: mdm_sdk_1.DateRangeValue.LAST_MONTH,
88
- dataTypeDefinition: props.dataTypeDefinition
89
112
  });
90
- });
91
- it('should render DateRangeEditor if filter is type of date range)', function () {
92
- var values = [1568937600000, 1568938000000];
93
- var expectedValues = [toLocalDate(values[0]), toLocalDate(values[1])];
94
- var props = {
95
- filter: { fieldName: 'relation.attributes.date', filter: mdm_sdk_1.FilterOptions.WITHIN, values: [values] },
96
- onChange: jest.fn(),
97
- dataTypeDefinition: {
98
- type: mdm_sdk_1.DataTypes.TYPE_DATE
113
+ }); });
114
+ it('should render range data type value editor with vertical orientation if filter is type of range (not date range)', function () { return __awaiter(void 0, void 0, void 0, function () {
115
+ var props, user, inputs;
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0:
119
+ props = __assign(__assign({}, defaultProps), { orientation: 'vertical', filter: { fieldName: 'relation.attributes.int', filter: mdm_sdk_1.FilterOptions.IN_RANGE, values: [['1', '2']] }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_INT } });
120
+ user = setUp(props).user;
121
+ react_2.screen.getByTestId('vertical-range-data-type-value-editor');
122
+ react_2.screen.getByText('From');
123
+ react_2.screen.getByText('To');
124
+ inputs = react_2.screen.getAllByRole('textbox');
125
+ expect(inputs[0]).toHaveValue('1');
126
+ expect(inputs[1]).toHaveValue('2');
127
+ return [4 /*yield*/, user.type(inputs[1], '{Backspace}8{Enter}')];
128
+ case 1:
129
+ _a.sent();
130
+ expect(props.onChange).toHaveBeenCalledWith([['1', '8']]);
131
+ return [2 /*return*/];
99
132
  }
100
- };
101
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
102
- var editor = wrapper.find(DateRangeEditor_1.DateRangeEditor);
103
- expect(editor).toHaveLength(1);
104
- expect(editor.props()).toMatchObject({
105
- values: expectedValues,
106
- dataTypeDefinition: props.dataTypeDefinition
107
133
  });
108
- });
109
- it('should not provide TextFieldProps prop to DateRangeEditor', function () {
110
- var values = [1568937600000, 1568938000000];
111
- var props = {
112
- filter: { fieldName: 'relation.attributes.date', filter: mdm_sdk_1.FilterOptions.WITHIN, values: [values] },
113
- onChange: jest.fn(),
114
- dataTypeDefinition: {
115
- type: mdm_sdk_1.DataTypes.TYPE_DATE
116
- },
117
- TextFieldProps: {
118
- InputProps: {
119
- classes: {
120
- root: 'rootclass'
121
- }
122
- }
134
+ }); });
135
+ it('should render date range editor if filter is type of date range with special value', function () { return __awaiter(void 0, void 0, void 0, function () {
136
+ var props, user, input;
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0:
140
+ props = __assign(__assign({}, defaultProps), { filter: {
141
+ fieldName: 'relation.attributes.date',
142
+ filter: mdm_sdk_1.FilterOptions.WITHIN,
143
+ values: [mdm_sdk_1.DateRangeValue.LAST_MONTH]
144
+ }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_DATE } });
145
+ user = setUp(props).user;
146
+ react_2.screen.getByText('Date Range');
147
+ input = react_2.screen.getByRole('textbox');
148
+ expect(input).toHaveAttribute('value', 'Last month');
149
+ return [4 /*yield*/, user.click(input)];
150
+ case 1:
151
+ _a.sent();
152
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Last 7 days'))];
153
+ case 2:
154
+ _a.sent();
155
+ expect(props.onChange).toHaveBeenCalledWith(['lastWeek']);
156
+ return [2 /*return*/];
123
157
  }
124
- };
125
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
126
- var editor = wrapper.find(DateRangeEditor_1.DateRangeEditor);
127
- expect(editor).toHaveLength(1);
128
- expect(editor.prop('TextFieldProps')).toBe(undefined);
129
- });
130
- it('should work correctly with activeness date filters', function () {
131
- var props = {
132
- filter: {
133
- fieldName: 'relation.activeness.startDate',
134
- values: [1568937600000],
135
- filter: mdm_sdk_1.FilterOptions.BEFORE
136
- },
137
- dataTypeDefinition: {
138
- type: mdm_sdk_1.DataTypes.TYPE_ACTIVENESS_DATE
139
- },
140
- onChange: jest.fn()
141
- };
142
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
143
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
144
- expect(editor.prop('value')).toEqual(new Date(1568937600000));
145
- editor.prop('onChange')(new Date('2019-09-03T00:00:00+05:00'));
146
- expect(props.onChange).toHaveBeenCalledWith([1567450800000]);
147
- });
148
- it('should work correctly with date filters', function () {
149
- var props = {
150
- filter: {
151
- fieldName: 'relation.attributes.date',
152
- values: ['2019-09-01'],
153
- filter: mdm_sdk_1.FilterOptions.ON
154
- },
155
- dataTypeDefinition: {
156
- type: mdm_sdk_1.DataTypes.TYPE_DATE
157
- },
158
- onChange: jest.fn()
159
- };
160
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
161
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
162
- var expectedTimestamp = toLocalDate(props.filter.values[0]);
163
- expect(editor.prop('value')).toEqual(expectedTimestamp);
164
- editor.prop('onChange')(new Date(2019, 8, 3));
165
- expect(props.onChange).toHaveBeenCalledWith([1567468800000]);
166
- });
167
- it('should work correctly with timestamp filters', function () {
168
- var props = {
169
- filter: {
170
- fieldName: 'relation.attributes.timestamp',
171
- values: [1568937600000],
172
- filter: mdm_sdk_1.FilterOptions.LT
173
- },
174
- dataTypeDefinition: {
175
- type: mdm_sdk_1.DataTypes.TYPE_TIMESTAMP
176
- },
177
- onChange: jest.fn()
178
- };
179
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
180
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
181
- expect(editor.prop('value')).toEqual(new Date(1568937600000));
182
- editor.prop('onChange')(new Date(1568938000000));
183
- expect(props.onChange).toHaveBeenCalledWith([1568938000000]);
158
+ });
159
+ }); });
160
+ it('should render date range editor if filter is type of date range', function () {
161
+ var values = [new Date('09/20/2019 04:00:00 AM').valueOf(), new Date('09/25/2019 04:00:00 AM').valueOf()];
162
+ var props = __assign(__assign({}, defaultProps), { filter: { fieldName: 'relation.attributes.date', filter: mdm_sdk_1.FilterOptions.WITHIN, values: [values] }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_DATE } });
163
+ setUp(props);
164
+ react_2.screen.getByText('Date Range');
165
+ expect(react_2.screen.getByRole('textbox')).toHaveAttribute('value', '09/20/2019 09/25/2019');
184
166
  });
167
+ it('should work correctly with activeness date filters', function () { return __awaiter(void 0, void 0, void 0, function () {
168
+ var props, user, input;
169
+ return __generator(this, function (_a) {
170
+ switch (_a.label) {
171
+ case 0:
172
+ props = __assign(__assign({}, defaultProps), { filter: {
173
+ fieldName: 'relation.activeness.startDate',
174
+ values: [new Date('09/20/2019').valueOf()],
175
+ filter: mdm_sdk_1.FilterOptions.BEFORE
176
+ }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_ACTIVENESS_DATE } });
177
+ user = setUp(props).user;
178
+ input = react_2.screen.getByRole('textbox');
179
+ expect(input).toHaveValue('09/20/2019');
180
+ react_2.screen.getByLabelText('Choose date, selected date is Sep 20, 2019');
181
+ return [4 /*yield*/, user.type(input, '05')];
182
+ case 1:
183
+ _a.sent();
184
+ expect(props.onChange).toHaveBeenCalledWith([new Date('05/20/2019').valueOf()]);
185
+ return [2 /*return*/];
186
+ }
187
+ });
188
+ }); });
189
+ it('should work correctly with timestamp filters', function () { return __awaiter(void 0, void 0, void 0, function () {
190
+ var props, user, input;
191
+ return __generator(this, function (_a) {
192
+ switch (_a.label) {
193
+ case 0:
194
+ props = __assign(__assign({}, defaultProps), { filter: {
195
+ fieldName: 'relation.attributes.timestamp',
196
+ values: [new Date('09/20/2019 04:00:00 AM').valueOf()],
197
+ filter: mdm_sdk_1.FilterOptions.LT
198
+ }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_TIMESTAMP } });
199
+ user = setUp(props).user;
200
+ input = react_2.screen.getByRole('textbox');
201
+ expect(input).toHaveValue('09/20/2019 04:00:00 AM');
202
+ react_2.screen.getByLabelText('Choose date, selected date is Sep 20, 2019');
203
+ return [4 /*yield*/, user.type(input, '02')];
204
+ case 1:
205
+ _a.sent();
206
+ expect(props.onChange).toHaveBeenCalledWith([new Date('02/20/2019 04:00:00 AM').valueOf()]);
207
+ return [2 /*return*/];
208
+ }
209
+ });
210
+ }); });
185
211
  });
@@ -66,13 +66,13 @@ var RangeDataTypeValueEditor = function (_a) {
66
66
  var fromEditor = (react_1.default.createElement(DataTypeValueEditor_1.DataTypeValueEditor, __assign({ id: rangeEditorFromId.current, value: value[0], onChange: (0, ramda_1.pipe)((0, ramda_1.update)(0, ramda_1.__, value), onChange) }, otherProps)));
67
67
  var toEditor = (react_1.default.createElement(DataTypeValueEditor_1.DataTypeValueEditor, __assign({ id: rangeEditorToId.current, value: value[1], onChange: (0, ramda_1.pipe)((0, ramda_1.update)(1, ramda_1.__, value), onChange) }, otherProps)));
68
68
  if (orientation === 'horizontal') {
69
- return (react_1.default.createElement("div", { className: styles['range-inline-editor'] },
69
+ return (react_1.default.createElement("div", { "data-reltio-id": "horizontal-range-data-type-value-editor", className: styles['range-inline-editor'] },
70
70
  fromEditor,
71
71
  react_1.default.createElement("div", { className: styles['range-editor__dash'] }, '—'),
72
72
  toEditor));
73
73
  }
74
74
  else {
75
- return (react_1.default.createElement("div", { className: styles['range-editor'] },
75
+ return (react_1.default.createElement("div", { "data-reltio-id": "vertical-range-data-type-value-editor", className: styles['range-editor'] },
76
76
  react_1.default.createElement(FormControl_1.default, { variant: "standard", fullWidth: true, className: styles['range-editor__control'] },
77
77
  react_1.default.createElement(InputLabel_1.default, { htmlFor: rangeEditorFromId.current, shrink: true }, ui_i18n_1.default.text('From')),
78
78
  fromEditor),