@atlaskit/emoji 63.2.0 → 64.1.1
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 +67 -0
- package/dist/cjs/api/EmojiUtils.js +11 -6
- package/dist/cjs/api/internal/UsageFrequencyTracker.js +2 -2
- package/dist/cjs/api/media/SiteEmojiResource.js +5 -3
- package/dist/cjs/components/common/CachingEmoji.js +5 -2
- package/dist/cjs/components/common/DeleteButton.js +1 -1
- package/dist/cjs/components/common/Emoji.js +37 -16
- package/dist/cjs/components/common/EmojiActions.js +233 -0
- package/dist/cjs/components/common/EmojiDeletePreview.js +22 -23
- package/dist/cjs/components/common/EmojiPlaceholder.js +3 -10
- package/dist/cjs/components/common/EmojiPreview.js +24 -24
- package/dist/cjs/components/common/EmojiUploadPicker.js +76 -72
- package/dist/cjs/components/common/EmojiUploadPreview.js +17 -15
- package/dist/cjs/components/common/ResourcedEmoji.js +3 -1
- package/dist/cjs/components/common/RetryableButton.js +2 -2
- package/dist/cjs/components/common/styles.js +22 -25
- package/dist/cjs/components/i18n.js +2 -2
- package/dist/cjs/components/picker/CategorySelector.js +21 -16
- package/dist/cjs/components/picker/EmojiPicker.js +3 -1
- package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +2 -2
- package/dist/cjs/components/picker/EmojiPickerComponent.js +12 -31
- package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +2 -1
- package/dist/cjs/components/picker/EmojiPickerFooter.js +7 -49
- package/dist/cjs/components/picker/EmojiPickerList.js +38 -12
- package/dist/cjs/components/picker/EmojiPickerListSearch.js +25 -26
- package/dist/cjs/components/picker/EmojiPickerPreview.js +87 -0
- package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +7 -6
- package/dist/cjs/components/picker/styles.js +21 -16
- package/dist/cjs/components/typeahead/EmojiTypeAhead.js +3 -1
- package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +3 -3
- package/dist/cjs/components/typeahead/styles.js +2 -2
- package/dist/cjs/components/uploader/EmojiUploadComponent.js +2 -2
- package/dist/cjs/components/uploader/EmojiUploader.js +3 -1
- package/dist/cjs/components/uploader/styles.js +1 -1
- package/dist/cjs/util/analytics.js +2 -2
- package/dist/cjs/util/shared-styles.js +6 -6
- package/dist/cjs/util/type-helpers.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/components/common/DeleteButton.js +1 -1
- package/dist/es2019/components/common/Emoji.js +33 -13
- package/dist/es2019/components/common/EmojiActions.js +178 -0
- package/dist/es2019/components/common/EmojiDeletePreview.js +16 -9
- package/dist/es2019/components/common/EmojiPlaceholder.js +3 -7
- package/dist/es2019/components/common/EmojiPreview.js +21 -16
- package/dist/es2019/components/common/EmojiUploadPicker.js +22 -13
- package/dist/es2019/components/common/EmojiUploadPreview.js +14 -7
- package/dist/es2019/components/common/RetryableButton.js +1 -1
- package/dist/es2019/components/common/styles.js +19 -24
- package/dist/es2019/components/i18n.js +1 -1
- package/dist/es2019/components/picker/CategorySelector.js +13 -6
- package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +1 -1
- package/dist/es2019/components/picker/EmojiPickerComponent.js +9 -30
- package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +2 -1
- package/dist/es2019/components/picker/EmojiPickerFooter.js +6 -46
- package/dist/es2019/components/picker/EmojiPickerList.js +36 -10
- package/dist/es2019/components/picker/EmojiPickerListSearch.js +15 -8
- package/dist/es2019/components/picker/EmojiPickerPreview.js +43 -0
- package/dist/es2019/components/picker/styles.js +18 -14
- package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +2 -2
- package/dist/es2019/components/typeahead/styles.js +2 -2
- package/dist/es2019/components/uploader/EmojiUploadComponent.js +3 -3
- package/dist/es2019/components/uploader/styles.js +1 -1
- package/dist/es2019/util/shared-styles.js +6 -6
- package/dist/es2019/version.json +1 -1
- package/dist/esm/api/EmojiUtils.js +10 -6
- package/dist/esm/api/internal/UsageFrequencyTracker.js +2 -2
- package/dist/esm/api/media/SiteEmojiResource.js +4 -3
- package/dist/esm/components/common/CachingEmoji.js +4 -2
- package/dist/esm/components/common/DeleteButton.js +1 -1
- package/dist/esm/components/common/Emoji.js +37 -15
- package/dist/esm/components/common/EmojiActions.js +200 -0
- package/dist/esm/components/common/EmojiDeletePreview.js +18 -21
- package/dist/esm/components/common/EmojiPlaceholder.js +3 -7
- package/dist/esm/components/common/EmojiPreview.js +19 -24
- package/dist/esm/components/common/EmojiUploadPicker.js +70 -71
- package/dist/esm/components/common/EmojiUploadPreview.js +13 -13
- package/dist/esm/components/common/ResourcedEmoji.js +2 -1
- package/dist/esm/components/common/RetryableButton.js +1 -1
- package/dist/esm/components/common/styles.js +19 -22
- package/dist/esm/components/i18n.js +1 -1
- package/dist/esm/components/picker/CategorySelector.js +17 -15
- package/dist/esm/components/picker/EmojiPicker.js +2 -1
- package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +1 -1
- package/dist/esm/components/picker/EmojiPickerComponent.js +11 -32
- package/dist/esm/components/picker/EmojiPickerEmojiRow.js +2 -1
- package/dist/esm/components/picker/EmojiPickerFooter.js +6 -46
- package/dist/esm/components/picker/EmojiPickerList.js +38 -12
- package/dist/esm/components/picker/EmojiPickerListSearch.js +21 -25
- package/dist/esm/components/picker/EmojiPickerPreview.js +67 -0
- package/dist/esm/components/picker/EmojiPickerVirtualItems.js +6 -5
- package/dist/esm/components/picker/styles.js +18 -14
- package/dist/esm/components/typeahead/EmojiTypeAhead.js +2 -1
- package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +2 -2
- package/dist/esm/components/typeahead/styles.js +2 -2
- package/dist/esm/components/uploader/EmojiUploadComponent.js +3 -3
- package/dist/esm/components/uploader/EmojiUploader.js +2 -1
- package/dist/esm/components/uploader/styles.js +1 -1
- package/dist/esm/util/analytics.js +2 -2
- package/dist/esm/util/shared-styles.js +6 -6
- package/dist/esm/util/type-helpers.js +2 -2
- package/dist/esm/version.json +1 -1
- package/dist/types/components/common/Emoji.d.ts +2 -0
- package/dist/types/components/common/EmojiActions.d.ts +43 -0
- package/dist/types/components/common/EmojiDeletePreview.d.ts +6 -8
- package/dist/types/components/common/EmojiPlaceholder.d.ts +1 -0
- package/dist/types/components/common/EmojiPreview.d.ts +7 -1
- package/dist/types/components/common/EmojiUploadPicker.d.ts +11 -4
- package/dist/types/components/common/EmojiUploadPreview.d.ts +6 -4
- package/dist/types/components/common/UploadEmoji.d.ts +2 -2
- package/dist/types/components/common/styles.d.ts +1 -1
- package/dist/types/components/picker/CategorySelector.d.ts +5 -11
- package/dist/types/components/picker/EmojiPickerComponent.d.ts +2 -5
- package/dist/types/components/picker/EmojiPickerFooter.d.ts +3 -19
- package/dist/types/components/picker/EmojiPickerList.d.ts +17 -3
- package/dist/types/components/picker/EmojiPickerListSearch.d.ts +6 -15
- package/dist/types/components/picker/EmojiPickerPreview.d.ts +9 -0
- package/dist/types/components/picker/styles.d.ts +1 -0
- package/dist/types/components/uploader/EmojiUploadComponent.d.ts +2 -2
- package/dist/types/util/shared-styles.d.ts +6 -6
- package/package.json +10 -10
|
@@ -2,9 +2,9 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
|
2
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
|
|
5
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
5
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
|
|
7
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
7
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8
8
|
|
|
9
9
|
import { isEmojiVariationDescription } from '../../util/type-helpers';
|
|
10
10
|
import { localStoragePrefix } from '../../util/constants';
|
|
@@ -2,10 +2,11 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
2
2
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
3
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
+
var _excluded = ["altRepresentations"];
|
|
5
6
|
|
|
6
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
7
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
8
|
|
|
8
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
10
|
|
|
10
11
|
import { utils as serviceUtils } from '@atlaskit/util-service-support';
|
|
11
12
|
import { getMediaClient } from '@atlaskit/media-client';
|
|
@@ -50,7 +51,7 @@ var SiteEmojiResource = /*#__PURE__*/function () {
|
|
|
50
51
|
if (emojis.length) {
|
|
51
52
|
var _emojis$ = emojis[0],
|
|
52
53
|
altRepresentations = _emojis$.altRepresentations,
|
|
53
|
-
emoji = _objectWithoutProperties(_emojis$,
|
|
54
|
+
emoji = _objectWithoutProperties(_emojis$, _excluded);
|
|
54
55
|
|
|
55
56
|
var _response = _objectSpread(_objectSpread({}, emoji), {}, {
|
|
56
57
|
representation: convertImageToMediaRepresentation(emoji.representation)
|
|
@@ -7,6 +7,8 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
7
7
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
9
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
10
|
+
var _excluded = ["placeholderSize"],
|
|
11
|
+
_excluded2 = ["children", "placeholderSize"];
|
|
10
12
|
|
|
11
13
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
12
14
|
|
|
@@ -28,7 +30,7 @@ export var CachingEmoji = function CachingEmoji(props) {
|
|
|
28
30
|
// Optimisation to only render the class based CachingMediaEmoji if necessary
|
|
29
31
|
// slight performance hit, which accumulates for a large number of emoji.
|
|
30
32
|
var placeholderSize = props.placeholderSize,
|
|
31
|
-
emojiProps = _objectWithoutProperties(props,
|
|
33
|
+
emojiProps = _objectWithoutProperties(props, _excluded);
|
|
32
34
|
|
|
33
35
|
if (isMediaEmoji(props.emoji)) {
|
|
34
36
|
return /*#__PURE__*/React.createElement(CachingMediaEmoji, props);
|
|
@@ -155,7 +157,7 @@ export var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
|
|
|
155
157
|
var _this$props = this.props,
|
|
156
158
|
children = _this$props.children,
|
|
157
159
|
placeholderSize = _this$props.placeholderSize,
|
|
158
|
-
otherProps = _objectWithoutProperties(_this$props,
|
|
160
|
+
otherProps = _objectWithoutProperties(_this$props, _excluded2);
|
|
159
161
|
|
|
160
162
|
var emojiComponent;
|
|
161
163
|
|
|
@@ -12,7 +12,7 @@ var DeleteButton = function DeleteButton(props) {
|
|
|
12
12
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
13
13
|
iconBefore: /*#__PURE__*/React.createElement(CrossCircleIcon, {
|
|
14
14
|
label: deleteEmojiLabel,
|
|
15
|
-
primaryColor: token('color.text.
|
|
15
|
+
primaryColor: token('color.text.subtle', N500),
|
|
16
16
|
size: "small"
|
|
17
17
|
}),
|
|
18
18
|
onClick: props.onClick,
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
3
|
|
|
4
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
4
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
5
|
|
|
6
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
6
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
7
|
|
|
8
|
-
import Tooltip from '@atlaskit/tooltip';
|
|
9
8
|
import classNames from 'classnames';
|
|
10
9
|
import React from 'react';
|
|
11
10
|
import { shouldUseAltRepresentation } from '../../api/EmojiUtils';
|
|
@@ -30,6 +29,21 @@ var handleMouseDown = function handleMouseDown(props, event) {
|
|
|
30
29
|
}
|
|
31
30
|
};
|
|
32
31
|
|
|
32
|
+
var handleKeyPress = function handleKeyPress(props, event) {
|
|
33
|
+
// Clicked emoji delete button
|
|
34
|
+
if (event.target instanceof Element && event.target.getAttribute('aria-label') === deleteEmojiLabel) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var emoji = props.emoji,
|
|
39
|
+
onSelected = props.onSelected;
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
|
|
42
|
+
if (onSelected && (event.key === 'Enter' || event.key === ' ')) {
|
|
43
|
+
onSelected(toEmojiId(emoji), emoji, event);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
33
47
|
var handleMouseMove = function handleMouseMove(props, event) {
|
|
34
48
|
var emoji = props.emoji,
|
|
35
49
|
onMouseMove = props.onMouseMove;
|
|
@@ -72,7 +86,8 @@ var renderAsSprite = function renderAsSprite(props) {
|
|
|
72
86
|
selected = props.selected,
|
|
73
87
|
selectOnHover = props.selectOnHover,
|
|
74
88
|
className = props.className,
|
|
75
|
-
showTooltip = props.showTooltip
|
|
89
|
+
showTooltip = props.showTooltip,
|
|
90
|
+
shouldBeInteractive = props.shouldBeInteractive;
|
|
76
91
|
var representation = emoji.representation;
|
|
77
92
|
var sprite = representation.sprite;
|
|
78
93
|
var classes = (_classes = {}, _defineProperty(_classes, styles.emojiContainer, true), _defineProperty(_classes, styles.emojiNode, true), _defineProperty(_classes, styles.selected, selected), _defineProperty(_classes, styles.selectOnHover, selectOnHover), _classes);
|
|
@@ -104,18 +119,21 @@ var renderAsSprite = function renderAsSprite(props) {
|
|
|
104
119
|
style: style
|
|
105
120
|
}, "\xA0");
|
|
106
121
|
return /*#__PURE__*/React.createElement("span", {
|
|
122
|
+
tabIndex: shouldBeInteractive ? 0 : undefined,
|
|
123
|
+
role: shouldBeInteractive ? 'button' : undefined,
|
|
107
124
|
className: classNames(classes),
|
|
125
|
+
onKeyPress: function onKeyPress(event) {
|
|
126
|
+
return handleKeyPress(props, event);
|
|
127
|
+
},
|
|
108
128
|
onMouseDown: function onMouseDown(event) {
|
|
109
129
|
handleMouseDown(props, event);
|
|
110
130
|
},
|
|
111
131
|
onMouseMove: function onMouseMove(event) {
|
|
112
132
|
handleMouseMove(props, event);
|
|
113
133
|
},
|
|
114
|
-
"aria-label": emoji.shortName
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
content: emoji.shortName
|
|
118
|
-
}, emojiNode) : emojiNode);
|
|
134
|
+
"aria-label": emoji.shortName,
|
|
135
|
+
title: showTooltip ? emoji.shortName : ''
|
|
136
|
+
}, emojiNode);
|
|
119
137
|
}; // Keep as pure functional component, see renderAsSprite.
|
|
120
138
|
|
|
121
139
|
|
|
@@ -128,7 +146,8 @@ var renderAsImage = function renderAsImage(props) {
|
|
|
128
146
|
selectOnHover = props.selectOnHover,
|
|
129
147
|
className = props.className,
|
|
130
148
|
showTooltip = props.showTooltip,
|
|
131
|
-
showDelete = props.showDelete
|
|
149
|
+
showDelete = props.showDelete,
|
|
150
|
+
shouldBeInteractive = props.shouldBeInteractive;
|
|
132
151
|
var classes = (_classes2 = {}, _defineProperty(_classes2, styles.emoji, true), _defineProperty(_classes2, styles.emojiNode, true), _defineProperty(_classes2, styles.selected, selected), _defineProperty(_classes2, styles.selectOnHover, selectOnHover), _defineProperty(_classes2, styles.emojiImage, true), _classes2);
|
|
133
152
|
|
|
134
153
|
if (className) {
|
|
@@ -195,18 +214,21 @@ var renderAsImage = function renderAsImage(props) {
|
|
|
195
214
|
onError: onError
|
|
196
215
|
}, sizing));
|
|
197
216
|
return /*#__PURE__*/React.createElement("span", {
|
|
217
|
+
tabIndex: shouldBeInteractive ? 0 : undefined,
|
|
218
|
+
role: shouldBeInteractive ? 'button' : undefined,
|
|
198
219
|
className: classNames(classes),
|
|
220
|
+
onKeyPress: function onKeyPress(event) {
|
|
221
|
+
return handleKeyPress(props, event);
|
|
222
|
+
},
|
|
199
223
|
onMouseDown: function onMouseDown(event) {
|
|
200
224
|
handleMouseDown(props, event);
|
|
201
225
|
},
|
|
202
226
|
onMouseMove: function onMouseMove(event) {
|
|
203
227
|
handleMouseMove(props, event);
|
|
204
228
|
},
|
|
205
|
-
"aria-label": emoji.shortName
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
content: emoji.shortName
|
|
209
|
-
}, emojiNode) : emojiNode);
|
|
229
|
+
"aria-label": emoji.shortName,
|
|
230
|
+
title: showTooltip ? emoji.shortName : ''
|
|
231
|
+
}, deleteButton, emojiNode);
|
|
210
232
|
};
|
|
211
233
|
|
|
212
234
|
export var Emoji = function Emoji(props) {
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
4
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
+
|
|
9
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
+
|
|
11
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
|
+
|
|
13
|
+
import classNames from 'classnames';
|
|
14
|
+
import React from 'react';
|
|
15
|
+
import { PureComponent } from 'react';
|
|
16
|
+
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
17
|
+
import EmojiDeletePreview from '../common/EmojiDeletePreview';
|
|
18
|
+
import EmojiUploadPicker from '../common/EmojiUploadPicker';
|
|
19
|
+
import * as styles from './styles';
|
|
20
|
+
import * as footerStyles from '../picker/styles';
|
|
21
|
+
import EmojiPickerListSearch from '../picker/EmojiPickerListSearch';
|
|
22
|
+
import ToneSelector from './ToneSelector';
|
|
23
|
+
import EmojiButton from './EmojiButton';
|
|
24
|
+
import { messages } from '../i18n';
|
|
25
|
+
import AkButton from '@atlaskit/button/standard-button';
|
|
26
|
+
import AddIcon from '@atlaskit/icon/glyph/add';
|
|
27
|
+
import { setSkinToneAriaLabelText } from './setSkinToneAriaLabelText';
|
|
28
|
+
export var EmojiActions = /*#__PURE__*/function (_PureComponent) {
|
|
29
|
+
_inherits(EmojiActions, _PureComponent);
|
|
30
|
+
|
|
31
|
+
var _super = _createSuper(EmojiActions);
|
|
32
|
+
|
|
33
|
+
function EmojiActions() {
|
|
34
|
+
var _this;
|
|
35
|
+
|
|
36
|
+
_classCallCheck(this, EmojiActions);
|
|
37
|
+
|
|
38
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
39
|
+
args[_key] = arguments[_key];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
43
|
+
|
|
44
|
+
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
45
|
+
selectingTone: false
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
_defineProperty(_assertThisInitialized(_this), "onToneButtonClick", function () {
|
|
49
|
+
_this.setState({
|
|
50
|
+
selectingTone: !_this.state.selectingTone
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
_defineProperty(_assertThisInitialized(_this), "onToneSelected", function (toneValue) {
|
|
55
|
+
_this.setState({
|
|
56
|
+
selectingTone: false
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
if (_this.props.onToneSelected) {
|
|
60
|
+
_this.props.onToneSelected(toneValue);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
_defineProperty(_assertThisInitialized(_this), "onMouseLeave", function () {
|
|
65
|
+
var selectingTone = _this.state.selectingTone;
|
|
66
|
+
var onToneSelectorCancelled = _this.props.onToneSelectorCancelled;
|
|
67
|
+
|
|
68
|
+
if (selectingTone && onToneSelectorCancelled) {
|
|
69
|
+
onToneSelectorCancelled();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
_this.setState({
|
|
73
|
+
selectingTone: false
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
return _this;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
_createClass(EmojiActions, [{
|
|
81
|
+
key: "renderTones",
|
|
82
|
+
value: function renderTones() {
|
|
83
|
+
var _this$props = this.props,
|
|
84
|
+
toneEmoji = _this$props.toneEmoji,
|
|
85
|
+
selectedTone = _this$props.selectedTone,
|
|
86
|
+
intl = _this$props.intl;
|
|
87
|
+
var formatMessage = intl.formatMessage;
|
|
88
|
+
|
|
89
|
+
if (!toneEmoji) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var previewEmoji = toneEmoji;
|
|
94
|
+
|
|
95
|
+
if (selectedTone && previewEmoji.skinVariations) {
|
|
96
|
+
previewEmoji = previewEmoji.skinVariations[(selectedTone || 1) - 1];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
100
|
+
className: styles.emojiToneSelectorContainer
|
|
101
|
+
}, this.state.selectingTone && /*#__PURE__*/React.createElement(ToneSelector, {
|
|
102
|
+
emoji: toneEmoji,
|
|
103
|
+
onToneSelected: this.onToneSelected,
|
|
104
|
+
previewEmojiId: previewEmoji.id
|
|
105
|
+
}), /*#__PURE__*/React.createElement(EmojiButton, {
|
|
106
|
+
ariaExpanded: this.state.selectingTone,
|
|
107
|
+
emoji: previewEmoji,
|
|
108
|
+
selectOnHover: true,
|
|
109
|
+
onSelected: this.onToneButtonClick,
|
|
110
|
+
ariaLabelText: formatMessage(messages.emojiSelectSkinToneButtonAriaLabelText, {
|
|
111
|
+
selectedTone: "".concat(setSkinToneAriaLabelText(previewEmoji.name), " selected")
|
|
112
|
+
})
|
|
113
|
+
}));
|
|
114
|
+
} // note: emoji-picker-add-emoji className is used by pollinator synthetic checks
|
|
115
|
+
|
|
116
|
+
}, {
|
|
117
|
+
key: "renderAddOwnEmoji",
|
|
118
|
+
value: function renderAddOwnEmoji() {
|
|
119
|
+
var _this$props2 = this.props,
|
|
120
|
+
onOpenUpload = _this$props2.onOpenUpload,
|
|
121
|
+
uploadEnabled = _this$props2.uploadEnabled,
|
|
122
|
+
intl = _this$props2.intl;
|
|
123
|
+
var formatMessage = intl.formatMessage;
|
|
124
|
+
|
|
125
|
+
if (!uploadEnabled) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
130
|
+
className: styles.AddCustomEmoji
|
|
131
|
+
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.addCustomEmojiLabel, function (label) {
|
|
132
|
+
return /*#__PURE__*/React.createElement(AkButton, {
|
|
133
|
+
onClick: onOpenUpload,
|
|
134
|
+
iconBefore: /*#__PURE__*/React.createElement(AddIcon, {
|
|
135
|
+
label: formatMessage(messages.addCustomEmojiLabel),
|
|
136
|
+
size: "small"
|
|
137
|
+
}),
|
|
138
|
+
appearance: "subtle",
|
|
139
|
+
className: styles.addCustomEmojiButton + ' emoji-picker-add-emoji'
|
|
140
|
+
}, label);
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
}, {
|
|
144
|
+
key: "render",
|
|
145
|
+
value: function render() {
|
|
146
|
+
var _this$props3 = this.props,
|
|
147
|
+
initialUploadName = _this$props3.initialUploadName,
|
|
148
|
+
onUploadCancelled = _this$props3.onUploadCancelled,
|
|
149
|
+
onUploadEmoji = _this$props3.onUploadEmoji,
|
|
150
|
+
onCloseDelete = _this$props3.onCloseDelete,
|
|
151
|
+
onDeleteEmoji = _this$props3.onDeleteEmoji,
|
|
152
|
+
uploadErrorMessage = _this$props3.uploadErrorMessage,
|
|
153
|
+
uploading = _this$props3.uploading,
|
|
154
|
+
onFileChooserClicked = _this$props3.onFileChooserClicked,
|
|
155
|
+
emojiToDelete = _this$props3.emojiToDelete,
|
|
156
|
+
onChange = _this$props3.onChange,
|
|
157
|
+
query = _this$props3.query;
|
|
158
|
+
var previewFooterClassnames = classNames([footerStyles.emojiPickerFooter, footerStyles.emojiActionsContainerWithBottomShadow]);
|
|
159
|
+
|
|
160
|
+
if (uploading) {
|
|
161
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
162
|
+
className: previewFooterClassnames
|
|
163
|
+
}, /*#__PURE__*/React.createElement(EmojiUploadPicker, {
|
|
164
|
+
onUploadCancelled: onUploadCancelled,
|
|
165
|
+
onUploadEmoji: onUploadEmoji,
|
|
166
|
+
onFileChooserClicked: onFileChooserClicked,
|
|
167
|
+
errorMessage: uploadErrorMessage,
|
|
168
|
+
initialUploadName: initialUploadName
|
|
169
|
+
}));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
if (emojiToDelete) {
|
|
173
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
174
|
+
className: previewFooterClassnames
|
|
175
|
+
}, /*#__PURE__*/React.createElement(EmojiDeletePreview, {
|
|
176
|
+
emoji: emojiToDelete,
|
|
177
|
+
onDeleteEmoji: onDeleteEmoji,
|
|
178
|
+
onCloseDelete: onCloseDelete
|
|
179
|
+
}));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
183
|
+
className: previewFooterClassnames,
|
|
184
|
+
onMouseLeave: this.onMouseLeave
|
|
185
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
186
|
+
style: {
|
|
187
|
+
display: 'flex',
|
|
188
|
+
justifyContent: 'flex-end',
|
|
189
|
+
alignItems: 'center'
|
|
190
|
+
}
|
|
191
|
+
}, !this.state.selectingTone && /*#__PURE__*/React.createElement(EmojiPickerListSearch, {
|
|
192
|
+
onChange: onChange,
|
|
193
|
+
query: query
|
|
194
|
+
}), this.renderTones()), this.renderAddOwnEmoji());
|
|
195
|
+
}
|
|
196
|
+
}]);
|
|
197
|
+
|
|
198
|
+
return EmojiActions;
|
|
199
|
+
}(PureComponent);
|
|
200
|
+
export default injectIntl(EmojiActions);
|
|
@@ -14,7 +14,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
14
14
|
import AkButton from '@atlaskit/button/custom-theme-button';
|
|
15
15
|
import React from 'react';
|
|
16
16
|
import { Component } from 'react';
|
|
17
|
-
import { FormattedMessage } from 'react-intl';
|
|
17
|
+
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
18
18
|
import { messages } from '../i18n';
|
|
19
19
|
import CachingEmoji from './CachingEmoji';
|
|
20
20
|
import EmojiErrorMessage from './EmojiErrorMessage';
|
|
@@ -81,12 +81,13 @@ var EmojiDeletePreview = /*#__PURE__*/function (_Component) {
|
|
|
81
81
|
}, {
|
|
82
82
|
key: "render",
|
|
83
83
|
value: function render() {
|
|
84
|
-
var
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
var _this$props2 = this.props,
|
|
85
|
+
emoji = _this$props2.emoji,
|
|
86
|
+
intl = _this$props2.intl;
|
|
87
87
|
var _this$state = this.state,
|
|
88
88
|
loading = _this$state.loading,
|
|
89
89
|
error = _this$state.error;
|
|
90
|
+
var formatMessage = intl.formatMessage;
|
|
90
91
|
return /*#__PURE__*/React.createElement("div", {
|
|
91
92
|
className: styles.deletePreview
|
|
92
93
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -101,22 +102,18 @@ var EmojiDeletePreview = /*#__PURE__*/function (_Component) {
|
|
|
101
102
|
emoji: emoji
|
|
102
103
|
}), /*#__PURE__*/React.createElement("div", {
|
|
103
104
|
className: styles.previewButtonGroup
|
|
104
|
-
}, error ? /*#__PURE__*/React.createElement(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
appearance: "danger",
|
|
117
|
-
loading: loading,
|
|
118
|
-
error: error
|
|
119
|
-
});
|
|
105
|
+
}, error ? !loading ? /*#__PURE__*/React.createElement(EmojiErrorMessage, {
|
|
106
|
+
message: formatMessage(messages.deleteEmojiFailed),
|
|
107
|
+
className: styles.emojiDeleteErrorMessage,
|
|
108
|
+
tooltip: true
|
|
109
|
+
}) : null : null, /*#__PURE__*/React.createElement(RetryableButton, {
|
|
110
|
+
className: styles.uploadEmojiButton,
|
|
111
|
+
retryClassName: styles.uploadRetryButton,
|
|
112
|
+
label: formatMessage(messages.deleteEmojiLabel),
|
|
113
|
+
onSubmit: this.onSubmit,
|
|
114
|
+
appearance: "danger",
|
|
115
|
+
loading: loading,
|
|
116
|
+
error: error
|
|
120
117
|
}), /*#__PURE__*/React.createElement(AkButton, {
|
|
121
118
|
appearance: "subtle",
|
|
122
119
|
onClick: this.onCancel,
|
|
@@ -128,4 +125,4 @@ var EmojiDeletePreview = /*#__PURE__*/function (_Component) {
|
|
|
128
125
|
return EmojiDeletePreview;
|
|
129
126
|
}(Component);
|
|
130
127
|
|
|
131
|
-
export
|
|
128
|
+
export default injectIntl(EmojiDeletePreview);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
|
-
import Tooltip from '@atlaskit/tooltip';
|
|
5
4
|
import { placeholder, placeholderContainer } from './styles';
|
|
6
5
|
import { defaultEmojiHeight } from '../../util/constants';
|
|
7
6
|
import { isImageRepresentation, isMediaRepresentation } from '../../util/type-helpers';
|
|
@@ -35,15 +34,12 @@ var EmojiPlaceholder = function EmojiPlaceholder(props) {
|
|
|
35
34
|
height: "".concat(height, "px")
|
|
36
35
|
};
|
|
37
36
|
var classes = (_classes = {}, _defineProperty(_classes, placeholder, true), _defineProperty(_classes, placeholderContainer, true), _classes);
|
|
38
|
-
|
|
37
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
39
38
|
"aria-label": shortName,
|
|
40
39
|
className: classNames(classes),
|
|
41
|
-
style: style
|
|
40
|
+
style: style,
|
|
41
|
+
title: showTooltip ? shortName : ''
|
|
42
42
|
});
|
|
43
|
-
return showTooltip ? /*#__PURE__*/React.createElement(Tooltip, {
|
|
44
|
-
tag: "span",
|
|
45
|
-
content: shortName
|
|
46
|
-
}, placeholderNode) : placeholderNode;
|
|
47
43
|
};
|
|
48
44
|
|
|
49
45
|
export default EmojiPlaceholder;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
1
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
3
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
@@ -16,15 +15,14 @@ import AddIcon from '@atlaskit/icon/glyph/add';
|
|
|
16
15
|
import classNames from 'classnames';
|
|
17
16
|
import React from 'react';
|
|
18
17
|
import { PureComponent } from 'react';
|
|
19
|
-
import { FormattedMessage } from 'react-intl';
|
|
18
|
+
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
20
19
|
import CachingEmoji from '../../components/common/CachingEmoji';
|
|
21
20
|
import EmojiButton from '../../components/common/EmojiButton';
|
|
22
21
|
import { messages } from '../i18n';
|
|
23
22
|
import * as styles from './styles';
|
|
24
23
|
import ToneSelector from './ToneSelector';
|
|
25
24
|
import { setSkinToneAriaLabelText } from './setSkinToneAriaLabelText';
|
|
26
|
-
|
|
27
|
-
var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
25
|
+
export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
28
26
|
_inherits(EmojiPreview, _PureComponent);
|
|
29
27
|
|
|
30
28
|
var _super = _createSuper(EmojiPreview);
|
|
@@ -79,11 +77,11 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
79
77
|
_createClass(EmojiPreview, [{
|
|
80
78
|
key: "renderTones",
|
|
81
79
|
value: function renderTones() {
|
|
82
|
-
var _this2 = this;
|
|
83
|
-
|
|
84
80
|
var _this$props = this.props,
|
|
85
81
|
toneEmoji = _this$props.toneEmoji,
|
|
86
|
-
selectedTone = _this$props.selectedTone
|
|
82
|
+
selectedTone = _this$props.selectedTone,
|
|
83
|
+
intl = _this$props.intl;
|
|
84
|
+
var formatMessage = intl.formatMessage;
|
|
87
85
|
|
|
88
86
|
if (!toneEmoji) {
|
|
89
87
|
return null;
|
|
@@ -101,24 +99,20 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
101
99
|
emoji: toneEmoji,
|
|
102
100
|
onToneSelected: this.onToneSelected,
|
|
103
101
|
previewEmojiId: previewEmoji.id
|
|
104
|
-
}), /*#__PURE__*/React.createElement(
|
|
105
|
-
|
|
102
|
+
}), /*#__PURE__*/React.createElement(EmojiButton, {
|
|
103
|
+
ariaExpanded: this.state.selectingTone,
|
|
104
|
+
emoji: previewEmoji,
|
|
105
|
+
selectOnHover: true,
|
|
106
|
+
onSelected: this.onToneButtonClick,
|
|
107
|
+
ariaLabelText: formatMessage(messages.emojiSelectSkinToneButtonAriaLabelText, {
|
|
106
108
|
selectedTone: "".concat(setSkinToneAriaLabelText(previewEmoji.name), " selected")
|
|
107
|
-
}
|
|
108
|
-
}), function (ariaLabel) {
|
|
109
|
-
return /*#__PURE__*/React.createElement(EmojiButton, {
|
|
110
|
-
ariaExpanded: _this2.state.selectingTone,
|
|
111
|
-
emoji: previewEmoji,
|
|
112
|
-
selectOnHover: true,
|
|
113
|
-
onSelected: _this2.onToneButtonClick,
|
|
114
|
-
ariaLabelText: ariaLabel
|
|
115
|
-
});
|
|
109
|
+
})
|
|
116
110
|
}));
|
|
117
111
|
}
|
|
118
112
|
}, {
|
|
119
113
|
key: "renderEmojiPreview",
|
|
120
114
|
value: function renderEmojiPreview() {
|
|
121
|
-
var
|
|
115
|
+
var _classNames2;
|
|
122
116
|
|
|
123
117
|
var selectingTone = this.state.selectingTone;
|
|
124
118
|
var _this$props2 = this.props,
|
|
@@ -129,7 +123,7 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
129
123
|
return null;
|
|
130
124
|
}
|
|
131
125
|
|
|
132
|
-
var previewClasses = classNames((
|
|
126
|
+
var previewClasses = classNames(_defineProperty({}, styles.preview, true));
|
|
133
127
|
var previewTextClasses = classNames((_classNames2 = {}, _defineProperty(_classNames2, styles.previewText, true), _defineProperty(_classNames2, styles.previewSingleLine, !emoji.name), _classNames2));
|
|
134
128
|
return /*#__PURE__*/React.createElement("div", {
|
|
135
129
|
className: previewClasses
|
|
@@ -151,8 +145,10 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
151
145
|
value: function renderAddOwnEmoji() {
|
|
152
146
|
var _this$props3 = this.props,
|
|
153
147
|
onOpenUpload = _this$props3.onOpenUpload,
|
|
154
|
-
uploadEnabled = _this$props3.uploadEnabled
|
|
148
|
+
uploadEnabled = _this$props3.uploadEnabled,
|
|
149
|
+
intl = _this$props3.intl;
|
|
155
150
|
var selectingTone = this.state.selectingTone;
|
|
151
|
+
var formatMessage = intl.formatMessage;
|
|
156
152
|
|
|
157
153
|
if (!uploadEnabled || selectingTone) {
|
|
158
154
|
return null;
|
|
@@ -164,7 +160,7 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
164
160
|
return /*#__PURE__*/React.createElement(AkButton, {
|
|
165
161
|
onClick: onOpenUpload,
|
|
166
162
|
iconBefore: /*#__PURE__*/React.createElement(AddIcon, {
|
|
167
|
-
label:
|
|
163
|
+
label: formatMessage(messages.addCustomEmojiLabel),
|
|
168
164
|
size: "small"
|
|
169
165
|
}),
|
|
170
166
|
appearance: "subtle",
|
|
@@ -185,5 +181,4 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
|
|
|
185
181
|
|
|
186
182
|
return EmojiPreview;
|
|
187
183
|
}(PureComponent);
|
|
188
|
-
|
|
189
|
-
export { EmojiPreview as default };
|
|
184
|
+
export default injectIntl(EmojiPreview);
|