@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.
Files changed (120) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/cjs/api/EmojiUtils.js +11 -6
  3. package/dist/cjs/api/internal/UsageFrequencyTracker.js +2 -2
  4. package/dist/cjs/api/media/SiteEmojiResource.js +5 -3
  5. package/dist/cjs/components/common/CachingEmoji.js +5 -2
  6. package/dist/cjs/components/common/DeleteButton.js +1 -1
  7. package/dist/cjs/components/common/Emoji.js +37 -16
  8. package/dist/cjs/components/common/EmojiActions.js +233 -0
  9. package/dist/cjs/components/common/EmojiDeletePreview.js +22 -23
  10. package/dist/cjs/components/common/EmojiPlaceholder.js +3 -10
  11. package/dist/cjs/components/common/EmojiPreview.js +24 -24
  12. package/dist/cjs/components/common/EmojiUploadPicker.js +76 -72
  13. package/dist/cjs/components/common/EmojiUploadPreview.js +17 -15
  14. package/dist/cjs/components/common/ResourcedEmoji.js +3 -1
  15. package/dist/cjs/components/common/RetryableButton.js +2 -2
  16. package/dist/cjs/components/common/styles.js +22 -25
  17. package/dist/cjs/components/i18n.js +2 -2
  18. package/dist/cjs/components/picker/CategorySelector.js +21 -16
  19. package/dist/cjs/components/picker/EmojiPicker.js +3 -1
  20. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +2 -2
  21. package/dist/cjs/components/picker/EmojiPickerComponent.js +12 -31
  22. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +2 -1
  23. package/dist/cjs/components/picker/EmojiPickerFooter.js +7 -49
  24. package/dist/cjs/components/picker/EmojiPickerList.js +38 -12
  25. package/dist/cjs/components/picker/EmojiPickerListSearch.js +25 -26
  26. package/dist/cjs/components/picker/EmojiPickerPreview.js +87 -0
  27. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +7 -6
  28. package/dist/cjs/components/picker/styles.js +21 -16
  29. package/dist/cjs/components/typeahead/EmojiTypeAhead.js +3 -1
  30. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +3 -3
  31. package/dist/cjs/components/typeahead/styles.js +2 -2
  32. package/dist/cjs/components/uploader/EmojiUploadComponent.js +2 -2
  33. package/dist/cjs/components/uploader/EmojiUploader.js +3 -1
  34. package/dist/cjs/components/uploader/styles.js +1 -1
  35. package/dist/cjs/util/analytics.js +2 -2
  36. package/dist/cjs/util/shared-styles.js +6 -6
  37. package/dist/cjs/util/type-helpers.js +2 -2
  38. package/dist/cjs/version.json +1 -1
  39. package/dist/es2019/components/common/DeleteButton.js +1 -1
  40. package/dist/es2019/components/common/Emoji.js +33 -13
  41. package/dist/es2019/components/common/EmojiActions.js +178 -0
  42. package/dist/es2019/components/common/EmojiDeletePreview.js +16 -9
  43. package/dist/es2019/components/common/EmojiPlaceholder.js +3 -7
  44. package/dist/es2019/components/common/EmojiPreview.js +21 -16
  45. package/dist/es2019/components/common/EmojiUploadPicker.js +22 -13
  46. package/dist/es2019/components/common/EmojiUploadPreview.js +14 -7
  47. package/dist/es2019/components/common/RetryableButton.js +1 -1
  48. package/dist/es2019/components/common/styles.js +19 -24
  49. package/dist/es2019/components/i18n.js +1 -1
  50. package/dist/es2019/components/picker/CategorySelector.js +13 -6
  51. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +1 -1
  52. package/dist/es2019/components/picker/EmojiPickerComponent.js +9 -30
  53. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +2 -1
  54. package/dist/es2019/components/picker/EmojiPickerFooter.js +6 -46
  55. package/dist/es2019/components/picker/EmojiPickerList.js +36 -10
  56. package/dist/es2019/components/picker/EmojiPickerListSearch.js +15 -8
  57. package/dist/es2019/components/picker/EmojiPickerPreview.js +43 -0
  58. package/dist/es2019/components/picker/styles.js +18 -14
  59. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +2 -2
  60. package/dist/es2019/components/typeahead/styles.js +2 -2
  61. package/dist/es2019/components/uploader/EmojiUploadComponent.js +3 -3
  62. package/dist/es2019/components/uploader/styles.js +1 -1
  63. package/dist/es2019/util/shared-styles.js +6 -6
  64. package/dist/es2019/version.json +1 -1
  65. package/dist/esm/api/EmojiUtils.js +10 -6
  66. package/dist/esm/api/internal/UsageFrequencyTracker.js +2 -2
  67. package/dist/esm/api/media/SiteEmojiResource.js +4 -3
  68. package/dist/esm/components/common/CachingEmoji.js +4 -2
  69. package/dist/esm/components/common/DeleteButton.js +1 -1
  70. package/dist/esm/components/common/Emoji.js +37 -15
  71. package/dist/esm/components/common/EmojiActions.js +200 -0
  72. package/dist/esm/components/common/EmojiDeletePreview.js +18 -21
  73. package/dist/esm/components/common/EmojiPlaceholder.js +3 -7
  74. package/dist/esm/components/common/EmojiPreview.js +19 -24
  75. package/dist/esm/components/common/EmojiUploadPicker.js +70 -71
  76. package/dist/esm/components/common/EmojiUploadPreview.js +13 -13
  77. package/dist/esm/components/common/ResourcedEmoji.js +2 -1
  78. package/dist/esm/components/common/RetryableButton.js +1 -1
  79. package/dist/esm/components/common/styles.js +19 -22
  80. package/dist/esm/components/i18n.js +1 -1
  81. package/dist/esm/components/picker/CategorySelector.js +17 -15
  82. package/dist/esm/components/picker/EmojiPicker.js +2 -1
  83. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +1 -1
  84. package/dist/esm/components/picker/EmojiPickerComponent.js +11 -32
  85. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +2 -1
  86. package/dist/esm/components/picker/EmojiPickerFooter.js +6 -46
  87. package/dist/esm/components/picker/EmojiPickerList.js +38 -12
  88. package/dist/esm/components/picker/EmojiPickerListSearch.js +21 -25
  89. package/dist/esm/components/picker/EmojiPickerPreview.js +67 -0
  90. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +6 -5
  91. package/dist/esm/components/picker/styles.js +18 -14
  92. package/dist/esm/components/typeahead/EmojiTypeAhead.js +2 -1
  93. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +2 -2
  94. package/dist/esm/components/typeahead/styles.js +2 -2
  95. package/dist/esm/components/uploader/EmojiUploadComponent.js +3 -3
  96. package/dist/esm/components/uploader/EmojiUploader.js +2 -1
  97. package/dist/esm/components/uploader/styles.js +1 -1
  98. package/dist/esm/util/analytics.js +2 -2
  99. package/dist/esm/util/shared-styles.js +6 -6
  100. package/dist/esm/util/type-helpers.js +2 -2
  101. package/dist/esm/version.json +1 -1
  102. package/dist/types/components/common/Emoji.d.ts +2 -0
  103. package/dist/types/components/common/EmojiActions.d.ts +43 -0
  104. package/dist/types/components/common/EmojiDeletePreview.d.ts +6 -8
  105. package/dist/types/components/common/EmojiPlaceholder.d.ts +1 -0
  106. package/dist/types/components/common/EmojiPreview.d.ts +7 -1
  107. package/dist/types/components/common/EmojiUploadPicker.d.ts +11 -4
  108. package/dist/types/components/common/EmojiUploadPreview.d.ts +6 -4
  109. package/dist/types/components/common/UploadEmoji.d.ts +2 -2
  110. package/dist/types/components/common/styles.d.ts +1 -1
  111. package/dist/types/components/picker/CategorySelector.d.ts +5 -11
  112. package/dist/types/components/picker/EmojiPickerComponent.d.ts +2 -5
  113. package/dist/types/components/picker/EmojiPickerFooter.d.ts +3 -19
  114. package/dist/types/components/picker/EmojiPickerList.d.ts +17 -3
  115. package/dist/types/components/picker/EmojiPickerListSearch.d.ts +6 -15
  116. package/dist/types/components/picker/EmojiPickerPreview.d.ts +9 -0
  117. package/dist/types/components/picker/styles.d.ts +1 -0
  118. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +2 -2
  119. package/dist/types/util/shared-styles.d.ts +6 -6
  120. 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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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$, ["altRepresentations"]);
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, ["placeholderSize"]);
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, ["children", "placeholderSize"]);
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.mediumEmphasis', N500),
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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
- }, showTooltip ? /*#__PURE__*/React.createElement(Tooltip, {
116
- tag: "span",
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
- }, deleteButton, showTooltip ? /*#__PURE__*/React.createElement(Tooltip, {
207
- tag: "span",
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 _this2 = this;
85
-
86
- var emoji = this.props.emoji;
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(FormattedMessage, messages.deleteEmojiFailed, function (message) {
105
- return !loading ? /*#__PURE__*/React.createElement(EmojiErrorMessage, {
106
- message: message,
107
- className: styles.emojiDeleteErrorMessage,
108
- tooltip: true
109
- }) : null;
110
- }) : null, /*#__PURE__*/React.createElement(FormattedMessage, messages.deleteEmojiLabel, function (message) {
111
- return /*#__PURE__*/React.createElement(RetryableButton, {
112
- className: styles.uploadEmojiButton,
113
- retryClassName: styles.uploadRetryButton,
114
- label: message,
115
- onSubmit: _this2.onSubmit,
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 { EmojiDeletePreview as default };
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
- var placeholderNode = /*#__PURE__*/React.createElement("span", {
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(FormattedMessage, _extends({}, messages.emojiSelectSkinToneButtonAriaLabelText, {
105
- values: {
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 _classNames, _classNames2;
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((_classNames = {}, _defineProperty(_classNames, styles.preview, true), _defineProperty(_classNames, styles.withToneSelector, !!this.props.toneEmoji), _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: 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);