@atlaskit/emoji 71.2.1 → 71.3.0
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/CHANGELOG.md +15 -0
- package/dist/cjs/components/common/Emoji.js +7 -13
- package/dist/cjs/components/common/FileChooser.js +48 -1
- package/dist/cjs/util/analytics/analytics.js +1 -1
- package/dist/es2019/components/common/Emoji.js +7 -13
- package/dist/es2019/components/common/FileChooser.js +48 -1
- package/dist/es2019/util/analytics/analytics.js +1 -1
- package/dist/esm/components/common/Emoji.js +7 -13
- package/dist/esm/components/common/FileChooser.js +48 -1
- package/dist/esm/util/analytics/analytics.js +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 71.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`e0513f0b5178e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e0513f0b5178e) -
|
|
8
|
+
Drag and drop will still work with native file explorer overlap
|
|
9
|
+
|
|
10
|
+
## 71.2.2
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`deb7c88f3baed`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/deb7c88f3baed) -
|
|
15
|
+
Update unicode emoji sizing so renderer typography can control text emoji scale.
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 71.2.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -281,11 +281,11 @@ var UnicodeEmojiImage = function UnicodeEmojiImage(props) {
|
|
|
281
281
|
});
|
|
282
282
|
};
|
|
283
283
|
var UnicodeEmoji = exports.UnicodeEmoji = function UnicodeEmoji(props) {
|
|
284
|
-
var _props$fitToHeight;
|
|
285
284
|
var emoji = props.emoji,
|
|
286
285
|
selected = props.selected,
|
|
287
286
|
selectOnHover = props.selectOnHover,
|
|
288
287
|
className = props.className,
|
|
288
|
+
fitToHeight = props.fitToHeight,
|
|
289
289
|
_props$renderUnicodeE = props.renderUnicodeEmojiAsImage,
|
|
290
290
|
renderUnicodeEmojiAsImage = _props$renderUnicodeE === void 0 ? true : _props$renderUnicodeE;
|
|
291
291
|
if (renderUnicodeEmojiAsImage) {
|
|
@@ -293,20 +293,14 @@ var UnicodeEmoji = exports.UnicodeEmoji = function UnicodeEmoji(props) {
|
|
|
293
293
|
}
|
|
294
294
|
var classes = "".concat(_styles.emojiNodeStyles, " ").concat(selected ? _styles.commonSelectedStyles : '', " ").concat(selectOnHover ? _styles.selectOnHoverStyles : '', " ").concat(className ? className : '');
|
|
295
295
|
var emojiText = emoji.representation.unicodeEmoji;
|
|
296
|
-
var
|
|
296
|
+
var defaultSize = "".concat(fitToHeight !== null && fitToHeight !== void 0 ? fitToHeight : _constants.defaultEmojiHeight, "px");
|
|
297
|
+
var emojiSize = "var(--emoji-common-unicode-size, ".concat(defaultSize, ")");
|
|
297
298
|
var style = {
|
|
298
|
-
display: 'inline-
|
|
299
|
-
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
300
|
-
fontSize: "max(1em, ".concat(size, "px)"),
|
|
301
|
-
width: "max(1em, ".concat(size, "px)"),
|
|
302
|
-
height: "max(1em, ".concat(size, "px)"),
|
|
303
|
-
textAlign: 'center',
|
|
304
|
-
alignContent: 'center',
|
|
305
|
-
alignSelf: 'center',
|
|
299
|
+
display: 'inline-flex',
|
|
306
300
|
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
301
|
+
fontSize: emojiSize,
|
|
302
|
+
alignItems: 'center',
|
|
303
|
+
aspectRatio: '1/1'
|
|
310
304
|
};
|
|
311
305
|
return (
|
|
312
306
|
/*#__PURE__*/
|
|
@@ -23,6 +23,10 @@ var dropzoneTestId = exports.dropzoneTestId = 'file-dropzone';
|
|
|
23
23
|
var hasFilesInTransfer = function hasFilesInTransfer(dataTransfer) {
|
|
24
24
|
return !!(dataTransfer !== null && dataTransfer !== void 0 && dataTransfer.types) && Array.from(dataTransfer.types).includes('Files');
|
|
25
25
|
};
|
|
26
|
+
var isEventWithinElement = function isEventWithinElement(event, element) {
|
|
27
|
+
var rect = element.getBoundingClientRect();
|
|
28
|
+
return event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;
|
|
29
|
+
};
|
|
26
30
|
var dropzone = null;
|
|
27
31
|
var dropzoneActive = null;
|
|
28
32
|
var previewImageStyles = null;
|
|
@@ -76,10 +80,40 @@ var FileChooser = function FileChooser(props) {
|
|
|
76
80
|
}
|
|
77
81
|
var suppressNativeFileDrop = function suppressNativeFileDrop(event) {
|
|
78
82
|
if (!hasFilesInTransfer(event.dataTransfer)) {
|
|
79
|
-
return;
|
|
83
|
+
return false;
|
|
80
84
|
}
|
|
81
85
|
event.preventDefault();
|
|
82
86
|
event.stopPropagation();
|
|
87
|
+
return true;
|
|
88
|
+
};
|
|
89
|
+
var onWindowFileDrag = function onWindowFileDrag(event) {
|
|
90
|
+
if (!hasFilesInTransfer(event.dataTransfer)) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
var isOverDropzone = isEventWithinElement(event, element);
|
|
94
|
+
if (isOverDropzone) {
|
|
95
|
+
suppressNativeFileDrop(event);
|
|
96
|
+
}
|
|
97
|
+
if (!isDropDisabled) {
|
|
98
|
+
setIsDragging(isOverDropzone);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
var onWindowFileDragLeave = function onWindowFileDragLeave(event) {
|
|
102
|
+
if (!hasFilesInTransfer(event.dataTransfer) || event.relatedTarget) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
setIsDragging(false);
|
|
106
|
+
};
|
|
107
|
+
var onWindowFileDrop = function onWindowFileDrop(event) {
|
|
108
|
+
if (!hasFilesInTransfer(event.dataTransfer) || !isEventWithinElement(event, element)) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
suppressNativeFileDrop(event);
|
|
112
|
+
setIsDragging(false);
|
|
113
|
+
if (!isDropDisabled) {
|
|
114
|
+
var _event$dataTransfer$f, _event$dataTransfer;
|
|
115
|
+
handleFileDrop(Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []));
|
|
116
|
+
}
|
|
83
117
|
};
|
|
84
118
|
|
|
85
119
|
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
@@ -88,6 +122,14 @@ var FileChooser = function FileChooser(props) {
|
|
|
88
122
|
element.addEventListener('dragover', suppressNativeFileDrop);
|
|
89
123
|
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
90
124
|
element.addEventListener('drop', suppressNativeFileDrop);
|
|
125
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
126
|
+
window.addEventListener('dragenter', onWindowFileDrag, true);
|
|
127
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
128
|
+
window.addEventListener('dragover', onWindowFileDrag, true);
|
|
129
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
130
|
+
window.addEventListener('dragleave', onWindowFileDragLeave, true);
|
|
131
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
132
|
+
window.addEventListener('drop', onWindowFileDrop, true);
|
|
91
133
|
var cleanupDropTarget = (0, _adapter.dropTargetForExternal)({
|
|
92
134
|
element: element,
|
|
93
135
|
canDrop: _file.containsFiles,
|
|
@@ -114,6 +156,10 @@ var FileChooser = function FileChooser(props) {
|
|
|
114
156
|
element.removeEventListener('dragenter', suppressNativeFileDrop);
|
|
115
157
|
element.removeEventListener('dragover', suppressNativeFileDrop);
|
|
116
158
|
element.removeEventListener('drop', suppressNativeFileDrop);
|
|
159
|
+
window.removeEventListener('dragenter', onWindowFileDrag, true);
|
|
160
|
+
window.removeEventListener('dragover', onWindowFileDrag, true);
|
|
161
|
+
window.removeEventListener('dragleave', onWindowFileDragLeave, true);
|
|
162
|
+
window.removeEventListener('drop', onWindowFileDrop, true);
|
|
117
163
|
cleanupDropTarget();
|
|
118
164
|
};
|
|
119
165
|
}, [isDropDisabled, handleFileDrop]);
|
|
@@ -135,6 +181,7 @@ var FileChooser = function FileChooser(props) {
|
|
|
135
181
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
136
182
|
ref: dropzoneRef,
|
|
137
183
|
"data-testid": dropzoneTestId,
|
|
184
|
+
"data-dragging": isDragging ? 'true' : undefined,
|
|
138
185
|
role: "region",
|
|
139
186
|
"aria-label": label,
|
|
140
187
|
className: (0, _runtime.ax)(["_zulpu2gc _2rko1qi0 _189ee4h9 _1dqogq9o _1h6d1l7x _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _4t3i7l9q _u5f3utpp _19bvutpp _bfhkhfxm _80omtlke _k8m01rje _1oec1ign _6fl4574g", isDragging && "_1h6dq98m _bfhkufnl"])
|
|
@@ -20,7 +20,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
|
|
|
20
20
|
actionSubjectId: actionSubjectId,
|
|
21
21
|
attributes: _objectSpread({
|
|
22
22
|
packageName: "@atlaskit/emoji",
|
|
23
|
-
packageVersion: "71.2.
|
|
23
|
+
packageVersion: "71.2.2"
|
|
24
24
|
}, attributes)
|
|
25
25
|
};
|
|
26
26
|
};
|
|
@@ -256,12 +256,12 @@ const UnicodeEmojiImage = props => {
|
|
|
256
256
|
});
|
|
257
257
|
};
|
|
258
258
|
export const UnicodeEmoji = props => {
|
|
259
|
-
var _props$fitToHeight;
|
|
260
259
|
const {
|
|
261
260
|
emoji,
|
|
262
261
|
selected,
|
|
263
262
|
selectOnHover,
|
|
264
263
|
className,
|
|
264
|
+
fitToHeight,
|
|
265
265
|
renderUnicodeEmojiAsImage = true
|
|
266
266
|
} = props;
|
|
267
267
|
if (renderUnicodeEmojiAsImage) {
|
|
@@ -269,20 +269,14 @@ export const UnicodeEmoji = props => {
|
|
|
269
269
|
}
|
|
270
270
|
const classes = `${emojiNodeStyles} ${selected ? commonSelectedStyles : ''} ${selectOnHover ? selectOnHoverStyles : ''} ${className ? className : ''}`;
|
|
271
271
|
const emojiText = emoji.representation.unicodeEmoji;
|
|
272
|
-
const
|
|
272
|
+
const defaultSize = `${fitToHeight !== null && fitToHeight !== void 0 ? fitToHeight : defaultEmojiHeight}px`;
|
|
273
|
+
const emojiSize = `var(--emoji-common-unicode-size, ${defaultSize})`;
|
|
273
274
|
const style = {
|
|
274
|
-
display: 'inline-
|
|
275
|
-
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
276
|
-
fontSize: `max(1em, ${size}px)`,
|
|
277
|
-
width: `max(1em, ${size}px)`,
|
|
278
|
-
height: `max(1em, ${size}px)`,
|
|
279
|
-
textAlign: 'center',
|
|
280
|
-
alignContent: 'center',
|
|
281
|
-
alignSelf: 'center',
|
|
275
|
+
display: 'inline-flex',
|
|
282
276
|
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
277
|
+
fontSize: emojiSize,
|
|
278
|
+
alignItems: 'center',
|
|
279
|
+
aspectRatio: '1/1'
|
|
286
280
|
};
|
|
287
281
|
return (
|
|
288
282
|
/*#__PURE__*/
|
|
@@ -11,6 +11,10 @@ export const chooseFileButtonTestId = 'choose-file-button';
|
|
|
11
11
|
export const fileUploadInputTestId = 'file-upload';
|
|
12
12
|
export const dropzoneTestId = 'file-dropzone';
|
|
13
13
|
const hasFilesInTransfer = dataTransfer => !!(dataTransfer !== null && dataTransfer !== void 0 && dataTransfer.types) && Array.from(dataTransfer.types).includes('Files');
|
|
14
|
+
const isEventWithinElement = (event, element) => {
|
|
15
|
+
const rect = element.getBoundingClientRect();
|
|
16
|
+
return event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;
|
|
17
|
+
};
|
|
14
18
|
const dropzone = null;
|
|
15
19
|
const dropzoneActive = null;
|
|
16
20
|
const previewImageStyles = null;
|
|
@@ -61,10 +65,40 @@ const FileChooser = props => {
|
|
|
61
65
|
}
|
|
62
66
|
const suppressNativeFileDrop = event => {
|
|
63
67
|
if (!hasFilesInTransfer(event.dataTransfer)) {
|
|
64
|
-
return;
|
|
68
|
+
return false;
|
|
65
69
|
}
|
|
66
70
|
event.preventDefault();
|
|
67
71
|
event.stopPropagation();
|
|
72
|
+
return true;
|
|
73
|
+
};
|
|
74
|
+
const onWindowFileDrag = event => {
|
|
75
|
+
if (!hasFilesInTransfer(event.dataTransfer)) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const isOverDropzone = isEventWithinElement(event, element);
|
|
79
|
+
if (isOverDropzone) {
|
|
80
|
+
suppressNativeFileDrop(event);
|
|
81
|
+
}
|
|
82
|
+
if (!isDropDisabled) {
|
|
83
|
+
setIsDragging(isOverDropzone);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const onWindowFileDragLeave = event => {
|
|
87
|
+
if (!hasFilesInTransfer(event.dataTransfer) || event.relatedTarget) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
setIsDragging(false);
|
|
91
|
+
};
|
|
92
|
+
const onWindowFileDrop = event => {
|
|
93
|
+
if (!hasFilesInTransfer(event.dataTransfer) || !isEventWithinElement(event, element)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
suppressNativeFileDrop(event);
|
|
97
|
+
setIsDragging(false);
|
|
98
|
+
if (!isDropDisabled) {
|
|
99
|
+
var _event$dataTransfer$f, _event$dataTransfer;
|
|
100
|
+
handleFileDrop(Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []));
|
|
101
|
+
}
|
|
68
102
|
};
|
|
69
103
|
|
|
70
104
|
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
@@ -73,6 +107,14 @@ const FileChooser = props => {
|
|
|
73
107
|
element.addEventListener('dragover', suppressNativeFileDrop);
|
|
74
108
|
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
75
109
|
element.addEventListener('drop', suppressNativeFileDrop);
|
|
110
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
111
|
+
window.addEventListener('dragenter', onWindowFileDrag, true);
|
|
112
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
113
|
+
window.addEventListener('dragover', onWindowFileDrag, true);
|
|
114
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
115
|
+
window.addEventListener('dragleave', onWindowFileDragLeave, true);
|
|
116
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
117
|
+
window.addEventListener('drop', onWindowFileDrop, true);
|
|
76
118
|
const cleanupDropTarget = dropTargetForExternal({
|
|
77
119
|
element,
|
|
78
120
|
canDrop: containsFiles,
|
|
@@ -98,6 +140,10 @@ const FileChooser = props => {
|
|
|
98
140
|
element.removeEventListener('dragenter', suppressNativeFileDrop);
|
|
99
141
|
element.removeEventListener('dragover', suppressNativeFileDrop);
|
|
100
142
|
element.removeEventListener('drop', suppressNativeFileDrop);
|
|
143
|
+
window.removeEventListener('dragenter', onWindowFileDrag, true);
|
|
144
|
+
window.removeEventListener('dragover', onWindowFileDrag, true);
|
|
145
|
+
window.removeEventListener('dragleave', onWindowFileDragLeave, true);
|
|
146
|
+
window.removeEventListener('drop', onWindowFileDrop, true);
|
|
101
147
|
cleanupDropTarget();
|
|
102
148
|
};
|
|
103
149
|
}, [isDropDisabled, handleFileDrop]);
|
|
@@ -119,6 +165,7 @@ const FileChooser = props => {
|
|
|
119
165
|
return /*#__PURE__*/React.createElement("div", {
|
|
120
166
|
ref: dropzoneRef,
|
|
121
167
|
"data-testid": dropzoneTestId,
|
|
168
|
+
"data-dragging": isDragging ? 'true' : undefined,
|
|
122
169
|
role: "region",
|
|
123
170
|
"aria-label": label,
|
|
124
171
|
className: ax(["_zulpu2gc _2rko1qi0 _189ee4h9 _1dqogq9o _1h6d1l7x _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _4t3i7l9q _u5f3utpp _19bvutpp _bfhkhfxm _80omtlke _k8m01rje _1oec1ign _6fl4574g", isDragging && "_1h6dq98m _bfhkufnl"])
|
|
@@ -272,11 +272,11 @@ var UnicodeEmojiImage = function UnicodeEmojiImage(props) {
|
|
|
272
272
|
});
|
|
273
273
|
};
|
|
274
274
|
export var UnicodeEmoji = function UnicodeEmoji(props) {
|
|
275
|
-
var _props$fitToHeight;
|
|
276
275
|
var emoji = props.emoji,
|
|
277
276
|
selected = props.selected,
|
|
278
277
|
selectOnHover = props.selectOnHover,
|
|
279
278
|
className = props.className,
|
|
279
|
+
fitToHeight = props.fitToHeight,
|
|
280
280
|
_props$renderUnicodeE = props.renderUnicodeEmojiAsImage,
|
|
281
281
|
renderUnicodeEmojiAsImage = _props$renderUnicodeE === void 0 ? true : _props$renderUnicodeE;
|
|
282
282
|
if (renderUnicodeEmojiAsImage) {
|
|
@@ -284,20 +284,14 @@ export var UnicodeEmoji = function UnicodeEmoji(props) {
|
|
|
284
284
|
}
|
|
285
285
|
var classes = "".concat(emojiNodeStyles, " ").concat(selected ? commonSelectedStyles : '', " ").concat(selectOnHover ? selectOnHoverStyles : '', " ").concat(className ? className : '');
|
|
286
286
|
var emojiText = emoji.representation.unicodeEmoji;
|
|
287
|
-
var
|
|
287
|
+
var defaultSize = "".concat(fitToHeight !== null && fitToHeight !== void 0 ? fitToHeight : defaultEmojiHeight, "px");
|
|
288
|
+
var emojiSize = "var(--emoji-common-unicode-size, ".concat(defaultSize, ")");
|
|
288
289
|
var style = {
|
|
289
|
-
display: 'inline-
|
|
290
|
-
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
291
|
-
fontSize: "max(1em, ".concat(size, "px)"),
|
|
292
|
-
width: "max(1em, ".concat(size, "px)"),
|
|
293
|
-
height: "max(1em, ".concat(size, "px)"),
|
|
294
|
-
textAlign: 'center',
|
|
295
|
-
alignContent: 'center',
|
|
296
|
-
alignSelf: 'center',
|
|
290
|
+
display: 'inline-flex',
|
|
297
291
|
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
292
|
+
fontSize: emojiSize,
|
|
293
|
+
alignItems: 'center',
|
|
294
|
+
aspectRatio: '1/1'
|
|
301
295
|
};
|
|
302
296
|
return (
|
|
303
297
|
/*#__PURE__*/
|
|
@@ -14,6 +14,10 @@ export var dropzoneTestId = 'file-dropzone';
|
|
|
14
14
|
var hasFilesInTransfer = function hasFilesInTransfer(dataTransfer) {
|
|
15
15
|
return !!(dataTransfer !== null && dataTransfer !== void 0 && dataTransfer.types) && Array.from(dataTransfer.types).includes('Files');
|
|
16
16
|
};
|
|
17
|
+
var isEventWithinElement = function isEventWithinElement(event, element) {
|
|
18
|
+
var rect = element.getBoundingClientRect();
|
|
19
|
+
return event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;
|
|
20
|
+
};
|
|
17
21
|
var dropzone = null;
|
|
18
22
|
var dropzoneActive = null;
|
|
19
23
|
var previewImageStyles = null;
|
|
@@ -67,10 +71,40 @@ var FileChooser = function FileChooser(props) {
|
|
|
67
71
|
}
|
|
68
72
|
var suppressNativeFileDrop = function suppressNativeFileDrop(event) {
|
|
69
73
|
if (!hasFilesInTransfer(event.dataTransfer)) {
|
|
70
|
-
return;
|
|
74
|
+
return false;
|
|
71
75
|
}
|
|
72
76
|
event.preventDefault();
|
|
73
77
|
event.stopPropagation();
|
|
78
|
+
return true;
|
|
79
|
+
};
|
|
80
|
+
var onWindowFileDrag = function onWindowFileDrag(event) {
|
|
81
|
+
if (!hasFilesInTransfer(event.dataTransfer)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
var isOverDropzone = isEventWithinElement(event, element);
|
|
85
|
+
if (isOverDropzone) {
|
|
86
|
+
suppressNativeFileDrop(event);
|
|
87
|
+
}
|
|
88
|
+
if (!isDropDisabled) {
|
|
89
|
+
setIsDragging(isOverDropzone);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
var onWindowFileDragLeave = function onWindowFileDragLeave(event) {
|
|
93
|
+
if (!hasFilesInTransfer(event.dataTransfer) || event.relatedTarget) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
setIsDragging(false);
|
|
97
|
+
};
|
|
98
|
+
var onWindowFileDrop = function onWindowFileDrop(event) {
|
|
99
|
+
if (!hasFilesInTransfer(event.dataTransfer) || !isEventWithinElement(event, element)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
suppressNativeFileDrop(event);
|
|
103
|
+
setIsDragging(false);
|
|
104
|
+
if (!isDropDisabled) {
|
|
105
|
+
var _event$dataTransfer$f, _event$dataTransfer;
|
|
106
|
+
handleFileDrop(Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []));
|
|
107
|
+
}
|
|
74
108
|
};
|
|
75
109
|
|
|
76
110
|
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
@@ -79,6 +113,14 @@ var FileChooser = function FileChooser(props) {
|
|
|
79
113
|
element.addEventListener('dragover', suppressNativeFileDrop);
|
|
80
114
|
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
81
115
|
element.addEventListener('drop', suppressNativeFileDrop);
|
|
116
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
117
|
+
window.addEventListener('dragenter', onWindowFileDrag, true);
|
|
118
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
119
|
+
window.addEventListener('dragover', onWindowFileDrag, true);
|
|
120
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
121
|
+
window.addEventListener('dragleave', onWindowFileDragLeave, true);
|
|
122
|
+
// eslint-disable-next-line @atlaskit/design-system/no-direct-use-of-web-platform-drag-and-drop
|
|
123
|
+
window.addEventListener('drop', onWindowFileDrop, true);
|
|
82
124
|
var cleanupDropTarget = dropTargetForExternal({
|
|
83
125
|
element: element,
|
|
84
126
|
canDrop: containsFiles,
|
|
@@ -105,6 +147,10 @@ var FileChooser = function FileChooser(props) {
|
|
|
105
147
|
element.removeEventListener('dragenter', suppressNativeFileDrop);
|
|
106
148
|
element.removeEventListener('dragover', suppressNativeFileDrop);
|
|
107
149
|
element.removeEventListener('drop', suppressNativeFileDrop);
|
|
150
|
+
window.removeEventListener('dragenter', onWindowFileDrag, true);
|
|
151
|
+
window.removeEventListener('dragover', onWindowFileDrag, true);
|
|
152
|
+
window.removeEventListener('dragleave', onWindowFileDragLeave, true);
|
|
153
|
+
window.removeEventListener('drop', onWindowFileDrop, true);
|
|
108
154
|
cleanupDropTarget();
|
|
109
155
|
};
|
|
110
156
|
}, [isDropDisabled, handleFileDrop]);
|
|
@@ -126,6 +172,7 @@ var FileChooser = function FileChooser(props) {
|
|
|
126
172
|
return /*#__PURE__*/React.createElement("div", {
|
|
127
173
|
ref: dropzoneRef,
|
|
128
174
|
"data-testid": dropzoneTestId,
|
|
175
|
+
"data-dragging": isDragging ? 'true' : undefined,
|
|
129
176
|
role: "region",
|
|
130
177
|
"aria-label": label,
|
|
131
178
|
className: ax(["_zulpu2gc _2rko1qi0 _189ee4h9 _1dqogq9o _1h6d1l7x _1e0c1txw _2lx21bp4 _4cvr1h6o _1bah1h6o _4t3i7l9q _u5f3utpp _19bvutpp _bfhkhfxm _80omtlke _k8m01rje _1oec1ign _6fl4574g", isDragging && "_1h6dq98m _bfhkufnl"])
|
|
@@ -14,7 +14,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
|
|
|
14
14
|
actionSubjectId: actionSubjectId,
|
|
15
15
|
attributes: _objectSpread({
|
|
16
16
|
packageName: "@atlaskit/emoji",
|
|
17
|
-
packageVersion: "71.2.
|
|
17
|
+
packageVersion: "71.2.2"
|
|
18
18
|
}, attributes)
|
|
19
19
|
};
|
|
20
20
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/emoji",
|
|
3
|
-
"version": "71.
|
|
3
|
+
"version": "71.3.0",
|
|
4
4
|
"description": "Fabric emoji React components",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@atlaskit/afm-i18n-platform-elements-emoji": "2.158.0",
|
|
33
33
|
"@atlaskit/analytics-next": "^12.0.0",
|
|
34
34
|
"@atlaskit/browser-apis": "^1.0.0",
|
|
35
|
-
"@atlaskit/button": "^24.
|
|
35
|
+
"@atlaskit/button": "^24.1.0",
|
|
36
36
|
"@atlaskit/css": "^1.0.0",
|
|
37
37
|
"@atlaskit/feature-gate-js-client": "^6.0.0",
|
|
38
38
|
"@atlaskit/form": "^16.0.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@atlaskit/radio": "^9.0.0",
|
|
49
49
|
"@atlaskit/spinner": "^20.0.0",
|
|
50
50
|
"@atlaskit/textfield": "^9.0.0",
|
|
51
|
-
"@atlaskit/tmp-editor-statsig": "^108.
|
|
51
|
+
"@atlaskit/tmp-editor-statsig": "^108.4.0",
|
|
52
52
|
"@atlaskit/tokens": "^14.0.0",
|
|
53
53
|
"@atlaskit/tooltip": "^23.0.0",
|
|
54
54
|
"@atlaskit/ufo": "^1.0.0",
|