@atlaskit/emoji 68.0.4 → 69.0.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 (182) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/dist/cjs/components/common/CachingEmoji.js +61 -21
  4. package/dist/cjs/components/common/DeletableEmojiTooltipContent.js +13 -4
  5. package/dist/cjs/components/common/EmojiActions.js +4 -4
  6. package/dist/cjs/components/common/EmojiUploadPreview.js +1 -1
  7. package/dist/cjs/components/common/ResourcedEmojiComponent.js +18 -3
  8. package/dist/cjs/components/common/RetryableButton.js +3 -1
  9. package/dist/cjs/components/compiled/common/DeleteButton.compiled.css +9 -0
  10. package/dist/cjs/components/compiled/common/DeleteButton.js +52 -0
  11. package/dist/cjs/components/compiled/common/Emoji.compiled.css +23 -0
  12. package/dist/cjs/components/compiled/common/Emoji.js +380 -0
  13. package/dist/cjs/components/compiled/common/EmojiActions.compiled.css +21 -0
  14. package/dist/cjs/components/compiled/common/EmojiActions.js +220 -0
  15. package/dist/cjs/components/compiled/common/EmojiDeletePreview.compiled.css +21 -0
  16. package/dist/cjs/components/compiled/common/EmojiDeletePreview.js +152 -0
  17. package/dist/cjs/components/compiled/common/EmojiErrorMessage.compiled.css +9 -0
  18. package/dist/cjs/components/compiled/common/EmojiErrorMessage.js +58 -0
  19. package/dist/cjs/components/compiled/common/EmojiFallback.compiled.css +7 -0
  20. package/dist/cjs/components/compiled/common/EmojiFallback.js +36 -0
  21. package/dist/cjs/components/compiled/common/EmojiPlaceholder.compiled.css +20 -0
  22. package/dist/cjs/components/compiled/common/EmojiPlaceholder.js +68 -0
  23. package/dist/cjs/components/compiled/common/EmojiPreviewComponent.compiled.css +52 -0
  24. package/dist/cjs/components/compiled/common/EmojiPreviewComponent.js +45 -0
  25. package/dist/cjs/components/compiled/common/EmojiRadioButton.compiled.css +39 -0
  26. package/dist/cjs/components/compiled/common/EmojiRadioButton.js +72 -0
  27. package/dist/cjs/components/compiled/common/EmojiUploadPicker.compiled.css +26 -0
  28. package/dist/cjs/components/compiled/common/EmojiUploadPicker.js +322 -0
  29. package/dist/cjs/components/compiled/common/EmojiUploadPreview.compiled.css +20 -0
  30. package/dist/cjs/components/compiled/common/EmojiUploadPreview.js +124 -0
  31. package/dist/cjs/components/compiled/common/RetryableButton.compiled.css +2 -0
  32. package/dist/cjs/components/compiled/common/RetryableButton.js +73 -0
  33. package/dist/cjs/components/compiled/common/Scrollable.compiled.css +13 -0
  34. package/dist/cjs/components/compiled/common/Scrollable.js +97 -0
  35. package/dist/cjs/components/compiled/common/TonePreviewButton.compiled.css +32 -0
  36. package/dist/cjs/components/compiled/common/TonePreviewButton.js +52 -0
  37. package/dist/cjs/components/compiled/common/ToneSelector.compiled.css +3 -0
  38. package/dist/cjs/components/compiled/common/ToneSelector.js +111 -0
  39. package/dist/cjs/components/compiled/common/ToolTipContentWithKeymap.compiled.css +7 -0
  40. package/dist/cjs/components/compiled/common/ToolTipContentWithKeymap.js +28 -0
  41. package/dist/cjs/components/picker/EmojiPickerFooter.js +2 -0
  42. package/dist/cjs/components/picker/EmojiPickerList.js +1 -0
  43. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +2 -1
  44. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +1 -0
  45. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +3 -1
  46. package/dist/cjs/components/uploader/EmojiUploadComponent.js +2 -0
  47. package/dist/cjs/element.js +9 -15
  48. package/dist/cjs/index.js +3 -4
  49. package/dist/cjs/util/analytics/analytics.js +1 -1
  50. package/dist/es2019/components/common/CachingEmoji.js +63 -23
  51. package/dist/es2019/components/common/DeletableEmojiTooltipContent.js +14 -5
  52. package/dist/es2019/components/common/EmojiActions.js +4 -4
  53. package/dist/es2019/components/common/EmojiUploadPreview.js +1 -1
  54. package/dist/es2019/components/common/ResourcedEmojiComponent.js +20 -5
  55. package/dist/es2019/components/common/RetryableButton.js +3 -1
  56. package/dist/es2019/components/compiled/common/DeleteButton.compiled.css +9 -0
  57. package/dist/es2019/components/compiled/common/DeleteButton.js +40 -0
  58. package/dist/es2019/components/compiled/common/Emoji.compiled.css +23 -0
  59. package/dist/es2019/components/compiled/common/Emoji.js +368 -0
  60. package/dist/es2019/components/compiled/common/EmojiActions.compiled.css +21 -0
  61. package/dist/es2019/components/compiled/common/EmojiActions.js +195 -0
  62. package/dist/es2019/components/compiled/common/EmojiDeletePreview.compiled.css +21 -0
  63. package/dist/es2019/components/compiled/common/EmojiDeletePreview.js +126 -0
  64. package/dist/es2019/components/compiled/common/EmojiErrorMessage.compiled.css +9 -0
  65. package/dist/es2019/components/compiled/common/EmojiErrorMessage.js +51 -0
  66. package/dist/es2019/components/compiled/common/EmojiFallback.compiled.css +7 -0
  67. package/dist/es2019/components/compiled/common/EmojiFallback.js +33 -0
  68. package/dist/es2019/components/compiled/common/EmojiPlaceholder.compiled.css +21 -0
  69. package/dist/es2019/components/compiled/common/EmojiPlaceholder.js +51 -0
  70. package/dist/es2019/components/compiled/common/EmojiPreviewComponent.compiled.css +52 -0
  71. package/dist/es2019/components/compiled/common/EmojiPreviewComponent.js +29 -0
  72. package/dist/es2019/components/compiled/common/EmojiRadioButton.compiled.css +39 -0
  73. package/dist/es2019/components/compiled/common/EmojiRadioButton.js +58 -0
  74. package/dist/es2019/components/compiled/common/EmojiUploadPicker.compiled.css +26 -0
  75. package/dist/es2019/components/compiled/common/EmojiUploadPicker.js +276 -0
  76. package/dist/es2019/components/compiled/common/EmojiUploadPreview.compiled.css +20 -0
  77. package/dist/es2019/components/compiled/common/EmojiUploadPreview.js +96 -0
  78. package/dist/es2019/components/compiled/common/RetryableButton.compiled.css +2 -0
  79. package/dist/es2019/components/compiled/common/RetryableButton.js +67 -0
  80. package/dist/es2019/components/compiled/common/Scrollable.compiled.css +13 -0
  81. package/dist/es2019/components/compiled/common/Scrollable.js +69 -0
  82. package/dist/es2019/components/compiled/common/TonePreviewButton.compiled.css +32 -0
  83. package/dist/es2019/components/compiled/common/TonePreviewButton.js +41 -0
  84. package/dist/es2019/components/compiled/common/ToneSelector.compiled.css +3 -0
  85. package/dist/es2019/components/compiled/common/ToneSelector.js +99 -0
  86. package/dist/es2019/components/compiled/common/ToolTipContentWithKeymap.compiled.css +7 -0
  87. package/dist/es2019/components/compiled/common/ToolTipContentWithKeymap.js +17 -0
  88. package/dist/es2019/components/picker/EmojiPickerFooter.js +1 -1
  89. package/dist/es2019/components/picker/EmojiPickerList.js +2 -1
  90. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +2 -1
  91. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +1 -1
  92. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +3 -2
  93. package/dist/es2019/components/uploader/EmojiUploadComponent.js +1 -1
  94. package/dist/es2019/element.js +9 -2
  95. package/dist/es2019/index.js +1 -2
  96. package/dist/es2019/util/analytics/analytics.js +1 -1
  97. package/dist/esm/components/common/CachingEmoji.js +63 -23
  98. package/dist/esm/components/common/DeletableEmojiTooltipContent.js +14 -5
  99. package/dist/esm/components/common/EmojiActions.js +4 -4
  100. package/dist/esm/components/common/EmojiUploadPreview.js +1 -1
  101. package/dist/esm/components/common/ResourcedEmojiComponent.js +20 -5
  102. package/dist/esm/components/common/RetryableButton.js +3 -1
  103. package/dist/esm/components/compiled/common/DeleteButton.compiled.css +9 -0
  104. package/dist/esm/components/compiled/common/DeleteButton.js +42 -0
  105. package/dist/esm/components/compiled/common/Emoji.compiled.css +23 -0
  106. package/dist/esm/components/compiled/common/Emoji.js +370 -0
  107. package/dist/esm/components/compiled/common/EmojiActions.compiled.css +21 -0
  108. package/dist/esm/components/compiled/common/EmojiActions.js +210 -0
  109. package/dist/esm/components/compiled/common/EmojiDeletePreview.compiled.css +21 -0
  110. package/dist/esm/components/compiled/common/EmojiDeletePreview.js +142 -0
  111. package/dist/esm/components/compiled/common/EmojiErrorMessage.compiled.css +9 -0
  112. package/dist/esm/components/compiled/common/EmojiErrorMessage.js +48 -0
  113. package/dist/esm/components/compiled/common/EmojiFallback.compiled.css +7 -0
  114. package/dist/esm/components/compiled/common/EmojiFallback.js +29 -0
  115. package/dist/esm/components/compiled/common/EmojiPlaceholder.compiled.css +20 -0
  116. package/dist/esm/components/compiled/common/EmojiPlaceholder.js +58 -0
  117. package/dist/esm/components/compiled/common/EmojiPreviewComponent.compiled.css +52 -0
  118. package/dist/esm/components/compiled/common/EmojiPreviewComponent.js +35 -0
  119. package/dist/esm/components/compiled/common/EmojiRadioButton.compiled.css +39 -0
  120. package/dist/esm/components/compiled/common/EmojiRadioButton.js +62 -0
  121. package/dist/esm/components/compiled/common/EmojiUploadPicker.compiled.css +26 -0
  122. package/dist/esm/components/compiled/common/EmojiUploadPicker.js +312 -0
  123. package/dist/esm/components/compiled/common/EmojiUploadPreview.compiled.css +20 -0
  124. package/dist/esm/components/compiled/common/EmojiUploadPreview.js +114 -0
  125. package/dist/esm/components/compiled/common/RetryableButton.compiled.css +2 -0
  126. package/dist/esm/components/compiled/common/RetryableButton.js +63 -0
  127. package/dist/esm/components/compiled/common/Scrollable.compiled.css +13 -0
  128. package/dist/esm/components/compiled/common/Scrollable.js +90 -0
  129. package/dist/esm/components/compiled/common/TonePreviewButton.compiled.css +32 -0
  130. package/dist/esm/components/compiled/common/TonePreviewButton.js +42 -0
  131. package/dist/esm/components/compiled/common/ToneSelector.compiled.css +3 -0
  132. package/dist/esm/components/compiled/common/ToneSelector.js +101 -0
  133. package/dist/esm/components/compiled/common/ToolTipContentWithKeymap.compiled.css +7 -0
  134. package/dist/esm/components/compiled/common/ToolTipContentWithKeymap.js +19 -0
  135. package/dist/esm/components/picker/EmojiPickerFooter.js +1 -1
  136. package/dist/esm/components/picker/EmojiPickerList.js +2 -1
  137. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +2 -1
  138. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +1 -1
  139. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +3 -2
  140. package/dist/esm/components/uploader/EmojiUploadComponent.js +1 -1
  141. package/dist/esm/element.js +9 -2
  142. package/dist/esm/index.js +1 -2
  143. package/dist/esm/util/analytics/analytics.js +1 -1
  144. package/dist/types/components/common/EmojiActions.d.ts +2 -2
  145. package/dist/types/components/compiled/common/DeleteButton.d.ts +8 -0
  146. package/dist/types/components/compiled/common/Emoji.d.ts +95 -0
  147. package/dist/types/components/compiled/common/EmojiActions.d.ts +34 -0
  148. package/dist/types/components/compiled/common/EmojiDeletePreview.d.ts +21 -0
  149. package/dist/types/components/compiled/common/EmojiErrorMessage.d.ts +14 -0
  150. package/dist/types/components/compiled/common/EmojiFallback.d.ts +8 -0
  151. package/dist/types/components/compiled/common/EmojiPlaceholder.d.ts +12 -0
  152. package/dist/types/components/compiled/common/EmojiPreviewComponent.d.ts +7 -0
  153. package/dist/types/components/compiled/common/EmojiRadioButton.d.ts +16 -0
  154. package/dist/types/components/compiled/common/EmojiUploadPicker.d.ts +20 -0
  155. package/dist/types/components/compiled/common/EmojiUploadPreview.d.ts +18 -0
  156. package/dist/types/components/compiled/common/RetryableButton.d.ts +14 -0
  157. package/dist/types/components/compiled/common/Scrollable.d.ts +19 -0
  158. package/dist/types/components/compiled/common/TonePreviewButton.d.ts +14 -0
  159. package/dist/types/components/compiled/common/ToneSelector.d.ts +15 -0
  160. package/dist/types/components/compiled/common/ToolTipContentWithKeymap.d.ts +11 -0
  161. package/dist/types/element.d.ts +5 -2
  162. package/dist/types/index.d.ts +1 -2
  163. package/dist/types-ts4.5/components/common/EmojiActions.d.ts +2 -2
  164. package/dist/types-ts4.5/components/compiled/common/DeleteButton.d.ts +8 -0
  165. package/dist/types-ts4.5/components/compiled/common/Emoji.d.ts +95 -0
  166. package/dist/types-ts4.5/components/compiled/common/EmojiActions.d.ts +34 -0
  167. package/dist/types-ts4.5/components/compiled/common/EmojiDeletePreview.d.ts +21 -0
  168. package/dist/types-ts4.5/components/compiled/common/EmojiErrorMessage.d.ts +14 -0
  169. package/dist/types-ts4.5/components/compiled/common/EmojiFallback.d.ts +8 -0
  170. package/dist/types-ts4.5/components/compiled/common/EmojiPlaceholder.d.ts +12 -0
  171. package/dist/types-ts4.5/components/compiled/common/EmojiPreviewComponent.d.ts +7 -0
  172. package/dist/types-ts4.5/components/compiled/common/EmojiRadioButton.d.ts +16 -0
  173. package/dist/types-ts4.5/components/compiled/common/EmojiUploadPicker.d.ts +20 -0
  174. package/dist/types-ts4.5/components/compiled/common/EmojiUploadPreview.d.ts +18 -0
  175. package/dist/types-ts4.5/components/compiled/common/RetryableButton.d.ts +14 -0
  176. package/dist/types-ts4.5/components/compiled/common/Scrollable.d.ts +19 -0
  177. package/dist/types-ts4.5/components/compiled/common/TonePreviewButton.d.ts +14 -0
  178. package/dist/types-ts4.5/components/compiled/common/ToneSelector.d.ts +15 -0
  179. package/dist/types-ts4.5/components/compiled/common/ToolTipContentWithKeymap.d.ts +11 -0
  180. package/dist/types-ts4.5/element.d.ts +5 -2
  181. package/dist/types-ts4.5/index.d.ts +1 -2
  182. package/package.json +10 -2
@@ -0,0 +1,322 @@
1
+ /* EmojiUploadPicker.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.uploadEmojiNameInputTestId = exports.uploadEmojiComponentTestId = exports.default = exports.cancelEmojiUploadPickerTestId = void 0;
10
+ require("./EmojiUploadPicker.compiled.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var React = _react;
13
+ var _runtime = require("@compiled/react/runtime");
14
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+ var _colors = require("@atlaskit/theme/colors");
18
+ var _reactIntlNext = require("react-intl-next");
19
+ var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
20
+ var _closeCross = _interopRequireDefault(require("@atlaskit/icon/core/migration/close--cross"));
21
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
22
+ var _primitives = require("@atlaskit/primitives");
23
+ var _reactFocusLock = _interopRequireDefault(require("react-focus-lock"));
24
+ var ImageUtil = _interopRequireWildcard(require("../../../util/image"));
25
+ var _logger = _interopRequireDefault(require("../../../util/logger"));
26
+ var _i18n = require("../../i18n");
27
+ var _EmojiErrorMessage = _interopRequireDefault(require("./EmojiErrorMessage"));
28
+ var _EmojiUploadPreview = _interopRequireDefault(require("./EmojiUploadPreview"));
29
+ var _FileChooser = _interopRequireDefault(require("../../common/FileChooser"));
30
+ var _internalTypes = require("../../common/internal-types");
31
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
32
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
33
+ var closeEmojiUploadButton = null;
34
+ var emojiUpload = null;
35
+ var emojiUploadTop = null;
36
+ var headingH5 = null;
37
+ var uploadChooseFileEmojiName = null;
38
+ var uploadChooseFileMessage = null;
39
+ var uploadChooseFileRow = null;
40
+ var uploadEmojiNameInputTestId = exports.uploadEmojiNameInputTestId = 'upload-emoji-name-input';
41
+ var uploadEmojiComponentTestId = exports.uploadEmojiComponentTestId = 'upload-emoji-component';
42
+ var cancelEmojiUploadPickerTestId = exports.cancelEmojiUploadPickerTestId = 'cancel-emoji-upload-picker';
43
+ var disallowedReplacementsMap = new Map([[':', ''], ['!', ''], ['@', ''], ['#', ''], ['%', ''], ['^', ''], ['&', ''], ['*', ''], ['(', ''], [')', ''], [' ', '_']]);
44
+ var sanitizeName = function sanitizeName(name) {
45
+ // prevent / replace certain characters, allow others
46
+ disallowedReplacementsMap.forEach(function (replaceWith, exclude) {
47
+ name = name.split(exclude).join(replaceWith);
48
+ });
49
+ return name;
50
+ };
51
+ var maxNameLength = 50;
52
+ var toEmojiName = function toEmojiName(uploadName) {
53
+ var name = uploadName.split('_').join(' ');
54
+ return "".concat(name.substr(0, 1).toLocaleUpperCase()).concat(name.substr(1));
55
+ };
56
+ var ChooseEmojiFile = /*#__PURE__*/(0, _react.memo)(function (props) {
57
+ var _props$name = props.name,
58
+ name = _props$name === void 0 ? '' : _props$name,
59
+ onChooseFile = props.onChooseFile,
60
+ onClick = props.onClick,
61
+ onNameChange = props.onNameChange,
62
+ onUploadCancelled = props.onUploadCancelled,
63
+ errorMessage = props.errorMessage,
64
+ intl = props.intl;
65
+ var formatMessage = intl.formatMessage;
66
+ var disableChooser = !name;
67
+ var fileChooserButtonDescriptionId = 'choose.emoji.file.button.screen.reader.description.id';
68
+ var inputRef = (0, _react.useRef)(null);
69
+ var onKeyDownHandler = (0, _react.useCallback)(function (event) {
70
+ if (event.key === 'Escape') {
71
+ onUploadCancelled();
72
+ }
73
+ }, [onUploadCancelled]);
74
+ (0, _react.useLayoutEffect)(function () {
75
+ requestAnimationFrame(function () {
76
+ var _inputRef$current;
77
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
78
+ });
79
+ }, []);
80
+ var cancelLabel = formatMessage(_i18n.messages.cancelLabel);
81
+ var emojiPlaceholder = formatMessage(_i18n.messages.emojiPlaceholder);
82
+ var emojiNameAriaLabel = formatMessage(_i18n.messages.emojiNameAriaLabel);
83
+ var emojiChooseFileTitle = formatMessage(_i18n.messages.emojiChooseFileTitle);
84
+ return /*#__PURE__*/React.createElement("div", {
85
+ "data-testid": uploadEmojiComponentTestId,
86
+ className: (0, _runtime.ax)(["_ca0q19bv _u5f319bv _n3td19bv _19bv19bv _4t3icae7 _1e0c1txw _2lx21bp4 _1bah1b1v"])
87
+ }, /*#__PURE__*/React.createElement("div", {
88
+ className: (0, _runtime.ax)(["_11c8dcr7 _n3td1v6z _1e0c1txw _1bah1yb4 _4cvresu3"])
89
+ }, /*#__PURE__*/React.createElement("label", {
90
+ htmlFor: "new-emoji-name-input",
91
+ className: (0, _runtime.ax)(["_1w901vvm", "_fqoxdcr7 _12r21pd9"]),
92
+ style: {
93
+ "--_bbz764": (0, _runtime.ix)("var(--ds-text-subtle, ".concat(_colors.N300, ")"))
94
+ }
95
+ }, /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.addCustomEmojiLabel)), /*#__PURE__*/React.createElement("div", {
96
+ className: (0, _runtime.ax)(["_1e0c1txw"])
97
+ }, /*#__PURE__*/React.createElement(_standardButton.default, {
98
+ onClick: onUploadCancelled,
99
+ "aria-label": cancelLabel,
100
+ appearance: "subtle",
101
+ spacing: "none",
102
+ shouldFitContainer: true,
103
+ testId: cancelEmojiUploadPickerTestId
104
+ }, /*#__PURE__*/React.createElement(_closeCross.default, {
105
+ color: "currentColor",
106
+ LEGACY_size: "small",
107
+ label: cancelLabel
108
+ })))), /*#__PURE__*/React.createElement("div", {
109
+ className: (0, _runtime.ax)(["_1e0c1txw _1bah1yb4 _n3td1v6z"])
110
+ }, /*#__PURE__*/React.createElement("span", {
111
+ className: (0, _runtime.ax)(["_16jlkb7n _1o9zkb7n _i0dl1wug _2hwx14y2 _1rwq1j28 _scffidpf _xmji1r31 _gxxuglyw _34ir1o36 _coc6glyw _9bj2glyw"])
112
+ }, /*#__PURE__*/React.createElement(_textfield.default, {
113
+ placeholder: emojiPlaceholder,
114
+ "aria-label": emojiNameAriaLabel,
115
+ maxLength: maxNameLength,
116
+ onChange: onNameChange,
117
+ onKeyDown: onKeyDownHandler,
118
+ value: name,
119
+ isCompact: true,
120
+ autoFocus: true,
121
+ testId: uploadEmojiNameInputTestId,
122
+ ref: inputRef,
123
+ id: "new-emoji-name-input",
124
+ "aria-required": true
125
+ })), /*#__PURE__*/React.createElement(_primitives.Text, null, /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.emojiChooseFileScreenReaderDescription, function () {
126
+ return /*#__PURE__*/React.createElement(_FileChooser.default, {
127
+ label: emojiChooseFileTitle,
128
+ onChange: onChooseFile,
129
+ onClick: onClick,
130
+ accept: "image/png,image/jpeg,image/gif",
131
+ ariaDescribedBy: fileChooserButtonDescriptionId,
132
+ isDisabled: disableChooser
133
+ });
134
+ }))), /*#__PURE__*/React.createElement("div", {
135
+ id: fileChooserButtonDescriptionId
136
+ }, !errorMessage ? /*#__PURE__*/React.createElement(_primitives.Text, {
137
+ as: "p",
138
+ size: "small"
139
+ }, /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.emojiImageRequirements)) : /*#__PURE__*/React.createElement(_EmojiErrorMessage.default, {
140
+ errorStyle: "chooseFile",
141
+ message: errorMessage
142
+ })));
143
+ });
144
+ var EmojiUploadPicker = function EmojiUploadPicker(props) {
145
+ var _document$activeEleme;
146
+ var errorMessage = props.errorMessage,
147
+ initialUploadName = props.initialUploadName,
148
+ onUploadEmoji = props.onUploadEmoji,
149
+ onFileChooserClicked = props.onFileChooserClicked,
150
+ onUploadCancelled = props.onUploadCancelled,
151
+ intl = props.intl;
152
+ var _useState = (0, _react.useState)(errorMessage ? _internalTypes.UploadStatus.Error : _internalTypes.UploadStatus.Waiting),
153
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
154
+ uploadStatus = _useState2[0],
155
+ setUploadStatus = _useState2[1];
156
+ var _useState3 = (0, _react.useState)(),
157
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
158
+ chooseEmojiErrorMessage = _useState4[0],
159
+ setChooseEmojiErrorMessage = _useState4[1];
160
+ var _useState5 = (0, _react.useState)(initialUploadName && sanitizeName(initialUploadName)),
161
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
162
+ name = _useState6[0],
163
+ setName = _useState6[1];
164
+ var _useState7 = (0, _react.useState)(),
165
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
166
+ filename = _useState8[0],
167
+ setFilename = _useState8[1];
168
+ var _useState9 = (0, _react.useState)(),
169
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
170
+ previewImage = _useState10[0],
171
+ setPreviewImage = _useState10[1];
172
+ // document is undefined during ssr rendering and throws an error
173
+ var lastFocusedElementId = (0, _react.useRef)(typeof document !== 'undefined' ? (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.id : '');
174
+ (0, _react.useEffect)(function () {
175
+ if (errorMessage) {
176
+ setUploadStatus(_internalTypes.UploadStatus.Error);
177
+ return;
178
+ } else {
179
+ if (uploadStatus === _internalTypes.UploadStatus.Error) {
180
+ setUploadStatus(_internalTypes.UploadStatus.Waiting);
181
+ }
182
+ }
183
+ }, [errorMessage, uploadStatus]);
184
+ (0, _react.useEffect)(function () {
185
+ if (initialUploadName) {
186
+ setName(sanitizeName(initialUploadName));
187
+ }
188
+ }, [initialUploadName]);
189
+ var clearUploadPicker = (0, _react.useCallback)(function () {
190
+ setName(undefined);
191
+ setPreviewImage(undefined);
192
+ setUploadStatus(_internalTypes.UploadStatus.Waiting);
193
+ }, []);
194
+ var onNameChange = (0, _react.useCallback)(function (event) {
195
+ var newName = sanitizeName(event.target.value);
196
+ if (name !== newName) {
197
+ setName(newName);
198
+ }
199
+ }, [name]);
200
+ var onAddEmoji = (0, _react.useCallback)(function () {
201
+ if (uploadStatus === _internalTypes.UploadStatus.Uploading) {
202
+ return;
203
+ }
204
+ if (filename && name && previewImage) {
205
+ var notifyUpload = function notifyUpload(size) {
206
+ var width = size.width,
207
+ height = size.height;
208
+ setUploadStatus(_internalTypes.UploadStatus.Uploading);
209
+ onUploadEmoji({
210
+ name: toEmojiName(name),
211
+ shortName: ":".concat(name, ":"),
212
+ filename: filename,
213
+ dataURL: previewImage,
214
+ width: width,
215
+ height: height
216
+ }, uploadStatus === _internalTypes.UploadStatus.Error, clearUploadPicker);
217
+ };
218
+ ImageUtil.getNaturalImageSize(previewImage).then(function (size) {
219
+ notifyUpload(size);
220
+ }).catch(function (error) {
221
+ (0, _logger.default)('getNaturalImageSize error', error);
222
+ // Just set arbitrary size, worse case is it may render
223
+ // in wrong aspect ratio in some circumstances.
224
+ notifyUpload({
225
+ width: 32,
226
+ height: 32
227
+ });
228
+ });
229
+ }
230
+ }, [clearUploadPicker, filename, name, onUploadEmoji, previewImage, uploadStatus]);
231
+ var cancelChooseFile = (0, _react.useCallback)(function () {
232
+ setPreviewImage(undefined);
233
+ }, []);
234
+ var errorOnUpload = (0, _react.useCallback)(function (event) {
235
+ (0, _logger.default)('File load error: ', event);
236
+ setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.emojiUploadFailed));
237
+ cancelChooseFile();
238
+ }, [cancelChooseFile]);
239
+ var onFileLoad = (0, _react.useCallback)(function (file) {
240
+ return /*#__PURE__*/function () {
241
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(f) {
242
+ return _regenerator.default.wrap(function _callee$(_context) {
243
+ while (1) switch (_context.prev = _context.next) {
244
+ case 0:
245
+ _context.prev = 0;
246
+ setFilename(file.name);
247
+ _context.next = 4;
248
+ return ImageUtil.parseImage(f.target.result);
249
+ case 4:
250
+ setPreviewImage(f.target.result);
251
+ _context.next = 11;
252
+ break;
253
+ case 7:
254
+ _context.prev = 7;
255
+ _context.t0 = _context["catch"](0);
256
+ setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.emojiInvalidImage));
257
+ cancelChooseFile();
258
+ case 11:
259
+ case "end":
260
+ return _context.stop();
261
+ }
262
+ }, _callee, null, [[0, 7]]);
263
+ }));
264
+ return function (_x) {
265
+ return _ref.apply(this, arguments);
266
+ };
267
+ }();
268
+ }, [cancelChooseFile]);
269
+ var onChooseFile = (0, _react.useCallback)(function (event) {
270
+ var files = event.target.files;
271
+ if (files.length) {
272
+ var reader = new FileReader();
273
+ var file = files[0];
274
+ if (ImageUtil.hasFileExceededSize(file)) {
275
+ setChooseEmojiErrorMessage( /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.emojiImageTooBig));
276
+ cancelChooseFile();
277
+ return;
278
+ }
279
+ reader.addEventListener('load', onFileLoad(file));
280
+ reader.addEventListener('abort', errorOnUpload);
281
+ reader.addEventListener('error', errorOnUpload);
282
+ reader.readAsDataURL(file);
283
+ } else {
284
+ cancelChooseFile();
285
+ }
286
+ }, [cancelChooseFile, errorOnUpload, onFileLoad]);
287
+ var cancelUpload = (0, _react.useCallback)(function () {
288
+ clearUploadPicker();
289
+ onUploadCancelled();
290
+
291
+ // using setTimeout here to allow the UI to update before setting focus
292
+ setTimeout(function (lastFocus) {
293
+ if (lastFocus) {
294
+ var _document$getElementB;
295
+ (_document$getElementB = document.getElementById(lastFocus)) === null || _document$getElementB === void 0 || _document$getElementB.focus();
296
+ }
297
+ }, 0, lastFocusedElementId.current);
298
+ }, [clearUploadPicker, onUploadCancelled]);
299
+ var onChooseFileClicked = function onChooseFileClicked() {
300
+ onFileChooserClicked && onFileChooserClicked();
301
+ };
302
+ return /*#__PURE__*/React.createElement(_reactFocusLock.default, {
303
+ noFocusGuards: true
304
+ }, name && previewImage ? /*#__PURE__*/React.createElement(_EmojiUploadPreview.default, {
305
+ errorMessage: errorMessage,
306
+ name: name,
307
+ onAddEmoji: onAddEmoji,
308
+ onUploadCancelled: cancelUpload,
309
+ previewImage: previewImage,
310
+ uploadStatus: uploadStatus
311
+ }) : /*#__PURE__*/React.createElement(ChooseEmojiFile, {
312
+ name: name,
313
+ onChooseFile: onChooseFile,
314
+ onClick: onChooseFileClicked,
315
+ onNameChange: onNameChange,
316
+ onUploadCancelled: cancelUpload,
317
+ errorMessage: chooseEmojiErrorMessage,
318
+ intl: intl
319
+ }));
320
+ };
321
+ var EmojiUploadPickerComponent = (0, _reactIntlNext.injectIntl)( /*#__PURE__*/(0, _react.memo)(EmojiUploadPicker));
322
+ var _default = exports.default = EmojiUploadPickerComponent;
@@ -0,0 +1,20 @@
1
+
2
+ ._1fztdcr7 h5{font:var(--ds-font-body-UNSAFE_small,normal 400 9pt/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._2rkosqtm{border-radius:var(--ds-border-radius-100,3px)}._19bv19bv{padding-left:10px}
4
+ ._19bv1b66{padding-left:var(--ds-space-050,4px)}
5
+ ._19l31ylp img{max-height:40px}
6
+ ._19l3gktf img{max-height:20px}
7
+ ._1bah1yb4{justify-content:space-between}
8
+ ._1bahesu3{justify-content:flex-end}
9
+ ._1e0c1txw{display:flex}
10
+ ._2lx21bp4{flex-direction:column}
11
+ ._4cvr1h6o{align-items:center}
12
+ ._4t3i53f4{height:75pt}
13
+ ._avw21b66 h5{padding-bottom:var(--ds-space-050,4px)}
14
+ ._bfhklslw{background-color:var(--_1jkcdu5)}
15
+ ._ca0q19bv{padding-top:10px}
16
+ ._jl6w1vvm h5{color:var(--_bbz764)}
17
+ ._n3td19bv{padding-bottom:10px}
18
+ ._rtys12am img{max-width:50px}
19
+ ._rtys53f4 img{max-width:75pt}
20
+ ._u5f319bv{padding-right:10px}
@@ -0,0 +1,124 @@
1
+ /* EmojiUploadPreview.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.uploadPreviewTestId = exports.default = exports.cancelUploadButtonTestId = void 0;
10
+ require("./EmojiUploadPreview.compiled.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var React = _react;
13
+ var _runtime = require("@compiled/react/runtime");
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
20
+ var _colors = require("@atlaskit/theme/colors");
21
+ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
22
+ var _heading = _interopRequireDefault(require("@atlaskit/heading"));
23
+ var _reactIntlNext = require("react-intl-next");
24
+ var _constants = require("../../../util/constants");
25
+ var _i18n = require("../../i18n");
26
+ var _Emoji = _interopRequireDefault(require("./Emoji"));
27
+ var _EmojiErrorMessage = _interopRequireDefault(require("./EmojiErrorMessage"));
28
+ var _internalTypes = require("../../common/internal-types");
29
+ var _RetryableButton = _interopRequireDefault(require("./RetryableButton"));
30
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
31
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
32
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
33
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
34
+ var bigEmojiPreview = null;
35
+ var uploadAddRow = null;
36
+ var uploadPreview = null;
37
+ var uploadPreviewFooter = null;
38
+ var uploadPreviewText = null;
39
+ var uploadPreviewTestId = exports.uploadPreviewTestId = 'upload-preview';
40
+ var cancelUploadButtonTestId = exports.cancelUploadButtonTestId = 'cancel-upload-button';
41
+ var addEmojiPreviewDescriptionId = 'fabric.emoji.preview.description.id';
42
+ var EmojiUploadPreview = /*#__PURE__*/function (_PureComponent) {
43
+ function EmojiUploadPreview() {
44
+ (0, _classCallCheck2.default)(this, EmojiUploadPreview);
45
+ return _callSuper(this, EmojiUploadPreview, arguments);
46
+ }
47
+ (0, _inherits2.default)(EmojiUploadPreview, _PureComponent);
48
+ return (0, _createClass2.default)(EmojiUploadPreview, [{
49
+ key: "render",
50
+ value: function render() {
51
+ var _this$props = this.props,
52
+ name = _this$props.name,
53
+ previewImage = _this$props.previewImage,
54
+ uploadStatus = _this$props.uploadStatus,
55
+ errorMessage = _this$props.errorMessage,
56
+ onAddEmoji = _this$props.onAddEmoji,
57
+ onUploadCancelled = _this$props.onUploadCancelled,
58
+ intl = _this$props.intl;
59
+ var formatMessage = intl.formatMessage;
60
+ var emojiComponent;
61
+ if (previewImage) {
62
+ var emoji = {
63
+ shortName: ":".concat(name, ":"),
64
+ type: _constants.customCategory,
65
+ category: _constants.customCategory,
66
+ representation: {
67
+ imagePath: previewImage,
68
+ width: 24,
69
+ height: 24
70
+ },
71
+ searchable: true
72
+ };
73
+ emojiComponent = /*#__PURE__*/React.createElement(_Emoji.default, {
74
+ emoji: emoji
75
+ });
76
+ }
77
+ var uploading = uploadStatus === _internalTypes.UploadStatus.Uploading;
78
+ var retryableButtonLabel = errorMessage ? formatMessage(_i18n.messages.retryLabel) : formatMessage(_i18n.messages.addEmojiLabel);
79
+ return /*#__PURE__*/React.createElement("div", {
80
+ className: (0, _runtime.ax)(["_ca0q19bv _u5f319bv _n3td19bv _19bv19bv _1e0c1txw _2lx21bp4 _4t3i53f4"])
81
+ }, /*#__PURE__*/React.createElement("div", {
82
+ "data-testid": uploadPreviewTestId,
83
+ className: (0, _runtime.ax)(["_2rkosqtm _ca0q19bv _u5f319bv _n3td19bv _19bv19bv _1e0c1txw _1bah1yb4 _4cvr1h6o _bfhklslw"]),
84
+ style: {
85
+ "--_1jkcdu5": (0, _runtime.ix)("var(--ds-background-neutral, ".concat(_colors.N20, ")"))
86
+ }
87
+ }, /*#__PURE__*/React.createElement("div", {
88
+ className: (0, _runtime.ax)(["_1fztdcr7 _jl6w1vvm _avw21b66 _19l3gktf _rtys12am"]),
89
+ style: {
90
+ "--_bbz764": (0, _runtime.ix)("var(--ds-text-subtle, ".concat(_colors.N300, ")"))
91
+ }
92
+ }, /*#__PURE__*/React.createElement(_heading.default, {
93
+ size: "xsmall"
94
+ }, /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.emojiPreviewTitle)), /*#__PURE__*/React.createElement("div", {
95
+ id: addEmojiPreviewDescriptionId
96
+ }, /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _i18n.messages.emojiPreview, {
97
+ values: {
98
+ emoji: emojiComponent
99
+ }
100
+ })))), /*#__PURE__*/React.createElement("div", {
101
+ className: (0, _runtime.ax)(["_19bv1b66 _19l31ylp _rtys53f4"])
102
+ }, emojiComponent)), /*#__PURE__*/React.createElement("div", {
103
+ className: (0, _runtime.ax)(["_1e0c1txw _1bahesu3 _4cvr1h6o _ca0q19bv"])
104
+ }, !uploading && errorMessage ? /*#__PURE__*/React.createElement(_EmojiErrorMessage.default, {
105
+ errorStyle: "preview",
106
+ message: errorMessage,
107
+ tooltip: true
108
+ }) : null, /*#__PURE__*/React.createElement(_RetryableButton.default, {
109
+ label: retryableButtonLabel,
110
+ onSubmit: onAddEmoji,
111
+ appearance: "primary",
112
+ loading: uploading,
113
+ error: !!errorMessage,
114
+ ariaDescribedBy: addEmojiPreviewDescriptionId
115
+ }), /*#__PURE__*/React.createElement(_standardButton.default, {
116
+ onClick: onUploadCancelled,
117
+ appearance: "subtle",
118
+ isDisabled: uploading,
119
+ testId: cancelUploadButtonTestId
120
+ }, /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.cancelLabel))));
121
+ }
122
+ }]);
123
+ }(_react.PureComponent);
124
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(EmojiUploadPreview);
@@ -0,0 +1,2 @@
1
+ ._18u019bv{margin-left:10px}
2
+ ._2hwx19bv{margin-right:10px}
@@ -0,0 +1,73 @@
1
+ /* RetryableButton.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.uploadEmojiButtonTestId = exports.retryUploadButtonTestId = exports.default = void 0;
10
+ require("./RetryableButton.compiled.css");
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _runtime = require("@compiled/react/runtime");
13
+ var _reactIntlNext = require("react-intl-next");
14
+ var _new = _interopRequireDefault(require("@atlaskit/button/new"));
15
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
16
+ var _compiled = require("@atlaskit/primitives/compiled");
17
+ var _i18n = require("../../i18n");
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ var buttonSpinner = null;
21
+ var retryUploadButtonTestId = exports.retryUploadButtonTestId = 'retry-upload-button';
22
+ var uploadEmojiButtonTestId = exports.uploadEmojiButtonTestId = 'upload-emoji-button';
23
+ var LoadingSpinner = function LoadingSpinner() {
24
+ return /*#__PURE__*/React.createElement("span", {
25
+ className: (0, _runtime.ax)(["_2hwx19bv _18u019bv"])
26
+ }, /*#__PURE__*/React.createElement(_spinner.default, null));
27
+ };
28
+ var RetryButton = function RetryButton(props) {
29
+ var onSubmit = props.onSubmit,
30
+ ariaLabelledBy = props.ariaLabelledBy,
31
+ ariaDescribedBy = props.ariaDescribedBy;
32
+ return /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.retryLabel, function (retryLabel) {
33
+ return /*#__PURE__*/React.createElement(_compiled.Box, {
34
+ paddingInlineEnd: "space.050"
35
+ }, /*#__PURE__*/React.createElement(_new.default, {
36
+ appearance: "warning",
37
+ onClick: onSubmit,
38
+ testId: retryUploadButtonTestId,
39
+ "aria-describedby": ariaDescribedBy,
40
+ "aria-labelledby": ariaLabelledBy,
41
+ autoFocus: true
42
+ }, retryLabel));
43
+ });
44
+ };
45
+ var UploadButton = function UploadButton(props) {
46
+ var appearance = props.appearance,
47
+ onSubmit = props.onSubmit,
48
+ label = props.label,
49
+ ariaLabelledBy = props.ariaLabelledBy,
50
+ ariaDescribedBy = props.ariaDescribedBy;
51
+ return /*#__PURE__*/React.createElement(_compiled.Box, {
52
+ paddingInlineEnd: "space.050"
53
+ }, /*#__PURE__*/React.createElement(_new.default, {
54
+ appearance: appearance,
55
+ onClick: onSubmit,
56
+ testId: uploadEmojiButtonTestId,
57
+ "aria-describedby": ariaDescribedBy,
58
+ "aria-labelledby": ariaLabelledBy,
59
+ autoFocus: true
60
+ }, label));
61
+ };
62
+ var RetryableButton = function RetryableButton(props) {
63
+ var loading = props.loading,
64
+ error = props.error;
65
+ if (loading) {
66
+ return /*#__PURE__*/React.createElement(LoadingSpinner, null);
67
+ }
68
+ if (error) {
69
+ return /*#__PURE__*/React.createElement(RetryButton, props);
70
+ }
71
+ return /*#__PURE__*/React.createElement(UploadButton, props);
72
+ };
73
+ var _default = exports.default = RetryableButton;
@@ -0,0 +1,13 @@
1
+
2
+ ._19ityw3a{border:var(--_1id3pet)}
3
+ ._2rkosqtm{border-radius:var(--ds-border-radius-100,3px)}._18m91wug{overflow-y:auto}
4
+ ._18u0idpf{margin-left:0}
5
+ ._19bvidpf{padding-left:0}
6
+ ._19pkidpf{margin-top:0}
7
+ ._1e0c1ule{display:block}
8
+ ._1reo15vq{overflow-x:hidden}
9
+ ._2hwxidpf{margin-right:0}
10
+ ._ca0qidpf{padding-top:0}
11
+ ._n3tdidpf{padding-bottom:0}
12
+ ._otyridpf{margin-bottom:0}
13
+ ._u5f3idpf{padding-right:0}
@@ -0,0 +1,97 @@
1
+ /* Scrollable.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = void 0;
10
+ require("./Scrollable.compiled.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var React = _react;
13
+ var _runtime = require("@compiled/react/runtime");
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
25
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // FIXME - FAB-1732 looking at making a shared component for this
26
+ var emojiScrollable = null;
27
+ var Scrollable = exports.default = /*#__PURE__*/function (_PureComponent) {
28
+ function Scrollable() {
29
+ var _this;
30
+ (0, _classCallCheck2.default)(this, Scrollable);
31
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32
+ args[_key] = arguments[_key];
33
+ }
34
+ _this = _callSuper(this, Scrollable, [].concat(args));
35
+ (0, _defineProperty2.default)(_this, "scrollableDiv", null);
36
+ // API
37
+ (0, _defineProperty2.default)(_this, "reveal", function (child, forceToTop) {
38
+ if (child && _this.scrollableDiv) {
39
+ // Not using Element.scrollIntoView as it scrolls even to top/bottom of view even if
40
+ // already visible
41
+ var scrollableRect = _this.scrollableDiv.getBoundingClientRect();
42
+ var elementRect = child.getBoundingClientRect();
43
+ if (forceToTop || elementRect.top < scrollableRect.top) {
44
+ _this.scrollableDiv.scrollTop += elementRect.top - scrollableRect.top;
45
+ } else if (elementRect.bottom > scrollableRect.bottom) {
46
+ _this.scrollableDiv.scrollTop += elementRect.bottom - scrollableRect.bottom;
47
+ }
48
+ }
49
+ });
50
+ (0, _defineProperty2.default)(_this, "scrollToBottom", function () {
51
+ if (_this.scrollableDiv) {
52
+ _this.scrollableDiv.scrollTop = _this.scrollableDiv.scrollHeight;
53
+ }
54
+ });
55
+ (0, _defineProperty2.default)(_this, "handleScroll", function (event) {
56
+ var sampleOffset = 10;
57
+ var firstElement;
58
+ if (_this.scrollableDiv) {
59
+ var scrollableRect = _this.scrollableDiv.getBoundingClientRect();
60
+ firstElement = document.elementFromPoint(scrollableRect.left + sampleOffset, scrollableRect.top + sampleOffset);
61
+ }
62
+ if (_this.props.onScroll && firstElement) {
63
+ _this.props.onScroll(firstElement, event);
64
+ }
65
+ });
66
+ (0, _defineProperty2.default)(_this, "handleRef", function (ref) {
67
+ _this.scrollableDiv = ref;
68
+ });
69
+ return _this;
70
+ }
71
+ (0, _inherits2.default)(Scrollable, _PureComponent);
72
+ return (0, _createClass2.default)(Scrollable, [{
73
+ key: "render",
74
+ value: function render() {
75
+ var _this$props = this.props,
76
+ children = _this$props.children,
77
+ className = _this$props.className,
78
+ maxHeight = _this$props.maxHeight,
79
+ onMouseLeave = _this$props.onMouseLeave;
80
+ var style = maxHeight ? {
81
+ maxHeight: maxHeight
82
+ } : {};
83
+ return /*#__PURE__*/React.createElement("div", {
84
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
85
+ className: (0, _runtime.ax)(["_19ityw3a _2rkosqtm _19pkidpf _2hwxidpf _otyridpf _18u0idpf _ca0qidpf _u5f3idpf _n3tdidpf _19bvidpf _1e0c1ule _1reo15vq _18m91wug", "emoji-scrollable ".concat(className)]),
86
+ onMouseLeave: onMouseLeave,
87
+ onScroll: this.handleScroll,
88
+ ref: this.handleRef
89
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
90
+ ,
91
+ style: _objectSpread(_objectSpread({}, style), {}, {
92
+ "--_1id3pet": (0, _runtime.ix)("1px solid ".concat("var(--ds-border, #fff)"))
93
+ })
94
+ }, children);
95
+ }
96
+ }]);
97
+ }(_react.PureComponent);