@reltio/components 1.4.2234 → 1.4.2235

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 (41) hide show
  1. package/FileDropZone/FileDropZone.d.ts +9 -0
  2. package/FileDropZone/FileDropZone.js +47 -0
  3. package/FileDropZone/FileDropZone.module.css.js +9 -0
  4. package/FileDropZone/FileDropZone.test.d.ts +1 -0
  5. package/FileDropZone/FileDropZone.test.js +114 -0
  6. package/FileDropZone/index.d.ts +1 -0
  7. package/FileDropZone/index.js +1 -0
  8. package/ScreenProfileBand/ScreenProfileBand.d.ts +2 -1
  9. package/ScreenProfileBand/ScreenProfileBand.js +5 -4
  10. package/ScreenProfileBand/ScreenProfileBand.module.css.js +9 -0
  11. package/ScreenProfileBand/ScreenProfileBand.test.js +5 -0
  12. package/UploadImageDialog/components/TargetBox/TargetBox.js +4 -34
  13. package/UploadImageDialog/components/TargetBox/TargetBox.module.css.js +9 -0
  14. package/UploadImageDialog/components/TargetBox/TargetBox.test.js +5 -38
  15. package/cjs/FileDropZone/FileDropZone.d.ts +9 -0
  16. package/cjs/FileDropZone/FileDropZone.js +76 -0
  17. package/cjs/FileDropZone/FileDropZone.module.css.js +9 -0
  18. package/cjs/FileDropZone/FileDropZone.test.d.ts +1 -0
  19. package/cjs/FileDropZone/FileDropZone.test.js +119 -0
  20. package/cjs/FileDropZone/index.d.ts +1 -0
  21. package/cjs/FileDropZone/index.js +5 -0
  22. package/cjs/ScreenProfileBand/ScreenProfileBand.d.ts +2 -1
  23. package/cjs/ScreenProfileBand/ScreenProfileBand.js +6 -5
  24. package/cjs/ScreenProfileBand/ScreenProfileBand.module.css.js +9 -0
  25. package/cjs/ScreenProfileBand/ScreenProfileBand.test.js +5 -0
  26. package/cjs/UploadImageDialog/components/TargetBox/TargetBox.js +7 -60
  27. package/cjs/UploadImageDialog/components/TargetBox/TargetBox.module.css.js +9 -0
  28. package/cjs/UploadImageDialog/components/TargetBox/TargetBox.test.js +5 -38
  29. package/cjs/index.d.ts +1 -0
  30. package/cjs/index.js +9 -7
  31. package/index.d.ts +1 -0
  32. package/index.js +1 -0
  33. package/package.json +2 -2
  34. package/ScreenProfileBand/styles.d.ts +0 -1
  35. package/ScreenProfileBand/styles.js +0 -10
  36. package/UploadImageDialog/components/TargetBox/styles.d.ts +0 -1
  37. package/UploadImageDialog/components/TargetBox/styles.js +0 -28
  38. package/cjs/ScreenProfileBand/styles.d.ts +0 -1
  39. package/cjs/ScreenProfileBand/styles.js +0 -13
  40. package/cjs/UploadImageDialog/components/TargetBox/styles.d.ts +0 -1
  41. package/cjs/UploadImageDialog/components/TargetBox/styles.js +0 -31
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ children: React.ReactNode;
4
+ onFileDrop: (file: File) => void;
5
+ isAcceptableFile?: (file: File) => boolean;
6
+ className?: string;
7
+ };
8
+ export declare const FileDropZone: React.MemoExoticComponent<({ children, onFileDrop, isAcceptableFile, className }: Props) => React.JSX.Element>;
9
+ export {};
@@ -0,0 +1,47 @@
1
+ import React, { memo, useCallback, useState } from 'react';
2
+ import classnames from 'classnames';
3
+ import i18n from 'ui-i18n';
4
+ import styles from './FileDropZone.module.css';
5
+ var DEFAULT_ACCEPTABLE_DRAG_TYPE = 'Files';
6
+ export var FileDropZone = memo(function (_a) {
7
+ var _b;
8
+ var children = _a.children, onFileDrop = _a.onFileDrop, isAcceptableFile = _a.isAcceptableFile, className = _a.className;
9
+ var _c = useState(false), isActive = _c[0], setIsActive = _c[1];
10
+ var isAcceptableDragType = useCallback(function (dragType) { return dragType === DEFAULT_ACCEPTABLE_DRAG_TYPE; }, []);
11
+ var handleDragOver = useCallback(function (e) {
12
+ e.preventDefault();
13
+ var dragType = e.dataTransfer.types[0];
14
+ var isValid = isAcceptableDragType(dragType);
15
+ e.dataTransfer.dropEffect = isValid ? 'copy' : 'none';
16
+ setIsActive(isValid);
17
+ }, [isAcceptableDragType]);
18
+ var handleDragEnter = useCallback(function (e) {
19
+ e.preventDefault();
20
+ var dragType = e.dataTransfer.types[0];
21
+ setIsActive(isAcceptableDragType(dragType));
22
+ }, [isAcceptableDragType]);
23
+ var handleDragLeave = useCallback(function (e) {
24
+ e.preventDefault();
25
+ var relatedTarget = e.relatedTarget;
26
+ var isLeave = relatedTarget && !e.currentTarget.contains(relatedTarget);
27
+ if (isLeave || !relatedTarget) {
28
+ setIsActive(false);
29
+ }
30
+ }, []);
31
+ var handleDrop = useCallback(function (e) {
32
+ var _a, _b;
33
+ e.preventDefault();
34
+ setIsActive(false);
35
+ var dragType = e.dataTransfer.types[0];
36
+ if (!isAcceptableDragType(dragType))
37
+ return;
38
+ var file = (_b = (_a = e.dataTransfer.files) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
39
+ if (!file)
40
+ return;
41
+ if (isAcceptableFile && !isAcceptableFile(file))
42
+ return;
43
+ onFileDrop(file);
44
+ }, [isAcceptableDragType, isAcceptableFile, onFileDrop]);
45
+ return (React.createElement("div", { className: classnames(styles.root, className, (_b = {}, _b[styles.active] = isActive, _b)), role: "button", tabIndex: 0, "aria-label": i18n.text('Drop files here'), onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDrop: handleDrop }, children));
46
+ });
47
+ FileDropZone.displayName = 'FileDropZone';
@@ -0,0 +1,9 @@
1
+ const styles = {"root":"FileDropZone-root--9QbaV","active":"FileDropZone-active--FUwfs"};
2
+ if (typeof document !== 'undefined') {
3
+ const head = document.head || document.getElementsByTagName('head')[0]
4
+ const style = document.createElement('style');
5
+ style.type = 'text/css'
6
+ style.innerHTML = `.FileDropZone-root--9QbaV{cursor:pointer}.FileDropZone-active--FUwfs{background-color:rgba(0,114,206,.12)}`;
7
+ head.appendChild(style);
8
+ }
9
+ export default styles;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,114 @@
1
+ import React from 'react';
2
+ import { render, screen, fireEvent } from '@testing-library/react';
3
+ import { FileDropZone } from './FileDropZone';
4
+ var mockOnFileDrop = jest.fn();
5
+ var setUp = function (_a) {
6
+ var _b = _a === void 0 ? {} : _a, isAcceptableFile = _b.isAcceptableFile;
7
+ return render(React.createElement(FileDropZone, { onFileDrop: mockOnFileDrop, isAcceptableFile: isAcceptableFile },
8
+ React.createElement("span", null, "Drop content here")));
9
+ };
10
+ describe('FileDropZone', function () {
11
+ afterEach(function () {
12
+ jest.clearAllMocks();
13
+ });
14
+ it('should render children', function () {
15
+ setUp();
16
+ expect(screen.getByText('Drop content here')).toBeInTheDocument();
17
+ });
18
+ it('should have correct accessibility attributes', function () {
19
+ setUp();
20
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
21
+ expect(dropZone).toBeInTheDocument();
22
+ expect(dropZone).toHaveAttribute('tabindex', '0');
23
+ });
24
+ it('should activate drag state on drag over with acceptable file type', function () {
25
+ setUp();
26
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
27
+ fireEvent.dragOver(dropZone, {
28
+ dataTransfer: { types: ['Files'], dropEffect: 'copy' }
29
+ });
30
+ expect(dropZone).toHaveClass('active');
31
+ });
32
+ it('should not activate drag state with unacceptable file type', function () {
33
+ setUp();
34
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
35
+ fireEvent.dragOver(dropZone, {
36
+ dataTransfer: { types: ['Text'], dropEffect: 'none' }
37
+ });
38
+ expect(dropZone).not.toHaveClass('active');
39
+ });
40
+ it('should activate drag state on drag enter with acceptable file type', function () {
41
+ setUp();
42
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
43
+ fireEvent.dragEnter(dropZone, {
44
+ dataTransfer: { types: ['Files'] }
45
+ });
46
+ expect(dropZone).toHaveClass('active');
47
+ });
48
+ it('should deactivate drag state on drag leave', function () {
49
+ setUp();
50
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
51
+ fireEvent.dragOver(dropZone, { dataTransfer: { types: ['Files'] } });
52
+ expect(dropZone).toHaveClass('active');
53
+ fireEvent.dragLeave(dropZone);
54
+ expect(dropZone).not.toHaveClass('active');
55
+ });
56
+ it('should call onFileDrop with the dropped file', function () {
57
+ var file = new File(['test content'], 'test.csv', { type: 'text/csv' });
58
+ setUp();
59
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
60
+ fireEvent.drop(dropZone, {
61
+ dataTransfer: {
62
+ files: [file],
63
+ types: ['Files']
64
+ }
65
+ });
66
+ expect(mockOnFileDrop).toHaveBeenCalledWith(file);
67
+ });
68
+ it('should not call onFileDrop if dropped item is not of file type', function () {
69
+ setUp();
70
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
71
+ fireEvent.drop(dropZone, {
72
+ dataTransfer: { types: ['Text'] }
73
+ });
74
+ expect(mockOnFileDrop).not.toHaveBeenCalled();
75
+ });
76
+ it('should not call onFileDrop if isAcceptableFile returns false', function () {
77
+ var file = new File(['test content'], 'test.exe', { type: 'application/octet-stream' });
78
+ setUp({ isAcceptableFile: function (f) { return f.name.endsWith('.csv'); } });
79
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
80
+ fireEvent.drop(dropZone, {
81
+ dataTransfer: {
82
+ files: [file],
83
+ types: ['Files']
84
+ }
85
+ });
86
+ expect(mockOnFileDrop).not.toHaveBeenCalled();
87
+ });
88
+ it('should call onFileDrop if isAcceptableFile returns true', function () {
89
+ var file = new File(['test content'], 'data.csv', { type: 'text/csv' });
90
+ setUp({ isAcceptableFile: function (f) { return f.name.endsWith('.csv'); } });
91
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
92
+ fireEvent.drop(dropZone, {
93
+ dataTransfer: {
94
+ files: [file],
95
+ types: ['Files']
96
+ }
97
+ });
98
+ expect(mockOnFileDrop).toHaveBeenCalledWith(file);
99
+ });
100
+ it('should deactivate drag state after drop', function () {
101
+ var file = new File(['test content'], 'test.csv', { type: 'text/csv' });
102
+ setUp();
103
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
104
+ fireEvent.dragOver(dropZone, { dataTransfer: { types: ['Files'] } });
105
+ expect(dropZone).toHaveClass('active');
106
+ fireEvent.drop(dropZone, {
107
+ dataTransfer: {
108
+ files: [file],
109
+ types: ['Files']
110
+ }
111
+ });
112
+ expect(dropZone).not.toHaveClass('active');
113
+ });
114
+ });
@@ -0,0 +1 @@
1
+ export { FileDropZone } from './FileDropZone';
@@ -0,0 +1 @@
1
+ export { FileDropZone } from './FileDropZone';
@@ -4,6 +4,7 @@ type Props = {
4
4
  entity: Entity;
5
5
  className?: string;
6
6
  historySlice?: HistorySlice;
7
+ children?: React.ReactNode;
7
8
  };
8
- export declare const ScreenProfileBand: React.MemoExoticComponent<({ entity, className, historySlice }: Props) => React.JSX.Element>;
9
+ export declare const ScreenProfileBand: React.MemoExoticComponent<({ entity, className, historySlice, children }: Props) => React.JSX.Element>;
9
10
  export {};
@@ -8,16 +8,17 @@ import { CollaborationContextProvider } from '../contexts/CollaborationContext';
8
8
  import { COMMENTS_CONTAINER_VISIBILITY_AREA } from '../constants';
9
9
  import { useCollaboration } from '../hooks/useCollaboration';
10
10
  import { ProfileBandHistory } from '../features/history';
11
- import { useStyles } from './styles';
11
+ import styles from './ScreenProfileBand.module.css';
12
12
  export var ScreenProfileBand = memo(function (_a) {
13
- var entity = _a.entity, className = _a.className, historySlice = _a.historySlice;
14
- var styles = useStyles();
13
+ var entity = _a.entity, className = _a.className, historySlice = _a.historySlice, children = _a.children;
15
14
  var objectIds = useMemo(function () { return getProfileBandObjectIdsForCollaboration(entity); }, [entity]);
16
15
  var collaboration = useCollaboration({ objectIds: objectIds });
17
16
  var entityUri = getEntityUriForLink(entity);
18
17
  return (React.createElement(CollaborationContextProvider, { collaboration: collaboration },
19
18
  React.createElement(ProfileBand, { className: classnames(className, COMMENTS_CONTAINER_VISIBILITY_AREA), entity: (historySlice === null || historySlice === void 0 ? void 0 : historySlice.aEntity) || entity }, historySlice ? (React.createElement(ProfileBandHistory, null)) : (React.createElement(React.Fragment, null,
20
- React.createElement(ProfileBandNavigation, { className: styles.profileBandNavigation }),
19
+ children ? (React.createElement("div", { className: classnames(styles.profileBandNavigation, styles.navigationRow) },
20
+ React.createElement(ProfileBandNavigation, null),
21
+ children)) : (React.createElement(ProfileBandNavigation, { className: styles.profileBandNavigation })),
21
22
  React.createElement(CommentsContainer, { className: styles.comments, uri: entityUri, relatedObjectUris: createRelatedObjectUris(CollaborationObjectTypes.ENTITY, {
22
23
  entityUri: entityUri
23
24
  }), objectType: CollaborationObjectTypes.ENTITY }))))));
@@ -0,0 +1,9 @@
1
+ const styles = {"profileBandNavigation":"ScreenProfileBand-profileBandNavigation--5BMn5","navigationRow":"ScreenProfileBand-navigationRow---CH-F","comments":"ScreenProfileBand-comments--RRYzS"};
2
+ if (typeof document !== 'undefined') {
3
+ const head = document.head || document.getElementsByTagName('head')[0]
4
+ const style = document.createElement('style');
5
+ style.type = 'text/css'
6
+ style.innerHTML = `.ScreenProfileBand-profileBandNavigation--5BMn5{margin-bottom:10px}.ScreenProfileBand-navigationRow---CH-F{align-items:center;display:flex;gap:8px}.ScreenProfileBand-comments--RRYzS{display:flex;justify-content:flex-end}`;
7
+ head.appendChild(style);
8
+ }
9
+ export default styles;
@@ -122,6 +122,11 @@ describe('Screen profile band tests', function () {
122
122
  }
123
123
  });
124
124
  }); });
125
+ it('should render children when provided', function () {
126
+ var props = __assign(__assign({}, defaultProps), { children: React.createElement("button", null, "Custom Action") });
127
+ setUp({ props: props });
128
+ expect(screen.getByRole('button', { name: 'Custom Action' })).toBeInTheDocument();
129
+ });
125
130
  it('should render profile band history if historySlice prop is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
126
131
  var historySlice, props, mdmValues;
127
132
  return __generator(this, function (_a) {
@@ -1,45 +1,15 @@
1
- import React, { useCallback, useState } from 'react';
1
+ import React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import i18n from 'ui-i18n';
4
4
  import Typography from '@mui/material/Typography';
5
+ import { FileDropZone } from '../../../FileDropZone';
5
6
  import { SelectImageButton } from '../SelectImageButton';
6
7
  import UploadIcon from '../../../icons/UploadIcon';
7
8
  import { MAX_IMAGE_SIZE } from '../../constants';
8
- import { useStyles } from './styles';
9
- var ACCEPTABLE_FILE_TYPE = 'Files';
9
+ import styles from './TargetBox.module.css';
10
10
  export var TargetBox = function (_a) {
11
- var _b;
12
11
  var onAppendFile = _a.onAppendFile, className = _a.className;
13
- var styles = useStyles();
14
- var _c = useState(false), isActive = _c[0], setIsActive = _c[1];
15
- var handleDragOver = useCallback(function (e) {
16
- e.preventDefault();
17
- e.stopPropagation();
18
- var filesType = e.dataTransfer.types[0];
19
- var isValidType = filesType === ACCEPTABLE_FILE_TYPE;
20
- e.dataTransfer.dropEffect = isValidType ? 'copy' : 'none';
21
- setIsActive(isValidType);
22
- }, []);
23
- var handleDragLeave = useCallback(function (e) {
24
- e.preventDefault();
25
- e.stopPropagation();
26
- var relatedTarget = e.relatedTarget;
27
- var isLeave = relatedTarget && !e.currentTarget.contains(relatedTarget);
28
- if (isLeave || !relatedTarget) {
29
- setIsActive(false);
30
- }
31
- }, []);
32
- var handleDrop = useCallback(function (e) {
33
- e.preventDefault();
34
- e.stopPropagation();
35
- setIsActive(false);
36
- var filesType = e.dataTransfer.types[0];
37
- if (filesType === ACCEPTABLE_FILE_TYPE) {
38
- var file = e.dataTransfer.files[0];
39
- onAppendFile(file);
40
- }
41
- }, [onAppendFile]);
42
- return (React.createElement("div", { className: classnames(styles.root, (_b = {}, _b[styles.isActive] = isActive, _b), className), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop },
12
+ return (React.createElement(FileDropZone, { className: classnames(styles.root, className), onFileDrop: onAppendFile },
43
13
  React.createElement(UploadIcon, { className: styles.icon }),
44
14
  React.createElement(Typography, { className: styles.title }, i18n.text('Drag an image here')),
45
15
  React.createElement(Typography, { className: styles.description }, i18n.text('Acceptable image types would include JPG, PNG, TIFF, GIF, BMP. Maximum image size: ${MAX_IMAGE_SIZE}Mb', {
@@ -0,0 +1,9 @@
1
+ const styles = {"root":"TargetBox-root--T8Dyg","icon":"TargetBox-icon--qfl13","title":"TargetBox-title--zQaNU","description":"TargetBox-description--Jyqo5"};
2
+ if (typeof document !== 'undefined') {
3
+ const head = document.head || document.getElementsByTagName('head')[0]
4
+ const style = document.createElement('style');
5
+ style.type = 'text/css'
6
+ style.innerHTML = `.TargetBox-root--T8Dyg{padding:36px 0 29px}.TargetBox-icon--qfl13{height:190px;margin-bottom:24px;pointer-events:none;width:190px}.TargetBox-title--zQaNU{color:var(--mui-palette-text-primary);font-size:20px;font-weight:500;line-height:24px;margin-bottom:8px}.TargetBox-description--Jyqo5{color:var(--mui-palette-text-secondary);font-size:14px;line-height:16px;margin-bottom:24px}`;
7
+ head.appendChild(style);
8
+ }
9
+ export default styles;
@@ -9,38 +9,15 @@ describe('TargetBox', function () {
9
9
  afterEach(function () {
10
10
  jest.clearAllMocks();
11
11
  });
12
- it('should renders well', function () {
12
+ it('should render correctly', function () {
13
13
  setUp();
14
14
  expect(screen.getByText('Drag an image here')).toBeInTheDocument();
15
+ expect(screen.getByRole('button', { name: 'Drop files here' })).toBeInTheDocument();
15
16
  });
16
- it('should activates drag state on drag over with acceptable file type', function () {
17
- var container = setUp().container;
18
- var dropZone = container.firstChild;
19
- fireEvent.dragOver(dropZone, {
20
- dataTransfer: { types: ['Files'], dropEffect: 'copy' }
21
- });
22
- expect(dropZone).toHaveClass('isActive');
23
- });
24
- it('should does not activate drag state with unacceptable file type', function () {
25
- var container = setUp().container;
26
- var dropZone = container.firstChild;
27
- fireEvent.dragOver(dropZone, {
28
- dataTransfer: { types: ['Text'], dropEffect: 'none' }
29
- });
30
- expect(dropZone).not.toHaveClass('isActive');
31
- });
32
- it('should deactivates drag state on drag leave', function () {
33
- var container = setUp().container;
34
- var dropZone = container.firstChild;
35
- fireEvent.dragOver(dropZone, { dataTransfer: { types: ['Files'] } });
36
- expect(dropZone).toHaveClass('isActive');
37
- fireEvent.dragLeave(dropZone);
38
- expect(dropZone).not.toHaveClass('isActive');
39
- });
40
- it('should calls onAppendFile with the dropped file', function () {
17
+ it('should call onAppendFile when file is dropped', function () {
41
18
  var file = new File(['test content'], 'test.png', { type: 'image/png' });
42
- var container = setUp().container;
43
- var dropZone = container.firstChild;
19
+ setUp();
20
+ var dropZone = screen.getByRole('button', { name: 'Drop files here' });
44
21
  fireEvent.drop(dropZone, {
45
22
  dataTransfer: {
46
23
  files: [file],
@@ -49,14 +26,4 @@ describe('TargetBox', function () {
49
26
  });
50
27
  expect(mockOnAppendFile).toHaveBeenCalledWith(file);
51
28
  });
52
- it('should does not call onAppendFile if dropped item is not of file type', function () {
53
- var container = setUp().container;
54
- var dropZone = container.firstChild;
55
- fireEvent.drop(dropZone, {
56
- dataTransfer: {
57
- types: ['Text']
58
- }
59
- });
60
- expect(mockOnAppendFile).not.toHaveBeenCalled();
61
- });
62
29
  });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ children: React.ReactNode;
4
+ onFileDrop: (file: File) => void;
5
+ isAcceptableFile?: (file: File) => boolean;
6
+ className?: string;
7
+ };
8
+ export declare const FileDropZone: React.MemoExoticComponent<({ children, onFileDrop, isAcceptableFile, className }: Props) => React.JSX.Element>;
9
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.FileDropZone = void 0;
30
+ var react_1 = __importStar(require("react"));
31
+ var classnames_1 = __importDefault(require("classnames"));
32
+ var ui_i18n_1 = __importDefault(require("ui-i18n"));
33
+ var FileDropZone_module_css_1 = __importDefault(require("./FileDropZone.module.css"));
34
+ var DEFAULT_ACCEPTABLE_DRAG_TYPE = 'Files';
35
+ exports.FileDropZone = (0, react_1.memo)(function (_a) {
36
+ var _b;
37
+ var children = _a.children, onFileDrop = _a.onFileDrop, isAcceptableFile = _a.isAcceptableFile, className = _a.className;
38
+ var _c = (0, react_1.useState)(false), isActive = _c[0], setIsActive = _c[1];
39
+ var isAcceptableDragType = (0, react_1.useCallback)(function (dragType) { return dragType === DEFAULT_ACCEPTABLE_DRAG_TYPE; }, []);
40
+ var handleDragOver = (0, react_1.useCallback)(function (e) {
41
+ e.preventDefault();
42
+ var dragType = e.dataTransfer.types[0];
43
+ var isValid = isAcceptableDragType(dragType);
44
+ e.dataTransfer.dropEffect = isValid ? 'copy' : 'none';
45
+ setIsActive(isValid);
46
+ }, [isAcceptableDragType]);
47
+ var handleDragEnter = (0, react_1.useCallback)(function (e) {
48
+ e.preventDefault();
49
+ var dragType = e.dataTransfer.types[0];
50
+ setIsActive(isAcceptableDragType(dragType));
51
+ }, [isAcceptableDragType]);
52
+ var handleDragLeave = (0, react_1.useCallback)(function (e) {
53
+ e.preventDefault();
54
+ var relatedTarget = e.relatedTarget;
55
+ var isLeave = relatedTarget && !e.currentTarget.contains(relatedTarget);
56
+ if (isLeave || !relatedTarget) {
57
+ setIsActive(false);
58
+ }
59
+ }, []);
60
+ var handleDrop = (0, react_1.useCallback)(function (e) {
61
+ var _a, _b;
62
+ e.preventDefault();
63
+ setIsActive(false);
64
+ var dragType = e.dataTransfer.types[0];
65
+ if (!isAcceptableDragType(dragType))
66
+ return;
67
+ var file = (_b = (_a = e.dataTransfer.files) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
68
+ if (!file)
69
+ return;
70
+ if (isAcceptableFile && !isAcceptableFile(file))
71
+ return;
72
+ onFileDrop(file);
73
+ }, [isAcceptableDragType, isAcceptableFile, onFileDrop]);
74
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(FileDropZone_module_css_1.default.root, className, (_b = {}, _b[FileDropZone_module_css_1.default.active] = isActive, _b)), role: "button", tabIndex: 0, "aria-label": ui_i18n_1.default.text('Drop files here'), onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDrop: handleDrop }, children));
75
+ });
76
+ exports.FileDropZone.displayName = 'FileDropZone';
@@ -0,0 +1,9 @@
1
+ const styles = {"root":"FileDropZone-root--9QbaV","active":"FileDropZone-active--FUwfs"};
2
+ if (typeof document !== 'undefined') {
3
+ const head = document.head || document.getElementsByTagName('head')[0]
4
+ const style = document.createElement('style');
5
+ style.type = 'text/css'
6
+ style.innerHTML = `.FileDropZone-root--9QbaV{cursor:pointer}.FileDropZone-active--FUwfs{background-color:rgba(0,114,206,.12)}`;
7
+ head.appendChild(style);
8
+ }
9
+ module.exports = styles;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_2 = require("@testing-library/react");
8
+ var FileDropZone_1 = require("./FileDropZone");
9
+ var mockOnFileDrop = jest.fn();
10
+ var setUp = function (_a) {
11
+ var _b = _a === void 0 ? {} : _a, isAcceptableFile = _b.isAcceptableFile;
12
+ return (0, react_2.render)(react_1.default.createElement(FileDropZone_1.FileDropZone, { onFileDrop: mockOnFileDrop, isAcceptableFile: isAcceptableFile },
13
+ react_1.default.createElement("span", null, "Drop content here")));
14
+ };
15
+ describe('FileDropZone', function () {
16
+ afterEach(function () {
17
+ jest.clearAllMocks();
18
+ });
19
+ it('should render children', function () {
20
+ setUp();
21
+ expect(react_2.screen.getByText('Drop content here')).toBeInTheDocument();
22
+ });
23
+ it('should have correct accessibility attributes', function () {
24
+ setUp();
25
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
26
+ expect(dropZone).toBeInTheDocument();
27
+ expect(dropZone).toHaveAttribute('tabindex', '0');
28
+ });
29
+ it('should activate drag state on drag over with acceptable file type', function () {
30
+ setUp();
31
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
32
+ react_2.fireEvent.dragOver(dropZone, {
33
+ dataTransfer: { types: ['Files'], dropEffect: 'copy' }
34
+ });
35
+ expect(dropZone).toHaveClass('active');
36
+ });
37
+ it('should not activate drag state with unacceptable file type', function () {
38
+ setUp();
39
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
40
+ react_2.fireEvent.dragOver(dropZone, {
41
+ dataTransfer: { types: ['Text'], dropEffect: 'none' }
42
+ });
43
+ expect(dropZone).not.toHaveClass('active');
44
+ });
45
+ it('should activate drag state on drag enter with acceptable file type', function () {
46
+ setUp();
47
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
48
+ react_2.fireEvent.dragEnter(dropZone, {
49
+ dataTransfer: { types: ['Files'] }
50
+ });
51
+ expect(dropZone).toHaveClass('active');
52
+ });
53
+ it('should deactivate drag state on drag leave', function () {
54
+ setUp();
55
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
56
+ react_2.fireEvent.dragOver(dropZone, { dataTransfer: { types: ['Files'] } });
57
+ expect(dropZone).toHaveClass('active');
58
+ react_2.fireEvent.dragLeave(dropZone);
59
+ expect(dropZone).not.toHaveClass('active');
60
+ });
61
+ it('should call onFileDrop with the dropped file', function () {
62
+ var file = new File(['test content'], 'test.csv', { type: 'text/csv' });
63
+ setUp();
64
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
65
+ react_2.fireEvent.drop(dropZone, {
66
+ dataTransfer: {
67
+ files: [file],
68
+ types: ['Files']
69
+ }
70
+ });
71
+ expect(mockOnFileDrop).toHaveBeenCalledWith(file);
72
+ });
73
+ it('should not call onFileDrop if dropped item is not of file type', function () {
74
+ setUp();
75
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
76
+ react_2.fireEvent.drop(dropZone, {
77
+ dataTransfer: { types: ['Text'] }
78
+ });
79
+ expect(mockOnFileDrop).not.toHaveBeenCalled();
80
+ });
81
+ it('should not call onFileDrop if isAcceptableFile returns false', function () {
82
+ var file = new File(['test content'], 'test.exe', { type: 'application/octet-stream' });
83
+ setUp({ isAcceptableFile: function (f) { return f.name.endsWith('.csv'); } });
84
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
85
+ react_2.fireEvent.drop(dropZone, {
86
+ dataTransfer: {
87
+ files: [file],
88
+ types: ['Files']
89
+ }
90
+ });
91
+ expect(mockOnFileDrop).not.toHaveBeenCalled();
92
+ });
93
+ it('should call onFileDrop if isAcceptableFile returns true', function () {
94
+ var file = new File(['test content'], 'data.csv', { type: 'text/csv' });
95
+ setUp({ isAcceptableFile: function (f) { return f.name.endsWith('.csv'); } });
96
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
97
+ react_2.fireEvent.drop(dropZone, {
98
+ dataTransfer: {
99
+ files: [file],
100
+ types: ['Files']
101
+ }
102
+ });
103
+ expect(mockOnFileDrop).toHaveBeenCalledWith(file);
104
+ });
105
+ it('should deactivate drag state after drop', function () {
106
+ var file = new File(['test content'], 'test.csv', { type: 'text/csv' });
107
+ setUp();
108
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
109
+ react_2.fireEvent.dragOver(dropZone, { dataTransfer: { types: ['Files'] } });
110
+ expect(dropZone).toHaveClass('active');
111
+ react_2.fireEvent.drop(dropZone, {
112
+ dataTransfer: {
113
+ files: [file],
114
+ types: ['Files']
115
+ }
116
+ });
117
+ expect(dropZone).not.toHaveClass('active');
118
+ });
119
+ });
@@ -0,0 +1 @@
1
+ export { FileDropZone } from './FileDropZone';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileDropZone = void 0;
4
+ var FileDropZone_1 = require("./FileDropZone");
5
+ Object.defineProperty(exports, "FileDropZone", { enumerable: true, get: function () { return FileDropZone_1.FileDropZone; } });
@@ -4,6 +4,7 @@ type Props = {
4
4
  entity: Entity;
5
5
  className?: string;
6
6
  historySlice?: HistorySlice;
7
+ children?: React.ReactNode;
7
8
  };
8
- export declare const ScreenProfileBand: React.MemoExoticComponent<({ entity, className, historySlice }: Props) => React.JSX.Element>;
9
+ export declare const ScreenProfileBand: React.MemoExoticComponent<({ entity, className, historySlice, children }: Props) => React.JSX.Element>;
9
10
  export {};
@@ -37,17 +37,18 @@ var CollaborationContext_1 = require("../contexts/CollaborationContext");
37
37
  var constants_1 = require("../constants");
38
38
  var useCollaboration_1 = require("../hooks/useCollaboration");
39
39
  var history_1 = require("../features/history");
40
- var styles_1 = require("./styles");
40
+ var ScreenProfileBand_module_css_1 = __importDefault(require("./ScreenProfileBand.module.css"));
41
41
  exports.ScreenProfileBand = (0, react_1.memo)(function (_a) {
42
- var entity = _a.entity, className = _a.className, historySlice = _a.historySlice;
43
- var styles = (0, styles_1.useStyles)();
42
+ var entity = _a.entity, className = _a.className, historySlice = _a.historySlice, children = _a.children;
44
43
  var objectIds = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getProfileBandObjectIdsForCollaboration)(entity); }, [entity]);
45
44
  var collaboration = (0, useCollaboration_1.useCollaboration)({ objectIds: objectIds });
46
45
  var entityUri = (0, mdm_sdk_1.getEntityUriForLink)(entity);
47
46
  return (react_1.default.createElement(CollaborationContext_1.CollaborationContextProvider, { collaboration: collaboration },
48
47
  react_1.default.createElement(ProfileBand_1.ProfileBand, { className: (0, classnames_1.default)(className, constants_1.COMMENTS_CONTAINER_VISIBILITY_AREA), entity: (historySlice === null || historySlice === void 0 ? void 0 : historySlice.aEntity) || entity }, historySlice ? (react_1.default.createElement(history_1.ProfileBandHistory, null)) : (react_1.default.createElement(react_1.default.Fragment, null,
49
- react_1.default.createElement(ProfileBandNavigation_1.ProfileBandNavigation, { className: styles.profileBandNavigation }),
50
- react_1.default.createElement(CommentsContainer_1.CommentsContainer, { className: styles.comments, uri: entityUri, relatedObjectUris: (0, mdm_sdk_1.createRelatedObjectUris)(mdm_sdk_1.CollaborationObjectTypes.ENTITY, {
48
+ children ? (react_1.default.createElement("div", { className: (0, classnames_1.default)(ScreenProfileBand_module_css_1.default.profileBandNavigation, ScreenProfileBand_module_css_1.default.navigationRow) },
49
+ react_1.default.createElement(ProfileBandNavigation_1.ProfileBandNavigation, null),
50
+ children)) : (react_1.default.createElement(ProfileBandNavigation_1.ProfileBandNavigation, { className: ScreenProfileBand_module_css_1.default.profileBandNavigation })),
51
+ react_1.default.createElement(CommentsContainer_1.CommentsContainer, { className: ScreenProfileBand_module_css_1.default.comments, uri: entityUri, relatedObjectUris: (0, mdm_sdk_1.createRelatedObjectUris)(mdm_sdk_1.CollaborationObjectTypes.ENTITY, {
51
52
  entityUri: entityUri
52
53
  }), objectType: mdm_sdk_1.CollaborationObjectTypes.ENTITY }))))));
53
54
  });
@@ -0,0 +1,9 @@
1
+ const styles = {"profileBandNavigation":"ScreenProfileBand-profileBandNavigation--5BMn5","navigationRow":"ScreenProfileBand-navigationRow---CH-F","comments":"ScreenProfileBand-comments--RRYzS"};
2
+ if (typeof document !== 'undefined') {
3
+ const head = document.head || document.getElementsByTagName('head')[0]
4
+ const style = document.createElement('style');
5
+ style.type = 'text/css'
6
+ style.innerHTML = `.ScreenProfileBand-profileBandNavigation--5BMn5{margin-bottom:10px}.ScreenProfileBand-navigationRow---CH-F{align-items:center;display:flex;gap:8px}.ScreenProfileBand-comments--RRYzS{display:flex;justify-content:flex-end}`;
7
+ head.appendChild(style);
8
+ }
9
+ module.exports = styles;
@@ -127,6 +127,11 @@ describe('Screen profile band tests', function () {
127
127
  }
128
128
  });
129
129
  }); });
130
+ it('should render children when provided', function () {
131
+ var props = __assign(__assign({}, defaultProps), { children: react_1.default.createElement("button", null, "Custom Action") });
132
+ setUp({ props: props });
133
+ expect(react_2.screen.getByRole('button', { name: 'Custom Action' })).toBeInTheDocument();
134
+ });
130
135
  it('should render profile band history if historySlice prop is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
131
136
  var historySlice, props, mdmValues;
132
137
  return __generator(this, function (_a) {
@@ -1,77 +1,24 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.TargetBox = void 0;
30
- var react_1 = __importStar(require("react"));
7
+ var react_1 = __importDefault(require("react"));
31
8
  var classnames_1 = __importDefault(require("classnames"));
32
9
  var ui_i18n_1 = __importDefault(require("ui-i18n"));
33
10
  var Typography_1 = __importDefault(require("@mui/material/Typography"));
11
+ var FileDropZone_1 = require("../../../FileDropZone");
34
12
  var SelectImageButton_1 = require("../SelectImageButton");
35
13
  var UploadIcon_1 = __importDefault(require("../../../icons/UploadIcon"));
36
14
  var constants_1 = require("../../constants");
37
- var styles_1 = require("./styles");
38
- var ACCEPTABLE_FILE_TYPE = 'Files';
15
+ var TargetBox_module_css_1 = __importDefault(require("./TargetBox.module.css"));
39
16
  var TargetBox = function (_a) {
40
- var _b;
41
17
  var onAppendFile = _a.onAppendFile, className = _a.className;
42
- var styles = (0, styles_1.useStyles)();
43
- var _c = (0, react_1.useState)(false), isActive = _c[0], setIsActive = _c[1];
44
- var handleDragOver = (0, react_1.useCallback)(function (e) {
45
- e.preventDefault();
46
- e.stopPropagation();
47
- var filesType = e.dataTransfer.types[0];
48
- var isValidType = filesType === ACCEPTABLE_FILE_TYPE;
49
- e.dataTransfer.dropEffect = isValidType ? 'copy' : 'none';
50
- setIsActive(isValidType);
51
- }, []);
52
- var handleDragLeave = (0, react_1.useCallback)(function (e) {
53
- e.preventDefault();
54
- e.stopPropagation();
55
- var relatedTarget = e.relatedTarget;
56
- var isLeave = relatedTarget && !e.currentTarget.contains(relatedTarget);
57
- if (isLeave || !relatedTarget) {
58
- setIsActive(false);
59
- }
60
- }, []);
61
- var handleDrop = (0, react_1.useCallback)(function (e) {
62
- e.preventDefault();
63
- e.stopPropagation();
64
- setIsActive(false);
65
- var filesType = e.dataTransfer.types[0];
66
- if (filesType === ACCEPTABLE_FILE_TYPE) {
67
- var file = e.dataTransfer.files[0];
68
- onAppendFile(file);
69
- }
70
- }, [onAppendFile]);
71
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.root, (_b = {}, _b[styles.isActive] = isActive, _b), className), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop },
72
- react_1.default.createElement(UploadIcon_1.default, { className: styles.icon }),
73
- react_1.default.createElement(Typography_1.default, { className: styles.title }, ui_i18n_1.default.text('Drag an image here')),
74
- react_1.default.createElement(Typography_1.default, { className: styles.description }, ui_i18n_1.default.text('Acceptable image types would include JPG, PNG, TIFF, GIF, BMP. Maximum image size: ${MAX_IMAGE_SIZE}Mb', {
18
+ return (react_1.default.createElement(FileDropZone_1.FileDropZone, { className: (0, classnames_1.default)(TargetBox_module_css_1.default.root, className), onFileDrop: onAppendFile },
19
+ react_1.default.createElement(UploadIcon_1.default, { className: TargetBox_module_css_1.default.icon }),
20
+ react_1.default.createElement(Typography_1.default, { className: TargetBox_module_css_1.default.title }, ui_i18n_1.default.text('Drag an image here')),
21
+ react_1.default.createElement(Typography_1.default, { className: TargetBox_module_css_1.default.description }, ui_i18n_1.default.text('Acceptable image types would include JPG, PNG, TIFF, GIF, BMP. Maximum image size: ${MAX_IMAGE_SIZE}Mb', {
75
22
  MAX_IMAGE_SIZE: constants_1.MAX_IMAGE_SIZE
76
23
  })),
77
24
  react_1.default.createElement(SelectImageButton_1.SelectImageButton, { onAppendFile: onAppendFile })));
@@ -0,0 +1,9 @@
1
+ const styles = {"root":"TargetBox-root--T8Dyg","icon":"TargetBox-icon--qfl13","title":"TargetBox-title--zQaNU","description":"TargetBox-description--Jyqo5"};
2
+ if (typeof document !== 'undefined') {
3
+ const head = document.head || document.getElementsByTagName('head')[0]
4
+ const style = document.createElement('style');
5
+ style.type = 'text/css'
6
+ style.innerHTML = `.TargetBox-root--T8Dyg{padding:36px 0 29px}.TargetBox-icon--qfl13{height:190px;margin-bottom:24px;pointer-events:none;width:190px}.TargetBox-title--zQaNU{color:var(--mui-palette-text-primary);font-size:20px;font-weight:500;line-height:24px;margin-bottom:8px}.TargetBox-description--Jyqo5{color:var(--mui-palette-text-secondary);font-size:14px;line-height:16px;margin-bottom:24px}`;
7
+ head.appendChild(style);
8
+ }
9
+ module.exports = styles;
@@ -14,38 +14,15 @@ describe('TargetBox', function () {
14
14
  afterEach(function () {
15
15
  jest.clearAllMocks();
16
16
  });
17
- it('should renders well', function () {
17
+ it('should render correctly', function () {
18
18
  setUp();
19
19
  expect(react_2.screen.getByText('Drag an image here')).toBeInTheDocument();
20
+ expect(react_2.screen.getByRole('button', { name: 'Drop files here' })).toBeInTheDocument();
20
21
  });
21
- it('should activates drag state on drag over with acceptable file type', function () {
22
- var container = setUp().container;
23
- var dropZone = container.firstChild;
24
- react_2.fireEvent.dragOver(dropZone, {
25
- dataTransfer: { types: ['Files'], dropEffect: 'copy' }
26
- });
27
- expect(dropZone).toHaveClass('isActive');
28
- });
29
- it('should does not activate drag state with unacceptable file type', function () {
30
- var container = setUp().container;
31
- var dropZone = container.firstChild;
32
- react_2.fireEvent.dragOver(dropZone, {
33
- dataTransfer: { types: ['Text'], dropEffect: 'none' }
34
- });
35
- expect(dropZone).not.toHaveClass('isActive');
36
- });
37
- it('should deactivates drag state on drag leave', function () {
38
- var container = setUp().container;
39
- var dropZone = container.firstChild;
40
- react_2.fireEvent.dragOver(dropZone, { dataTransfer: { types: ['Files'] } });
41
- expect(dropZone).toHaveClass('isActive');
42
- react_2.fireEvent.dragLeave(dropZone);
43
- expect(dropZone).not.toHaveClass('isActive');
44
- });
45
- it('should calls onAppendFile with the dropped file', function () {
22
+ it('should call onAppendFile when file is dropped', function () {
46
23
  var file = new File(['test content'], 'test.png', { type: 'image/png' });
47
- var container = setUp().container;
48
- var dropZone = container.firstChild;
24
+ setUp();
25
+ var dropZone = react_2.screen.getByRole('button', { name: 'Drop files here' });
49
26
  react_2.fireEvent.drop(dropZone, {
50
27
  dataTransfer: {
51
28
  files: [file],
@@ -54,14 +31,4 @@ describe('TargetBox', function () {
54
31
  });
55
32
  expect(mockOnAppendFile).toHaveBeenCalledWith(file);
56
33
  });
57
- it('should does not call onAppendFile if dropped item is not of file type', function () {
58
- var container = setUp().container;
59
- var dropZone = container.firstChild;
60
- react_2.fireEvent.drop(dropZone, {
61
- dataTransfer: {
62
- types: ['Text']
63
- }
64
- });
65
- expect(mockOnAppendFile).not.toHaveBeenCalled();
66
- });
67
34
  });
package/cjs/index.d.ts CHANGED
@@ -84,6 +84,7 @@ export { SegmentIdLink } from './SegmentIdLink';
84
84
  export { ErrorBoundary } from './ErrorBoundary';
85
85
  export { ErrorPopup } from './ErrorPopup';
86
86
  export { ExpandableSearchInput } from './ExpandableSearchInput';
87
+ export { FileDropZone } from './FileDropZone';
87
88
  export { HideOnShrink } from './HideOnShrink';
88
89
  export { HierarchicalAttributeTooltip } from './HierarchicalAttributeTooltip';
89
90
  export { HierarchyNodeTitle } from './HierarchyNodeTitle';
package/cjs/index.js CHANGED
@@ -15,13 +15,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.NestedAttribute = exports.MoreAttributesButton = exports.InlineReferenceAttribute = exports.InlineNestedAttribute = exports.InlineImageAttribute = exports.InlineAttributesPager = exports.InfoIcon = exports.EditableImageAttributesLine = exports.FilterButton = exports.FacetViewHeader = exports.ExpandedValueTooltip = exports.EntitySelector = exports.EntityCreator = exports.AttributesPager = exports.AttributesList = exports.EditableAttribute = exports.DropDownMenuButton = exports.DescriptionIcon = exports.DefaultCellValueRenderer = exports.ControlAttributeIcon = exports.ColumnsSettingsPopup = exports.ColumnsSettings = exports.ColorBar = exports.CollapseRowButton = exports.BasicChartsFactory = exports.ChartsFactory = exports.CardinalityMessage = exports.BranchDecorator = exports.BasicViewHeader = exports.BasicViewContent = exports.BasicView = exports.BasicTablePagination = exports.basicTableViewState = exports.BasicTable = exports.BasicAttributeSelector = exports.BarChart = exports.AvatarWithFallback = exports.AutoSizeList = exports.AttributesView = exports.AttributesValuesEditor = exports.AttributeRowCellRenderer = exports.AttributesFiltersButton = exports.AttributesFiltersBuilder = exports.AttributesFilterSelector = exports.AttributesErrorsPanel = exports.AttributeListItem = exports.AttributeGroupIcon = exports.ArrowExpandButton = exports.ActionsPanel = exports.ActionButton = void 0;
18
- exports.ReactSelectMenuList = exports.ReactSelectLoadMoreButton = exports.ReactSelectDropdownIndicatorWithIconButton = exports.ReactSelectDropdownIndicator = exports.Highlighter = exports.HierarchyNodeTitle = exports.HierarchicalAttributeTooltip = exports.HideOnShrink = exports.ExpandableSearchInput = exports.ErrorPopup = exports.ErrorBoundary = exports.SegmentIdLink = exports.EntityUriLink = exports.EntityTypesSelector = exports.EntityTypeIcon = exports.EntityTypeBadge = exports.EntityAvatar = exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = exports.EmptyState = exports.Drawer = exports.DataTypeValue = exports.DataTenantBadge = exports.ConnectionRelationTypeSelector = exports.CollaborationItem = exports.ConfirmationDialog = exports.CommentsContainer = exports.ColoredSourceIcon = exports.CollapseButton = exports.TreeChart = exports.TableWithBars = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleAttributeEditor = exports.SimpleAttribute = exports.RowCellChips = exports.RowCellChipWithTooltip = exports.RowCellAutoSizer = exports.RelationTypeSelector = exports.ReferenceAttributeEditor = exports.ReferenceAttribute = exports.ImageAttributesLine = exports.ReadOnlyAttributesPager = exports.ReadOnlyAttributesList = exports.ReadOnlyAttribute = exports.ReadOnlyAttributeValuesBlock = exports.PieChart = exports.OvIcon = exports.NestedAttributeEditor = void 0;
19
- exports.LoadingSpinner = exports.Link = exports.LinearLoadIndicator = exports.ImportButton = exports.ReadableSearchQueryBuilder = exports.ReadableSearchQuery = exports.LogicOperatorWithPlaceholder = exports.LogicOperator = exports.TableSkeleton = exports.StepNavigation = exports.TenantLabel = exports.RelevanceScoreBadge = exports.RequiredMark = exports.SettingsMenu = exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.ProfilesList = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.ImageGalleryDialog = exports.RelationTypesSelector = exports.ScreenProfileBand = exports.ProfileBandNavigation = exports.EmptyStub = exports.MaskingSwitcher = exports.FileTypeEditor = exports.EmptySearchResult = exports.DropDownEditor = exports.FilterValueEditor = exports.MultiValueChip = exports.TextEditor = exports.DateRangeEditor = exports.NumberEditor = exports.DataTypeValueEditor = exports.DateEditor = exports.ErrorWrapper = exports.ErrorMessage = exports.HIDE = exports.INSERT_RIGHT = exports.INSERT_LEFT = exports.ConfigColumnPopup = exports.ConfigureColumnsPopup = exports.ConnectionEditor = exports.DropDownSelector = exports.ReactSelectOptionWithCheckIcon = exports.ReactSelectMenuWithPopper = void 0;
20
- exports.DefaultHeadCellRendererWithTooltip = exports.LazyRenderer = exports.MetadataTypesSelector = exports.DateRangeSelector = exports.UpSetChart = exports.GaugeChart = exports.RelationEditor = exports.ReltioMap = exports.Marginator = exports.LightArrowTooltip = exports.ScrollableTabs = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopup = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.RCTreeSwitchRenderer = exports.RCTreeLevelLines = exports.RCTree = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBuilder = exports.SimpleMatchRulesBlock = exports.SimpleMatchRules = exports.MatchRulesBlock = void 0;
21
- exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeAutoExpanded = exports.AutoExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockNavigationContext = exports.BlockImageGalleryDialogContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = exports.MdmModuleProvider = exports.withColumnConfigurator = exports.withBlockNavigation = exports.withCollapseButton = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.CollaborationButton = exports.ExportDialog = exports.RequestedData = exports.FacetContainer = exports.FacetsSelector = exports.FacetGroupTitle = exports.QuickFiltersEntityTypeFacet = exports.FacetGroup = exports.QuickFiltersFacetPanel = exports.AdvancedSearchFabButton = exports.QuickFiltersDrawer = void 0;
22
- exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ThemeProvider = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.useReloadData = exports.ReloadDataProvider = exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.RelationContext = exports.EntityContext = void 0;
23
- exports.applyCompactValuesCountConstraint = exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useInternalExport = exports.useTableColumns = exports.useSegmentsLoader = exports.useDndBasicTableScrollModifier = exports.useDynamicYAxisWidth = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = void 0;
24
- exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.getAttrPathFromColumnId = exports.getAttributeHeight = exports.getNestedPathByColumnId = void 0;
18
+ exports.ReactSelectLoadMoreButton = exports.ReactSelectDropdownIndicatorWithIconButton = exports.ReactSelectDropdownIndicator = exports.Highlighter = exports.HierarchyNodeTitle = exports.HierarchicalAttributeTooltip = exports.HideOnShrink = exports.FileDropZone = exports.ExpandableSearchInput = exports.ErrorPopup = exports.ErrorBoundary = exports.SegmentIdLink = exports.EntityUriLink = exports.EntityTypesSelector = exports.EntityTypeIcon = exports.EntityTypeBadge = exports.EntityAvatar = exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = exports.EmptyState = exports.Drawer = exports.DataTypeValue = exports.DataTenantBadge = exports.ConnectionRelationTypeSelector = exports.CollaborationItem = exports.ConfirmationDialog = exports.CommentsContainer = exports.ColoredSourceIcon = exports.CollapseButton = exports.TreeChart = exports.TableWithBars = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleAttributeEditor = exports.SimpleAttribute = exports.RowCellChips = exports.RowCellChipWithTooltip = exports.RowCellAutoSizer = exports.RelationTypeSelector = exports.ReferenceAttributeEditor = exports.ReferenceAttribute = exports.ImageAttributesLine = exports.ReadOnlyAttributesPager = exports.ReadOnlyAttributesList = exports.ReadOnlyAttribute = exports.ReadOnlyAttributeValuesBlock = exports.PieChart = exports.OvIcon = exports.NestedAttributeEditor = void 0;
19
+ exports.Link = exports.LinearLoadIndicator = exports.ImportButton = exports.ReadableSearchQueryBuilder = exports.ReadableSearchQuery = exports.LogicOperatorWithPlaceholder = exports.LogicOperator = exports.TableSkeleton = exports.StepNavigation = exports.TenantLabel = exports.RelevanceScoreBadge = exports.RequiredMark = exports.SettingsMenu = exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.ProfilesList = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.ImageGalleryDialog = exports.RelationTypesSelector = exports.ScreenProfileBand = exports.ProfileBandNavigation = exports.EmptyStub = exports.MaskingSwitcher = exports.FileTypeEditor = exports.EmptySearchResult = exports.DropDownEditor = exports.FilterValueEditor = exports.MultiValueChip = exports.TextEditor = exports.DateRangeEditor = exports.NumberEditor = exports.DataTypeValueEditor = exports.DateEditor = exports.ErrorWrapper = exports.ErrorMessage = exports.HIDE = exports.INSERT_RIGHT = exports.INSERT_LEFT = exports.ConfigColumnPopup = exports.ConfigureColumnsPopup = exports.ConnectionEditor = exports.DropDownSelector = exports.ReactSelectOptionWithCheckIcon = exports.ReactSelectMenuWithPopper = exports.ReactSelectMenuList = void 0;
20
+ exports.LazyRenderer = exports.MetadataTypesSelector = exports.DateRangeSelector = exports.UpSetChart = exports.GaugeChart = exports.RelationEditor = exports.ReltioMap = exports.Marginator = exports.LightArrowTooltip = exports.ScrollableTabs = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopup = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.RCTreeSwitchRenderer = exports.RCTreeLevelLines = exports.RCTree = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBuilder = exports.SimpleMatchRulesBlock = exports.SimpleMatchRules = exports.MatchRulesBlock = exports.LoadingSpinner = void 0;
21
+ exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeAutoExpanded = exports.AutoExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockNavigationContext = exports.BlockImageGalleryDialogContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = exports.MdmModuleProvider = exports.withColumnConfigurator = exports.withBlockNavigation = exports.withCollapseButton = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.CollaborationButton = exports.ExportDialog = exports.RequestedData = exports.FacetContainer = exports.FacetsSelector = exports.FacetGroupTitle = exports.QuickFiltersEntityTypeFacet = exports.FacetGroup = exports.QuickFiltersFacetPanel = exports.AdvancedSearchFabButton = exports.QuickFiltersDrawer = exports.DefaultHeadCellRendererWithTooltip = void 0;
22
+ exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ThemeProvider = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.useReloadData = exports.ReloadDataProvider = exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.RelationContext = exports.EntityContext = exports.RelatedObjectUrisContext = void 0;
23
+ exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useInternalExport = exports.useTableColumns = exports.useSegmentsLoader = exports.useDndBasicTableScrollModifier = exports.useDynamicYAxisWidth = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = void 0;
24
+ exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.getAttrPathFromColumnId = exports.getAttributeHeight = exports.getNestedPathByColumnId = exports.applyCompactValuesCountConstraint = void 0;
25
25
  // components
26
26
  var ActionButton_1 = require("./ActionButton");
27
27
  Object.defineProperty(exports, "ActionButton", { enumerable: true, get: function () { return ActionButton_1.ActionButton; } });
@@ -201,6 +201,8 @@ var ErrorPopup_1 = require("./ErrorPopup");
201
201
  Object.defineProperty(exports, "ErrorPopup", { enumerable: true, get: function () { return ErrorPopup_1.ErrorPopup; } });
202
202
  var ExpandableSearchInput_1 = require("./ExpandableSearchInput");
203
203
  Object.defineProperty(exports, "ExpandableSearchInput", { enumerable: true, get: function () { return ExpandableSearchInput_1.ExpandableSearchInput; } });
204
+ var FileDropZone_1 = require("./FileDropZone");
205
+ Object.defineProperty(exports, "FileDropZone", { enumerable: true, get: function () { return FileDropZone_1.FileDropZone; } });
204
206
  var HideOnShrink_1 = require("./HideOnShrink");
205
207
  Object.defineProperty(exports, "HideOnShrink", { enumerable: true, get: function () { return HideOnShrink_1.HideOnShrink; } });
206
208
  var HierarchicalAttributeTooltip_1 = require("./HierarchicalAttributeTooltip");
package/index.d.ts CHANGED
@@ -84,6 +84,7 @@ export { SegmentIdLink } from './SegmentIdLink';
84
84
  export { ErrorBoundary } from './ErrorBoundary';
85
85
  export { ErrorPopup } from './ErrorPopup';
86
86
  export { ExpandableSearchInput } from './ExpandableSearchInput';
87
+ export { FileDropZone } from './FileDropZone';
87
88
  export { HideOnShrink } from './HideOnShrink';
88
89
  export { HierarchicalAttributeTooltip } from './HierarchicalAttributeTooltip';
89
90
  export { HierarchyNodeTitle } from './HierarchyNodeTitle';
package/index.js CHANGED
@@ -85,6 +85,7 @@ export { SegmentIdLink } from './SegmentIdLink';
85
85
  export { ErrorBoundary } from './ErrorBoundary';
86
86
  export { ErrorPopup } from './ErrorPopup';
87
87
  export { ExpandableSearchInput } from './ExpandableSearchInput';
88
+ export { FileDropZone } from './FileDropZone';
88
89
  export { HideOnShrink } from './HideOnShrink';
89
90
  export { HierarchicalAttributeTooltip } from './HierarchicalAttributeTooltip';
90
91
  export { HierarchyNodeTitle } from './HierarchyNodeTitle';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.2234",
3
+ "version": "1.4.2235",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./index.js",
@@ -11,7 +11,7 @@
11
11
  "@fluentui/react-context-selector": "^9.1.26",
12
12
  "@googlemaps/markerclusterer": "^2.5.3",
13
13
  "@react-sigma/core": "3.4.0",
14
- "@reltio/mdm-sdk": "^1.4.2024",
14
+ "@reltio/mdm-sdk": "^1.4.2025",
15
15
  "@vis.gl/react-google-maps": "^1.3.0",
16
16
  "d3-cloud": "^1.2.5",
17
17
  "d3-geo": "^2.0.1",
@@ -1 +0,0 @@
1
- export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"comments" | "profileBandNavigation">;
@@ -1,10 +0,0 @@
1
- import { makeStyles } from '@mui/styles';
2
- export var useStyles = makeStyles({
3
- profileBandNavigation: {
4
- marginBottom: '10px'
5
- },
6
- comments: {
7
- display: 'flex',
8
- justifyContent: 'flex-end'
9
- }
10
- });
@@ -1 +0,0 @@
1
- export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"icon" | "title" | "root" | "description" | "isActive">;
@@ -1,28 +0,0 @@
1
- import { makeStyles } from '@mui/styles';
2
- export var useStyles = makeStyles(function (theme) { return ({
3
- root: {
4
- padding: '36px 0 29px'
5
- },
6
- isActive: {
7
- backgroundColor: 'rgba(0,114,206,0.12)'
8
- },
9
- icon: {
10
- width: '190px',
11
- height: '190px',
12
- marginBottom: '24px',
13
- pointerEvents: 'none'
14
- },
15
- title: {
16
- marginBottom: '8px',
17
- color: theme.palette.text.primary,
18
- fontSize: '20px',
19
- fontWeight: 500,
20
- lineHeight: '24px'
21
- },
22
- description: {
23
- marginBottom: '24px',
24
- color: theme.palette.text.secondary,
25
- fontSize: '14px',
26
- lineHeight: '16px'
27
- }
28
- }); });
@@ -1 +0,0 @@
1
- export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"comments" | "profileBandNavigation">;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useStyles = void 0;
4
- var styles_1 = require("@mui/styles");
5
- exports.useStyles = (0, styles_1.makeStyles)({
6
- profileBandNavigation: {
7
- marginBottom: '10px'
8
- },
9
- comments: {
10
- display: 'flex',
11
- justifyContent: 'flex-end'
12
- }
13
- });
@@ -1 +0,0 @@
1
- export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"icon" | "title" | "root" | "description" | "isActive">;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useStyles = void 0;
4
- var styles_1 = require("@mui/styles");
5
- exports.useStyles = (0, styles_1.makeStyles)(function (theme) { return ({
6
- root: {
7
- padding: '36px 0 29px'
8
- },
9
- isActive: {
10
- backgroundColor: 'rgba(0,114,206,0.12)'
11
- },
12
- icon: {
13
- width: '190px',
14
- height: '190px',
15
- marginBottom: '24px',
16
- pointerEvents: 'none'
17
- },
18
- title: {
19
- marginBottom: '8px',
20
- color: theme.palette.text.primary,
21
- fontSize: '20px',
22
- fontWeight: 500,
23
- lineHeight: '24px'
24
- },
25
- description: {
26
- marginBottom: '24px',
27
- color: theme.palette.text.secondary,
28
- fontSize: '14px',
29
- lineHeight: '16px'
30
- }
31
- }); });