@atlaskit/emoji 64.0.1 → 64.2.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.
Files changed (188) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/components/common/CachingEmoji.js +8 -6
  4. package/dist/cjs/components/common/DeleteButton.js +1 -1
  5. package/dist/cjs/components/common/Emoji.js +35 -14
  6. package/dist/cjs/components/common/EmojiActions.js +233 -0
  7. package/dist/cjs/components/common/EmojiPlaceholder.js +3 -10
  8. package/dist/cjs/components/common/EmojiPreview.js +2 -2
  9. package/dist/cjs/components/common/ResourcedEmojiComponent.js +12 -17
  10. package/dist/cjs/components/common/styles.js +22 -25
  11. package/dist/cjs/components/picker/EmojiPickerComponent.js +19 -43
  12. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +2 -1
  13. package/dist/cjs/components/picker/EmojiPickerFooter.js +7 -49
  14. package/dist/cjs/components/picker/EmojiPickerList.js +36 -30
  15. package/dist/cjs/components/picker/EmojiPickerPreview.js +87 -0
  16. package/dist/cjs/components/picker/styles.js +21 -16
  17. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +11 -16
  18. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +3 -3
  19. package/dist/cjs/components/typeahead/styles.js +2 -2
  20. package/dist/cjs/components/uploader/styles.js +1 -1
  21. package/dist/cjs/context/EmojiContext.js +11 -0
  22. package/dist/cjs/context/EmojiContextProvider.js +22 -0
  23. package/dist/cjs/i18n/cs.js +2 -2
  24. package/dist/cjs/i18n/da.js +2 -2
  25. package/dist/cjs/i18n/de.js +2 -2
  26. package/dist/cjs/i18n/en_ZZ.js +51 -0
  27. package/dist/cjs/i18n/es.js +2 -2
  28. package/dist/cjs/i18n/et.js +2 -2
  29. package/dist/cjs/i18n/fi.js +2 -2
  30. package/dist/cjs/i18n/fr.js +2 -2
  31. package/dist/cjs/i18n/hu.js +2 -2
  32. package/dist/cjs/i18n/it.js +2 -2
  33. package/dist/cjs/i18n/ja.js +2 -2
  34. package/dist/cjs/i18n/ko.js +2 -2
  35. package/dist/cjs/i18n/nb.js +2 -2
  36. package/dist/cjs/i18n/nl.js +2 -2
  37. package/dist/cjs/i18n/pl.js +2 -2
  38. package/dist/cjs/i18n/pt_BR.js +2 -2
  39. package/dist/cjs/i18n/pt_PT.js +2 -2
  40. package/dist/cjs/i18n/ru.js +2 -2
  41. package/dist/cjs/i18n/sk.js +2 -2
  42. package/dist/cjs/i18n/sv.js +2 -2
  43. package/dist/cjs/i18n/th.js +2 -2
  44. package/dist/cjs/i18n/tr.js +2 -2
  45. package/dist/cjs/i18n/uk.js +2 -2
  46. package/dist/cjs/i18n/vi.js +2 -2
  47. package/dist/cjs/i18n/zh.js +2 -2
  48. package/dist/cjs/i18n/zh_TW.js +2 -2
  49. package/dist/cjs/util/shared-styles.js +6 -6
  50. package/dist/cjs/version.json +1 -1
  51. package/dist/es2019/components/common/CachingEmoji.js +7 -5
  52. package/dist/es2019/components/common/DeleteButton.js +1 -1
  53. package/dist/es2019/components/common/Emoji.js +33 -13
  54. package/dist/es2019/components/common/EmojiActions.js +178 -0
  55. package/dist/es2019/components/common/EmojiPlaceholder.js +3 -7
  56. package/dist/es2019/components/common/EmojiPreview.js +1 -2
  57. package/dist/es2019/components/common/ResourcedEmojiComponent.js +11 -16
  58. package/dist/es2019/components/common/styles.js +19 -24
  59. package/dist/es2019/components/picker/EmojiPickerComponent.js +18 -44
  60. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +2 -1
  61. package/dist/es2019/components/picker/EmojiPickerFooter.js +6 -46
  62. package/dist/es2019/components/picker/EmojiPickerList.js +36 -29
  63. package/dist/es2019/components/picker/EmojiPickerPreview.js +43 -0
  64. package/dist/es2019/components/picker/styles.js +18 -14
  65. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +10 -15
  66. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +2 -2
  67. package/dist/es2019/components/typeahead/styles.js +2 -2
  68. package/dist/es2019/components/uploader/styles.js +1 -1
  69. package/dist/es2019/context/EmojiContext.js +2 -0
  70. package/dist/es2019/context/EmojiContextProvider.js +10 -0
  71. package/dist/es2019/i18n/cs.js +2 -2
  72. package/dist/es2019/i18n/da.js +2 -2
  73. package/dist/es2019/i18n/de.js +2 -2
  74. package/dist/es2019/i18n/en_ZZ.js +43 -0
  75. package/dist/es2019/i18n/es.js +2 -2
  76. package/dist/es2019/i18n/et.js +2 -2
  77. package/dist/es2019/i18n/fi.js +2 -2
  78. package/dist/es2019/i18n/fr.js +2 -2
  79. package/dist/es2019/i18n/hu.js +2 -2
  80. package/dist/es2019/i18n/it.js +2 -2
  81. package/dist/es2019/i18n/ja.js +2 -2
  82. package/dist/es2019/i18n/ko.js +2 -2
  83. package/dist/es2019/i18n/nb.js +2 -2
  84. package/dist/es2019/i18n/nl.js +2 -2
  85. package/dist/es2019/i18n/pl.js +2 -2
  86. package/dist/es2019/i18n/pt_BR.js +2 -2
  87. package/dist/es2019/i18n/pt_PT.js +2 -2
  88. package/dist/es2019/i18n/ru.js +2 -2
  89. package/dist/es2019/i18n/sk.js +2 -2
  90. package/dist/es2019/i18n/sv.js +2 -2
  91. package/dist/es2019/i18n/th.js +2 -2
  92. package/dist/es2019/i18n/tr.js +2 -2
  93. package/dist/es2019/i18n/uk.js +2 -2
  94. package/dist/es2019/i18n/vi.js +2 -2
  95. package/dist/es2019/i18n/zh.js +2 -2
  96. package/dist/es2019/i18n/zh_TW.js +2 -2
  97. package/dist/es2019/util/shared-styles.js +6 -6
  98. package/dist/es2019/version.json +1 -1
  99. package/dist/esm/components/common/CachingEmoji.js +7 -5
  100. package/dist/esm/components/common/DeleteButton.js +1 -1
  101. package/dist/esm/components/common/Emoji.js +35 -13
  102. package/dist/esm/components/common/EmojiActions.js +200 -0
  103. package/dist/esm/components/common/EmojiPlaceholder.js +3 -7
  104. package/dist/esm/components/common/EmojiPreview.js +2 -2
  105. package/dist/esm/components/common/ResourcedEmojiComponent.js +10 -16
  106. package/dist/esm/components/common/styles.js +19 -22
  107. package/dist/esm/components/picker/EmojiPickerComponent.js +18 -45
  108. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +2 -1
  109. package/dist/esm/components/picker/EmojiPickerFooter.js +6 -46
  110. package/dist/esm/components/picker/EmojiPickerList.js +36 -31
  111. package/dist/esm/components/picker/EmojiPickerPreview.js +67 -0
  112. package/dist/esm/components/picker/styles.js +18 -14
  113. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +10 -16
  114. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +2 -2
  115. package/dist/esm/components/typeahead/styles.js +2 -2
  116. package/dist/esm/components/uploader/styles.js +1 -1
  117. package/dist/esm/context/EmojiContext.js +2 -0
  118. package/dist/esm/context/EmojiContextProvider.js +9 -0
  119. package/dist/esm/i18n/cs.js +2 -2
  120. package/dist/esm/i18n/da.js +2 -2
  121. package/dist/esm/i18n/de.js +2 -2
  122. package/dist/esm/i18n/en_ZZ.js +43 -0
  123. package/dist/esm/i18n/es.js +2 -2
  124. package/dist/esm/i18n/et.js +2 -2
  125. package/dist/esm/i18n/fi.js +2 -2
  126. package/dist/esm/i18n/fr.js +2 -2
  127. package/dist/esm/i18n/hu.js +2 -2
  128. package/dist/esm/i18n/it.js +2 -2
  129. package/dist/esm/i18n/ja.js +2 -2
  130. package/dist/esm/i18n/ko.js +2 -2
  131. package/dist/esm/i18n/nb.js +2 -2
  132. package/dist/esm/i18n/nl.js +2 -2
  133. package/dist/esm/i18n/pl.js +2 -2
  134. package/dist/esm/i18n/pt_BR.js +2 -2
  135. package/dist/esm/i18n/pt_PT.js +2 -2
  136. package/dist/esm/i18n/ru.js +2 -2
  137. package/dist/esm/i18n/sk.js +2 -2
  138. package/dist/esm/i18n/sv.js +2 -2
  139. package/dist/esm/i18n/th.js +2 -2
  140. package/dist/esm/i18n/tr.js +2 -2
  141. package/dist/esm/i18n/uk.js +2 -2
  142. package/dist/esm/i18n/vi.js +2 -2
  143. package/dist/esm/i18n/zh.js +2 -2
  144. package/dist/esm/i18n/zh_TW.js +2 -2
  145. package/dist/esm/util/shared-styles.js +6 -6
  146. package/dist/esm/version.json +1 -1
  147. package/dist/types/components/common/CachingEmoji.d.ts +6 -8
  148. package/dist/types/components/common/Emoji.d.ts +1 -0
  149. package/dist/types/components/common/EmojiActions.d.ts +43 -0
  150. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +0 -6
  151. package/dist/types/components/common/styles.d.ts +1 -1
  152. package/dist/types/components/picker/EmojiPickerComponent.d.ts +0 -9
  153. package/dist/types/components/picker/EmojiPickerFooter.d.ts +3 -19
  154. package/dist/types/components/picker/EmojiPickerList.d.ts +17 -13
  155. package/dist/types/components/picker/EmojiPickerPreview.d.ts +9 -0
  156. package/dist/types/components/picker/styles.d.ts +1 -0
  157. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +0 -6
  158. package/dist/types/context/EmojiContext.d.ts +4 -0
  159. package/dist/types/context/EmojiContextProvider.d.ts +7 -0
  160. package/dist/types/i18n/cs.d.ts +1 -1
  161. package/dist/types/i18n/da.d.ts +1 -1
  162. package/dist/types/i18n/de.d.ts +1 -1
  163. package/dist/types/i18n/en_ZZ.d.ts +43 -0
  164. package/dist/types/i18n/es.d.ts +1 -1
  165. package/dist/types/i18n/et.d.ts +1 -1
  166. package/dist/types/i18n/fi.d.ts +1 -1
  167. package/dist/types/i18n/fr.d.ts +1 -1
  168. package/dist/types/i18n/hu.d.ts +1 -1
  169. package/dist/types/i18n/it.d.ts +1 -1
  170. package/dist/types/i18n/ja.d.ts +1 -1
  171. package/dist/types/i18n/ko.d.ts +1 -1
  172. package/dist/types/i18n/nb.d.ts +1 -1
  173. package/dist/types/i18n/nl.d.ts +1 -1
  174. package/dist/types/i18n/pl.d.ts +1 -1
  175. package/dist/types/i18n/pt_BR.d.ts +1 -1
  176. package/dist/types/i18n/pt_PT.d.ts +1 -1
  177. package/dist/types/i18n/ru.d.ts +1 -1
  178. package/dist/types/i18n/sk.d.ts +1 -1
  179. package/dist/types/i18n/sv.d.ts +1 -1
  180. package/dist/types/i18n/th.d.ts +1 -1
  181. package/dist/types/i18n/tr.d.ts +1 -1
  182. package/dist/types/i18n/uk.d.ts +1 -1
  183. package/dist/types/i18n/vi.d.ts +1 -1
  184. package/dist/types/i18n/zh.d.ts +1 -1
  185. package/dist/types/i18n/zh_TW.d.ts +1 -1
  186. package/dist/types/util/shared-styles.d.ts +6 -6
  187. package/local-config-example.ts +3 -3
  188. package/package.json +12 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @atlaskit/emoji
2
2
 
3
+ ## 64.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`ae891ccd4c2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ae891ccd4c2) - Refactor legacy context providers and update tests to use react testing library
8
+
9
+ ### Patch Changes
10
+
11
+ - [`63f11b8ade4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/63f11b8ade4) - support proxy via webpack config cli
12
+ - Updated dependencies
13
+
14
+ ## 64.1.1
15
+
16
+ ### Patch Changes
17
+
18
+ - [`21e15939c73`](https://bitbucket.org/atlassian/atlassian-frontend/commits/21e15939c73) - add SSR examples for emoji
19
+ - [`95015909035`](https://bitbucket.org/atlassian/atlassian-frontend/commits/95015909035) - Fixed issue where some of the examples where crashing.
20
+
21
+ ## 64.1.0
22
+
23
+ ### Minor Changes
24
+
25
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - [ux] Task: https://a11y-internal.atlassian.net/browse/AK-97, Emoji picker: made emojis list keyboard accessible, moved tone selector and place it right after search input, placed upload/remove emoji menus above the emoji list.
26
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Remove @atlaskit/tooltip from critical path of rendering emoji
27
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Upgrade js-search to v2
28
+
29
+ ### Patch Changes
30
+
31
+ - Updated dependencies
32
+
3
33
  ## 64.0.1
4
34
 
5
35
  ### Patch Changes
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Emoji
2
+
3
+ Documentation can be found on: https://product-fabric.atlassian.net/wiki/spaces/TWPCP/pages/3178201667/Emoji+README
@@ -27,8 +27,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
27
27
 
28
28
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
29
29
 
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
30
  var _react = _interopRequireWildcard(require("react"));
33
31
 
34
32
  var _EmojiUtils = require("../../api/EmojiUtils");
@@ -41,6 +39,8 @@ var _Emoji = _interopRequireDefault(require("./Emoji"));
41
39
 
42
40
  var _EmojiPlaceholder = _interopRequireDefault(require("./EmojiPlaceholder"));
43
41
 
42
+ var _EmojiContext = require("../../context/EmojiContext");
43
+
44
44
  var _excluded = ["placeholderSize"],
45
45
  _excluded2 = ["children", "placeholderSize"];
46
46
 
@@ -84,7 +84,7 @@ var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
84
84
  var _this;
85
85
 
86
86
  (0, _classCallCheck2.default)(this, CachingMediaEmoji);
87
- _this = _super.call(this, props, context);
87
+ _this = _super.call(this, props);
88
88
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mounted", false);
89
89
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleLoadError", function (_emojiId, emoji) {
90
90
  var invalidImage = _this.state.invalidImage;
@@ -130,6 +130,10 @@ var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
130
130
  value: function loadEmoji(emoji, context, forceLoad) {
131
131
  var _this2 = this;
132
132
 
133
+ if (!context) {
134
+ return;
135
+ }
136
+
133
137
  if (!context.emoji) {
134
138
  return undefined;
135
139
  }
@@ -215,8 +219,6 @@ var CachingMediaEmoji = /*#__PURE__*/function (_PureComponent) {
215
219
  }(_react.PureComponent);
216
220
 
217
221
  exports.CachingMediaEmoji = CachingMediaEmoji;
218
- (0, _defineProperty2.default)(CachingMediaEmoji, "contextTypes", {
219
- emoji: _propTypes.default.object
220
- });
222
+ (0, _defineProperty2.default)(CachingMediaEmoji, "contextType", _EmojiContext.EmojiContext);
221
223
  var _default = CachingEmoji;
222
224
  exports.default = _default;
@@ -33,7 +33,7 @@ var DeleteButton = function DeleteButton(props) {
33
33
  }, /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
34
34
  iconBefore: /*#__PURE__*/_react.default.createElement(_crossCircle.default, {
35
35
  label: _constants.deleteEmojiLabel,
36
- primaryColor: (0, _tokens.token)('color.text.mediumEmphasis', _colors.N500),
36
+ primaryColor: (0, _tokens.token)('color.text.subtle', _colors.N500),
37
37
  size: "small"
38
38
  }),
39
39
  onClick: props.onClick,
@@ -13,8 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
 
16
- var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
17
-
18
16
  var _classnames = _interopRequireDefault(require("classnames"));
19
17
 
20
18
  var _react = _interopRequireDefault(require("react"));
@@ -54,6 +52,21 @@ var handleMouseDown = function handleMouseDown(props, event) {
54
52
  }
55
53
  };
56
54
 
55
+ var handleKeyPress = function handleKeyPress(props, event) {
56
+ // Clicked emoji delete button
57
+ if (event.target instanceof Element && event.target.getAttribute('aria-label') === _constants.deleteEmojiLabel) {
58
+ return;
59
+ }
60
+
61
+ var emoji = props.emoji,
62
+ onSelected = props.onSelected;
63
+ event.preventDefault();
64
+
65
+ if (onSelected && (event.key === 'Enter' || event.key === ' ')) {
66
+ onSelected((0, _typeHelpers.toEmojiId)(emoji), emoji, event);
67
+ }
68
+ };
69
+
57
70
  var handleMouseMove = function handleMouseMove(props, event) {
58
71
  var emoji = props.emoji,
59
72
  onMouseMove = props.onMouseMove;
@@ -96,7 +109,8 @@ var renderAsSprite = function renderAsSprite(props) {
96
109
  selected = props.selected,
97
110
  selectOnHover = props.selectOnHover,
98
111
  className = props.className,
99
- showTooltip = props.showTooltip;
112
+ showTooltip = props.showTooltip,
113
+ shouldBeInteractive = props.shouldBeInteractive;
100
114
  var representation = emoji.representation;
101
115
  var sprite = representation.sprite;
102
116
  var classes = (_classes = {}, (0, _defineProperty2.default)(_classes, styles.emojiContainer, true), (0, _defineProperty2.default)(_classes, styles.emojiNode, true), (0, _defineProperty2.default)(_classes, styles.selected, selected), (0, _defineProperty2.default)(_classes, styles.selectOnHover, selectOnHover), _classes);
@@ -129,18 +143,21 @@ var renderAsSprite = function renderAsSprite(props) {
129
143
  }, "\xA0");
130
144
 
131
145
  return /*#__PURE__*/_react.default.createElement("span", {
146
+ tabIndex: shouldBeInteractive ? 0 : undefined,
147
+ role: shouldBeInteractive ? 'button' : undefined,
132
148
  className: (0, _classnames.default)(classes),
149
+ onKeyPress: function onKeyPress(event) {
150
+ return handleKeyPress(props, event);
151
+ },
133
152
  onMouseDown: function onMouseDown(event) {
134
153
  handleMouseDown(props, event);
135
154
  },
136
155
  onMouseMove: function onMouseMove(event) {
137
156
  handleMouseMove(props, event);
138
157
  },
139
- "aria-label": emoji.shortName
140
- }, showTooltip ? /*#__PURE__*/_react.default.createElement(_tooltip.default, {
141
- tag: "span",
142
- content: emoji.shortName
143
- }, emojiNode) : emojiNode);
158
+ "aria-label": emoji.shortName,
159
+ title: showTooltip ? emoji.shortName : ''
160
+ }, emojiNode);
144
161
  }; // Keep as pure functional component, see renderAsSprite.
145
162
 
146
163
 
@@ -153,7 +170,8 @@ var renderAsImage = function renderAsImage(props) {
153
170
  selectOnHover = props.selectOnHover,
154
171
  className = props.className,
155
172
  showTooltip = props.showTooltip,
156
- showDelete = props.showDelete;
173
+ showDelete = props.showDelete,
174
+ shouldBeInteractive = props.shouldBeInteractive;
157
175
  var classes = (_classes2 = {}, (0, _defineProperty2.default)(_classes2, styles.emoji, true), (0, _defineProperty2.default)(_classes2, styles.emojiNode, true), (0, _defineProperty2.default)(_classes2, styles.selected, selected), (0, _defineProperty2.default)(_classes2, styles.selectOnHover, selectOnHover), (0, _defineProperty2.default)(_classes2, styles.emojiImage, true), _classes2);
158
176
 
159
177
  if (className) {
@@ -221,18 +239,21 @@ var renderAsImage = function renderAsImage(props) {
221
239
  }, sizing));
222
240
 
223
241
  return /*#__PURE__*/_react.default.createElement("span", {
242
+ tabIndex: shouldBeInteractive ? 0 : undefined,
243
+ role: shouldBeInteractive ? 'button' : undefined,
224
244
  className: (0, _classnames.default)(classes),
245
+ onKeyPress: function onKeyPress(event) {
246
+ return handleKeyPress(props, event);
247
+ },
225
248
  onMouseDown: function onMouseDown(event) {
226
249
  handleMouseDown(props, event);
227
250
  },
228
251
  onMouseMove: function onMouseMove(event) {
229
252
  handleMouseMove(props, event);
230
253
  },
231
- "aria-label": emoji.shortName
232
- }, deleteButton, showTooltip ? /*#__PURE__*/_react.default.createElement(_tooltip.default, {
233
- tag: "span",
234
- content: emoji.shortName
235
- }, emojiNode) : emojiNode);
254
+ "aria-label": emoji.shortName,
255
+ title: showTooltip ? emoji.shortName : ''
256
+ }, deleteButton, emojiNode);
236
257
  };
237
258
 
238
259
  var Emoji = function Emoji(props) {
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = exports.EmojiActions = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _classnames = _interopRequireDefault(require("classnames"));
27
+
28
+ var _react = _interopRequireWildcard(require("react"));
29
+
30
+ var _reactIntlNext = require("react-intl-next");
31
+
32
+ var _EmojiDeletePreview = _interopRequireDefault(require("../common/EmojiDeletePreview"));
33
+
34
+ var _EmojiUploadPicker = _interopRequireDefault(require("../common/EmojiUploadPicker"));
35
+
36
+ var styles = _interopRequireWildcard(require("./styles"));
37
+
38
+ var footerStyles = _interopRequireWildcard(require("../picker/styles"));
39
+
40
+ var _EmojiPickerListSearch = _interopRequireDefault(require("../picker/EmojiPickerListSearch"));
41
+
42
+ var _ToneSelector = _interopRequireDefault(require("./ToneSelector"));
43
+
44
+ var _EmojiButton = _interopRequireDefault(require("./EmojiButton"));
45
+
46
+ var _i18n = require("../i18n");
47
+
48
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
49
+
50
+ var _add = _interopRequireDefault(require("@atlaskit/icon/glyph/add"));
51
+
52
+ var _setSkinToneAriaLabelText = require("./setSkinToneAriaLabelText");
53
+
54
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
55
+
56
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
57
+
58
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
59
+
60
+ 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; } }
61
+
62
+ var EmojiActions = /*#__PURE__*/function (_PureComponent) {
63
+ (0, _inherits2.default)(EmojiActions, _PureComponent);
64
+
65
+ var _super = _createSuper(EmojiActions);
66
+
67
+ function EmojiActions() {
68
+ var _this;
69
+
70
+ (0, _classCallCheck2.default)(this, EmojiActions);
71
+
72
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
73
+ args[_key] = arguments[_key];
74
+ }
75
+
76
+ _this = _super.call.apply(_super, [this].concat(args));
77
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
78
+ selectingTone: false
79
+ });
80
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onToneButtonClick", function () {
81
+ _this.setState({
82
+ selectingTone: !_this.state.selectingTone
83
+ });
84
+ });
85
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onToneSelected", function (toneValue) {
86
+ _this.setState({
87
+ selectingTone: false
88
+ });
89
+
90
+ if (_this.props.onToneSelected) {
91
+ _this.props.onToneSelected(toneValue);
92
+ }
93
+ });
94
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMouseLeave", function () {
95
+ var selectingTone = _this.state.selectingTone;
96
+ var onToneSelectorCancelled = _this.props.onToneSelectorCancelled;
97
+
98
+ if (selectingTone && onToneSelectorCancelled) {
99
+ onToneSelectorCancelled();
100
+ }
101
+
102
+ _this.setState({
103
+ selectingTone: false
104
+ });
105
+ });
106
+ return _this;
107
+ }
108
+
109
+ (0, _createClass2.default)(EmojiActions, [{
110
+ key: "renderTones",
111
+ value: function renderTones() {
112
+ var _this$props = this.props,
113
+ toneEmoji = _this$props.toneEmoji,
114
+ selectedTone = _this$props.selectedTone,
115
+ intl = _this$props.intl;
116
+ var formatMessage = intl.formatMessage;
117
+
118
+ if (!toneEmoji) {
119
+ return null;
120
+ }
121
+
122
+ var previewEmoji = toneEmoji;
123
+
124
+ if (selectedTone && previewEmoji.skinVariations) {
125
+ previewEmoji = previewEmoji.skinVariations[(selectedTone || 1) - 1];
126
+ }
127
+
128
+ return /*#__PURE__*/_react.default.createElement("div", {
129
+ className: styles.emojiToneSelectorContainer
130
+ }, this.state.selectingTone && /*#__PURE__*/_react.default.createElement(_ToneSelector.default, {
131
+ emoji: toneEmoji,
132
+ onToneSelected: this.onToneSelected,
133
+ previewEmojiId: previewEmoji.id
134
+ }), /*#__PURE__*/_react.default.createElement(_EmojiButton.default, {
135
+ ariaExpanded: this.state.selectingTone,
136
+ emoji: previewEmoji,
137
+ selectOnHover: true,
138
+ onSelected: this.onToneButtonClick,
139
+ ariaLabelText: formatMessage(_i18n.messages.emojiSelectSkinToneButtonAriaLabelText, {
140
+ selectedTone: "".concat((0, _setSkinToneAriaLabelText.setSkinToneAriaLabelText)(previewEmoji.name), " selected")
141
+ })
142
+ }));
143
+ } // note: emoji-picker-add-emoji className is used by pollinator synthetic checks
144
+
145
+ }, {
146
+ key: "renderAddOwnEmoji",
147
+ value: function renderAddOwnEmoji() {
148
+ var _this$props2 = this.props,
149
+ onOpenUpload = _this$props2.onOpenUpload,
150
+ uploadEnabled = _this$props2.uploadEnabled,
151
+ intl = _this$props2.intl;
152
+ var formatMessage = intl.formatMessage;
153
+
154
+ if (!uploadEnabled) {
155
+ return null;
156
+ }
157
+
158
+ return /*#__PURE__*/_react.default.createElement("div", {
159
+ className: styles.AddCustomEmoji
160
+ }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.addCustomEmojiLabel, function (label) {
161
+ return /*#__PURE__*/_react.default.createElement(_standardButton.default, {
162
+ onClick: onOpenUpload,
163
+ iconBefore: /*#__PURE__*/_react.default.createElement(_add.default, {
164
+ label: formatMessage(_i18n.messages.addCustomEmojiLabel),
165
+ size: "small"
166
+ }),
167
+ appearance: "subtle",
168
+ className: styles.addCustomEmojiButton + ' emoji-picker-add-emoji'
169
+ }, label);
170
+ }));
171
+ }
172
+ }, {
173
+ key: "render",
174
+ value: function render() {
175
+ var _this$props3 = this.props,
176
+ initialUploadName = _this$props3.initialUploadName,
177
+ onUploadCancelled = _this$props3.onUploadCancelled,
178
+ onUploadEmoji = _this$props3.onUploadEmoji,
179
+ onCloseDelete = _this$props3.onCloseDelete,
180
+ onDeleteEmoji = _this$props3.onDeleteEmoji,
181
+ uploadErrorMessage = _this$props3.uploadErrorMessage,
182
+ uploading = _this$props3.uploading,
183
+ onFileChooserClicked = _this$props3.onFileChooserClicked,
184
+ emojiToDelete = _this$props3.emojiToDelete,
185
+ onChange = _this$props3.onChange,
186
+ query = _this$props3.query;
187
+ var previewFooterClassnames = (0, _classnames.default)([footerStyles.emojiPickerFooter, footerStyles.emojiActionsContainerWithBottomShadow]);
188
+
189
+ if (uploading) {
190
+ return /*#__PURE__*/_react.default.createElement("div", {
191
+ className: previewFooterClassnames
192
+ }, /*#__PURE__*/_react.default.createElement(_EmojiUploadPicker.default, {
193
+ onUploadCancelled: onUploadCancelled,
194
+ onUploadEmoji: onUploadEmoji,
195
+ onFileChooserClicked: onFileChooserClicked,
196
+ errorMessage: uploadErrorMessage,
197
+ initialUploadName: initialUploadName
198
+ }));
199
+ }
200
+
201
+ if (emojiToDelete) {
202
+ return /*#__PURE__*/_react.default.createElement("div", {
203
+ className: previewFooterClassnames
204
+ }, /*#__PURE__*/_react.default.createElement(_EmojiDeletePreview.default, {
205
+ emoji: emojiToDelete,
206
+ onDeleteEmoji: onDeleteEmoji,
207
+ onCloseDelete: onCloseDelete
208
+ }));
209
+ }
210
+
211
+ return /*#__PURE__*/_react.default.createElement("div", {
212
+ className: previewFooterClassnames,
213
+ onMouseLeave: this.onMouseLeave
214
+ }, /*#__PURE__*/_react.default.createElement("div", {
215
+ style: {
216
+ display: 'flex',
217
+ justifyContent: 'flex-end',
218
+ alignItems: 'center'
219
+ }
220
+ }, !this.state.selectingTone && /*#__PURE__*/_react.default.createElement(_EmojiPickerListSearch.default, {
221
+ onChange: onChange,
222
+ query: query
223
+ }), this.renderTones()), this.renderAddOwnEmoji());
224
+ }
225
+ }]);
226
+ return EmojiActions;
227
+ }(_react.PureComponent);
228
+
229
+ exports.EmojiActions = EmojiActions;
230
+
231
+ var _default = (0, _reactIntlNext.injectIntl)(EmojiActions);
232
+
233
+ exports.default = _default;
@@ -13,8 +13,6 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
- var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
17
-
18
16
  var _styles = require("./styles");
19
17
 
20
18
  var _constants = require("../../util/constants");
@@ -50,17 +48,12 @@ var EmojiPlaceholder = function EmojiPlaceholder(props) {
50
48
  height: "".concat(height, "px")
51
49
  };
52
50
  var classes = (_classes = {}, (0, _defineProperty2.default)(_classes, _styles.placeholder, true), (0, _defineProperty2.default)(_classes, _styles.placeholderContainer, true), _classes);
53
-
54
- var placeholderNode = /*#__PURE__*/_react.default.createElement("span", {
51
+ return /*#__PURE__*/_react.default.createElement("span", {
55
52
  "aria-label": shortName,
56
53
  className: (0, _classnames.default)(classes),
57
- style: style
54
+ style: style,
55
+ title: showTooltip ? shortName : ''
58
56
  });
59
-
60
- return showTooltip ? /*#__PURE__*/_react.default.createElement(_tooltip.default, {
61
- tag: "span",
62
- content: shortName
63
- }, placeholderNode) : placeholderNode;
64
57
  };
65
58
 
66
59
  var _default = EmojiPlaceholder;
@@ -138,7 +138,7 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
138
138
  }, {
139
139
  key: "renderEmojiPreview",
140
140
  value: function renderEmojiPreview() {
141
- var _classNames, _classNames2;
141
+ var _classNames2;
142
142
 
143
143
  var selectingTone = this.state.selectingTone;
144
144
  var _this$props2 = this.props,
@@ -149,7 +149,7 @@ var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
149
149
  return null;
150
150
  }
151
151
 
152
- var previewClasses = (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, styles.preview, true), (0, _defineProperty2.default)(_classNames, styles.withToneSelector, !!this.props.toneEmoji), _classNames));
152
+ var previewClasses = (0, _classnames.default)((0, _defineProperty2.default)({}, styles.preview, true));
153
153
  var previewTextClasses = (0, _classnames.default)((_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, styles.previewText, true), (0, _defineProperty2.default)(_classNames2, styles.previewSingleLine, !emoji.name), _classNames2));
154
154
  return /*#__PURE__*/_react.default.createElement("div", {
155
155
  className: previewClasses
@@ -23,8 +23,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
23
 
24
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
25
 
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
26
  var _react = _interopRequireWildcard(require("react"));
29
27
 
30
28
  var _constants = require("../../util/constants");
@@ -35,6 +33,8 @@ var _CachingEmoji = _interopRequireDefault(require("./CachingEmoji"));
35
33
 
36
34
  var _EmojiPlaceholder = _interopRequireDefault(require("./EmojiPlaceholder"));
37
35
 
36
+ var _EmojiContextProvider = require("../../context/EmojiContextProvider");
37
+
38
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
39
 
40
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -62,15 +62,6 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
62
62
  }
63
63
 
64
64
  (0, _createClass2.default)(ResourcedEmojiComponent, [{
65
- key: "getChildContext",
66
- value: function getChildContext() {
67
- return {
68
- emoji: {
69
- emojiProvider: this.props.emojiProvider
70
- }
71
- };
72
- }
73
- }, {
74
65
  key: "refreshEmoji",
75
66
  value: function refreshEmoji(emojiProvider, emojiId) {
76
67
  var _this2 = this;
@@ -159,17 +150,21 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
159
150
  shortName = _this$props$emojiId.shortName,
160
151
  id = _this$props$emojiId.id,
161
152
  fallback = _this$props$emojiId.fallback;
162
- return /*#__PURE__*/_react.default.createElement("span", {
153
+ var emojiContextValue = {
154
+ emoji: {
155
+ emojiProvider: this.props.emojiProvider
156
+ }
157
+ };
158
+ return /*#__PURE__*/_react.default.createElement(_EmojiContextProvider.EmojiContextProvider, {
159
+ emojiContextValue: emojiContextValue
160
+ }, /*#__PURE__*/_react.default.createElement("span", {
163
161
  "data-emoji-id": id,
164
162
  "data-emoji-short-name": shortName,
165
163
  "data-emoji-text": fallback || shortName
166
- }, element);
164
+ }, element));
167
165
  }
168
166
  }]);
169
167
  return ResourcedEmojiComponent;
170
168
  }(_react.Component);
171
169
 
172
- exports.default = ResourcedEmojiComponent;
173
- (0, _defineProperty2.default)(ResourcedEmojiComponent, "childContextTypes", {
174
- emoji: _propTypes.default.object
175
- });
170
+ exports.default = ResourcedEmojiComponent;