@reltio/components 1.4.2234 → 1.4.2236
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FileDropZone/FileDropZone.d.ts +9 -0
- package/FileDropZone/FileDropZone.js +47 -0
- package/FileDropZone/FileDropZone.module.css.js +9 -0
- package/FileDropZone/FileDropZone.test.d.ts +1 -0
- package/FileDropZone/FileDropZone.test.js +114 -0
- package/FileDropZone/index.d.ts +1 -0
- package/FileDropZone/index.js +1 -0
- package/ScreenProfileBand/ScreenProfileBand.d.ts +2 -1
- package/ScreenProfileBand/ScreenProfileBand.js +5 -4
- package/ScreenProfileBand/ScreenProfileBand.module.css.js +9 -0
- package/ScreenProfileBand/ScreenProfileBand.test.js +5 -0
- package/UploadImageDialog/components/TargetBox/TargetBox.js +4 -34
- package/UploadImageDialog/components/TargetBox/TargetBox.module.css.js +9 -0
- package/UploadImageDialog/components/TargetBox/TargetBox.test.js +5 -38
- package/cjs/FileDropZone/FileDropZone.d.ts +9 -0
- package/cjs/FileDropZone/FileDropZone.js +76 -0
- package/cjs/FileDropZone/FileDropZone.module.css.js +9 -0
- package/cjs/FileDropZone/FileDropZone.test.d.ts +1 -0
- package/cjs/FileDropZone/FileDropZone.test.js +119 -0
- package/cjs/FileDropZone/index.d.ts +1 -0
- package/cjs/FileDropZone/index.js +5 -0
- package/cjs/ScreenProfileBand/ScreenProfileBand.d.ts +2 -1
- package/cjs/ScreenProfileBand/ScreenProfileBand.js +6 -5
- package/cjs/ScreenProfileBand/ScreenProfileBand.module.css.js +9 -0
- package/cjs/ScreenProfileBand/ScreenProfileBand.test.js +5 -0
- package/cjs/UploadImageDialog/components/TargetBox/TargetBox.js +7 -60
- package/cjs/UploadImageDialog/components/TargetBox/TargetBox.module.css.js +9 -0
- package/cjs/UploadImageDialog/components/TargetBox/TargetBox.test.js +5 -38
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +9 -7
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +2 -2
- package/ScreenProfileBand/styles.d.ts +0 -1
- package/ScreenProfileBand/styles.js +0 -10
- package/UploadImageDialog/components/TargetBox/styles.d.ts +0 -1
- package/UploadImageDialog/components/TargetBox/styles.js +0 -28
- package/cjs/ScreenProfileBand/styles.d.ts +0 -1
- package/cjs/ScreenProfileBand/styles.js +0 -13
- package/cjs/UploadImageDialog/components/TargetBox/styles.d.ts +0 -1
- 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
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
43
|
-
var dropZone =
|
|
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
|
|
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(
|
|
50
|
-
|
|
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 =
|
|
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
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
48
|
-
var dropZone =
|
|
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.
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
21
|
-
exports.
|
|
22
|
-
exports.
|
|
23
|
-
exports.
|
|
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.
|
|
3
|
+
"version": "1.4.2236",
|
|
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.
|
|
14
|
+
"@reltio/mdm-sdk": "^1.4.2026",
|
|
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 +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
|
-
}); });
|