@atlaskit/mention 27.17.0 → 27.18.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 (225) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/cjs/api/AbstractMentionResource.js +111 -0
  3. package/dist/cjs/api/AbstractPresenceResource.js +41 -0
  4. package/dist/cjs/api/AbstractResource.js +48 -0
  5. package/dist/cjs/api/Callback.js +5 -0
  6. package/dist/cjs/api/DefaultMentionNameResolver.js +178 -0
  7. package/dist/cjs/api/DefaultPresenceCache.js +159 -0
  8. package/dist/cjs/api/DefaultPresenceParser.js +91 -0
  9. package/dist/cjs/api/HttpError.js +16 -0
  10. package/dist/cjs/api/MentionNameResolver.js +13 -201
  11. package/dist/cjs/api/MentionResource.js +52 -157
  12. package/dist/cjs/api/PresenceResource.js +39 -263
  13. package/dist/cjs/api/Queue.js +5 -0
  14. package/dist/cjs/api/isResolvingMentionProvider.js +9 -0
  15. package/dist/cjs/api/mergeNameResolverQueues.js +36 -0
  16. package/dist/cjs/components/Mention/MentionInternal.js +247 -0
  17. package/dist/cjs/components/Mention/ResourcedMention.js +5 -4
  18. package/dist/cjs/components/Mention/index.js +29 -243
  19. package/dist/cjs/components/MentionAvatar/index.js +5 -4
  20. package/dist/cjs/components/MentionItem/index.js +18 -12
  21. package/dist/cjs/components/MentionList/index.js +4 -3
  22. package/dist/cjs/components/MentionPicker/MentionPicker.js +231 -0
  23. package/dist/cjs/components/MentionPicker/index.js +18 -227
  24. package/dist/cjs/components/MessagesIntlProvider/index.js +2 -2
  25. package/dist/cjs/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +228 -0
  26. package/dist/cjs/components/ResourcedMentionList/index.js +14 -223
  27. package/dist/cjs/index.js +17 -15
  28. package/dist/cjs/is-agent-mention.js +12 -0
  29. package/dist/cjs/is-app-mention.js +10 -0
  30. package/dist/cjs/is-promise.js +9 -0
  31. package/dist/cjs/is-restricted.js +10 -0
  32. package/dist/cjs/is-special-mention-text.js +9 -0
  33. package/dist/cjs/is-special-mention.js +10 -0
  34. package/dist/cjs/is-team-mention.js +10 -0
  35. package/dist/cjs/resource.js +15 -12
  36. package/dist/cjs/team-resource.js +9 -9
  37. package/dist/cjs/typeahead.js +4 -0
  38. package/dist/cjs/types.js +71 -30
  39. package/dist/cjs/util/actual-mouse-move.js +14 -0
  40. package/dist/cjs/util/analytics.js +91 -107
  41. package/dist/cjs/util/build-sli-payload.js +27 -0
  42. package/dist/cjs/util/fire-analytics-mention-event.js +32 -0
  43. package/dist/cjs/util/fire-analytics-mention-hydration-event.js +33 -0
  44. package/dist/cjs/util/fire-analytics-mention-typeahead-event.js +34 -0
  45. package/dist/cjs/util/fire-analytics.js +18 -0
  46. package/dist/cjs/util/fire-sli-analytics-event.js +16 -0
  47. package/dist/cjs/util/get-messages-for-locale.js +233 -0
  48. package/dist/cjs/util/i18n.js +9 -254
  49. package/dist/cjs/util/left-click.js +9 -0
  50. package/dist/cjs/util/mouse-location.js +12 -0
  51. package/dist/cjs/util/mouse.js +1 -26
  52. package/dist/cjs/util/package-name.js +7 -0
  53. package/dist/cjs/util/package-version.js +7 -0
  54. package/dist/cjs/util/prop-formatter.js +25 -0
  55. package/dist/es2019/api/AbstractMentionResource.js +73 -0
  56. package/dist/es2019/api/AbstractPresenceResource.js +17 -0
  57. package/dist/es2019/api/AbstractResource.js +33 -0
  58. package/dist/es2019/api/Callback.js +1 -0
  59. package/dist/es2019/api/DefaultMentionNameResolver.js +152 -0
  60. package/dist/es2019/api/DefaultPresenceCache.js +111 -0
  61. package/dist/es2019/api/DefaultPresenceParser.js +58 -0
  62. package/dist/es2019/api/HttpError.js +8 -0
  63. package/dist/es2019/api/MentionNameResolver.js +13 -176
  64. package/dist/es2019/api/MentionResource.js +28 -122
  65. package/dist/es2019/api/PresenceResource.js +19 -185
  66. package/dist/es2019/api/Queue.js +1 -0
  67. package/dist/es2019/api/isResolvingMentionProvider.js +1 -0
  68. package/dist/es2019/api/mergeNameResolverQueues.js +25 -0
  69. package/dist/es2019/components/Mention/MentionInternal.js +225 -0
  70. package/dist/es2019/components/Mention/ResourcedMention.js +4 -3
  71. package/dist/es2019/components/Mention/index.js +19 -223
  72. package/dist/es2019/components/MentionAvatar/index.js +3 -2
  73. package/dist/es2019/components/MentionItem/index.js +14 -8
  74. package/dist/es2019/components/MentionList/index.js +2 -1
  75. package/dist/es2019/components/MentionPicker/MentionPicker.js +198 -0
  76. package/dist/es2019/components/MentionPicker/index.js +15 -200
  77. package/dist/es2019/components/MessagesIntlProvider/index.js +1 -1
  78. package/dist/es2019/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +187 -0
  79. package/dist/es2019/components/ResourcedMentionList/index.js +9 -187
  80. package/dist/es2019/element.js +5 -0
  81. package/dist/es2019/index.js +13 -9
  82. package/dist/es2019/is-agent-mention.js +6 -0
  83. package/dist/es2019/is-app-mention.js +4 -0
  84. package/dist/es2019/is-promise.js +1 -0
  85. package/dist/es2019/is-restricted.js +4 -0
  86. package/dist/es2019/is-special-mention-text.js +3 -0
  87. package/dist/es2019/is-special-mention.js +4 -0
  88. package/dist/es2019/is-team-mention.js +4 -0
  89. package/dist/es2019/item.js +5 -0
  90. package/dist/es2019/resource.js +15 -5
  91. package/dist/es2019/team-resource.js +10 -4
  92. package/dist/es2019/typeahead.js +5 -0
  93. package/dist/es2019/types.js +30 -21
  94. package/dist/es2019/util/actual-mouse-move.js +8 -0
  95. package/dist/es2019/util/analytics.js +35 -91
  96. package/dist/es2019/util/build-sli-payload.js +18 -0
  97. package/dist/es2019/util/fire-analytics-mention-event.js +24 -0
  98. package/dist/es2019/util/fire-analytics-mention-hydration-event.js +25 -0
  99. package/dist/es2019/util/fire-analytics-mention-typeahead-event.js +24 -0
  100. package/dist/es2019/util/fire-analytics.js +10 -0
  101. package/dist/es2019/util/fire-sli-analytics-event.js +8 -0
  102. package/dist/es2019/util/get-messages-for-locale.js +145 -0
  103. package/dist/es2019/util/i18n.js +2 -165
  104. package/dist/es2019/util/left-click.js +3 -0
  105. package/dist/es2019/util/mouse-location.js +6 -0
  106. package/dist/es2019/util/mouse.js +0 -18
  107. package/dist/es2019/util/package-name.js +1 -0
  108. package/dist/es2019/util/package-version.js +1 -0
  109. package/dist/es2019/util/prop-formatter.js +18 -0
  110. package/dist/esm/api/AbstractMentionResource.js +104 -0
  111. package/dist/esm/api/AbstractPresenceResource.js +34 -0
  112. package/dist/esm/api/AbstractResource.js +41 -0
  113. package/dist/esm/api/Callback.js +1 -0
  114. package/dist/esm/api/DefaultMentionNameResolver.js +171 -0
  115. package/dist/esm/api/DefaultPresenceCache.js +152 -0
  116. package/dist/esm/api/DefaultPresenceParser.js +84 -0
  117. package/dist/esm/api/HttpError.js +9 -0
  118. package/dist/esm/api/MentionNameResolver.js +13 -198
  119. package/dist/esm/api/MentionResource.js +30 -154
  120. package/dist/esm/api/PresenceResource.js +22 -256
  121. package/dist/esm/api/Queue.js +1 -0
  122. package/dist/esm/api/isResolvingMentionProvider.js +3 -0
  123. package/dist/esm/api/mergeNameResolverQueues.js +29 -0
  124. package/dist/esm/components/Mention/MentionInternal.js +242 -0
  125. package/dist/esm/components/Mention/ResourcedMention.js +4 -3
  126. package/dist/esm/components/Mention/index.js +19 -240
  127. package/dist/esm/components/MentionAvatar/index.js +3 -2
  128. package/dist/esm/components/MentionItem/index.js +14 -8
  129. package/dist/esm/components/MentionList/index.js +2 -1
  130. package/dist/esm/components/MentionPicker/MentionPicker.js +225 -0
  131. package/dist/esm/components/MentionPicker/index.js +15 -227
  132. package/dist/esm/components/MessagesIntlProvider/index.js +1 -1
  133. package/dist/esm/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +221 -0
  134. package/dist/esm/components/ResourcedMentionList/index.js +9 -221
  135. package/dist/esm/element.js +5 -0
  136. package/dist/esm/index.js +13 -9
  137. package/dist/esm/is-agent-mention.js +6 -0
  138. package/dist/esm/is-app-mention.js +4 -0
  139. package/dist/esm/is-promise.js +3 -0
  140. package/dist/esm/is-restricted.js +4 -0
  141. package/dist/esm/is-special-mention-text.js +3 -0
  142. package/dist/esm/is-special-mention.js +4 -0
  143. package/dist/esm/is-team-mention.js +4 -0
  144. package/dist/esm/item.js +5 -0
  145. package/dist/esm/resource.js +15 -5
  146. package/dist/esm/team-resource.js +10 -4
  147. package/dist/esm/typeahead.js +5 -0
  148. package/dist/esm/types.js +30 -23
  149. package/dist/esm/util/actual-mouse-move.js +8 -0
  150. package/dist/esm/util/analytics.js +35 -105
  151. package/dist/esm/util/build-sli-payload.js +20 -0
  152. package/dist/esm/util/fire-analytics-mention-event.js +26 -0
  153. package/dist/esm/util/fire-analytics-mention-hydration-event.js +27 -0
  154. package/dist/esm/util/fire-analytics-mention-typeahead-event.js +28 -0
  155. package/dist/esm/util/fire-analytics.js +12 -0
  156. package/dist/esm/util/fire-sli-analytics-event.js +10 -0
  157. package/dist/esm/util/get-messages-for-locale.js +163 -0
  158. package/dist/esm/util/i18n.js +2 -183
  159. package/dist/esm/util/left-click.js +3 -0
  160. package/dist/esm/util/mouse-location.js +6 -0
  161. package/dist/esm/util/mouse.js +0 -18
  162. package/dist/esm/util/package-name.js +1 -0
  163. package/dist/esm/util/package-version.js +1 -0
  164. package/dist/esm/util/prop-formatter.js +18 -0
  165. package/dist/types/api/AbstractMentionResource.d.ts +15 -0
  166. package/dist/types/api/AbstractPresenceResource.d.ts +6 -0
  167. package/dist/types/api/AbstractResource.d.ts +11 -0
  168. package/dist/types/api/Callback.d.ts +4 -0
  169. package/dist/types/api/DefaultMentionNameResolver.d.ts +27 -0
  170. package/dist/types/api/DefaultPresenceCache.d.ts +57 -0
  171. package/dist/types/api/DefaultPresenceParser.d.ts +8 -0
  172. package/dist/types/api/HttpError.d.ts +7 -0
  173. package/dist/types/api/MentionNameResolver.d.ts +14 -35
  174. package/dist/types/api/MentionResource.d.ts +18 -33
  175. package/dist/types/api/PresenceResource.d.ts +15 -69
  176. package/dist/types/api/Queue.d.ts +2 -0
  177. package/dist/types/api/isResolvingMentionProvider.d.ts +2 -0
  178. package/dist/types/api/mergeNameResolverQueues.d.ts +6 -0
  179. package/dist/types/components/Mention/MentionInternal.d.ts +27 -0
  180. package/dist/types/components/Mention/ResourcedMention.d.ts +1 -1
  181. package/dist/types/components/Mention/index.d.ts +9 -20
  182. package/dist/types/components/MentionAvatar/index.d.ts +1 -1
  183. package/dist/types/components/MentionItem/index.d.ts +4 -1
  184. package/dist/types/components/MentionPicker/MentionPicker.d.ts +46 -0
  185. package/dist/types/components/MentionPicker/index.d.ts +5 -42
  186. package/dist/types/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.d.ts +30 -0
  187. package/dist/types/components/ResourcedMentionList/index.d.ts +5 -27
  188. package/dist/types/element.d.ts +3 -0
  189. package/dist/types/index.d.ts +15 -10
  190. package/dist/types/is-agent-mention.d.ts +2 -0
  191. package/dist/types/is-app-mention.d.ts +2 -0
  192. package/dist/types/is-promise.d.ts +1 -0
  193. package/dist/types/is-restricted.d.ts +1 -0
  194. package/dist/types/is-special-mention-text.d.ts +1 -0
  195. package/dist/types/is-special-mention.d.ts +2 -0
  196. package/dist/types/is-team-mention.d.ts +2 -0
  197. package/dist/types/item.d.ts +3 -0
  198. package/dist/types/resource.d.ts +15 -6
  199. package/dist/types/team-resource.d.ts +10 -4
  200. package/dist/types/typeahead.d.ts +3 -0
  201. package/dist/types/types.d.ts +28 -8
  202. package/dist/types/util/actual-mouse-move.d.ts +2 -0
  203. package/dist/types/util/analytics.d.ts +33 -10
  204. package/dist/types/util/build-sli-payload.d.ts +4 -0
  205. package/dist/types/util/fire-analytics-mention-event.d.ts +1 -0
  206. package/dist/types/util/fire-analytics-mention-hydration-event.d.ts +1 -0
  207. package/dist/types/util/fire-analytics-mention-typeahead-event.d.ts +1 -0
  208. package/dist/types/util/fire-analytics.d.ts +1 -0
  209. package/dist/types/util/fire-sli-analytics-event.d.ts +1 -0
  210. package/dist/types/util/get-messages-for-locale.d.ts +11 -0
  211. package/dist/types/util/i18n.d.ts +0 -15
  212. package/dist/types/util/left-click.d.ts +2 -0
  213. package/dist/types/util/mouse-location.d.ts +3 -0
  214. package/dist/types/util/mouse.d.ts +0 -4
  215. package/dist/types/util/package-name.d.ts +1 -0
  216. package/dist/types/util/package-version.d.ts +1 -0
  217. package/dist/types/util/prop-formatter.d.ts +5 -0
  218. package/package.json +3 -3
  219. package/dist/cjs/i18n/index.js +0 -216
  220. package/dist/es2019/i18n/index.js +0 -37
  221. package/dist/esm/i18n/index.js +0 -37
  222. package/dist/types/i18n/index.d.ts +0 -37
  223. /package/dist/cjs/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
  224. /package/dist/es2019/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
  225. /package/dist/esm/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
@@ -1,11 +1,16 @@
1
- /* index.tsx generated by @compiled/babel-plugin v2.0.0 */
2
1
  "use strict";
3
2
 
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.MentionInternal = exports.ANALYTICS_HOVER_DELAY = void 0;
7
+ exports.ANALYTICS_HOVER_DELAY = void 0;
8
+ Object.defineProperty(exports, "MentionInternal", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _MentionInternal.MentionInternal;
12
+ }
13
+ });
9
14
  Object.defineProperty(exports, "UNKNOWN_USER_ID", {
10
15
  enumerable: true,
11
16
  get: function get() {
@@ -13,261 +18,42 @@ Object.defineProperty(exports, "UNKNOWN_USER_ID", {
13
18
  }
14
19
  });
15
20
  exports.default = void 0;
16
- require("./index.compiled.css");
17
- var _runtime = require("@compiled/react/runtime");
18
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
19
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
20
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
- var _react = _interopRequireDefault(require("react"));
26
- var _focusRing = _interopRequireDefault(require("@atlaskit/focus-ring"));
27
- var _MessagesIntlProvider = _interopRequireDefault(require("../MessagesIntlProvider"));
28
- var _PrimitiveMention = _interopRequireDefault(require("./PrimitiveMention"));
29
- var _NoAccessTooltip = _interopRequireDefault(require("../NoAccessTooltip"));
30
- var _DisabledMentionTooltip = _interopRequireDefault(require("../DisabledMentionTooltip"));
31
- var _constants = require("../../_constants");
32
- var _types = require("../../types");
33
- var _analytics = require("../../util/analytics");
34
21
  var _withAnalyticsEvents = _interopRequireDefault(require("@atlaskit/analytics-next/withAnalyticsEvents"));
35
- var _ufo = require("@atlaskit/ufo");
36
- var _i18n = require("../../util/i18n");
37
- var _ufoExperiences = require("./ufoExperiences");
38
- 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; }
39
- 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; }
40
- 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)); }
41
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @atlaskit/design-system/no-deprecated-imports, @typescript-eslint/ban-types -- Preserve existing mention implementation while focus-ring usage is reviewed separately. */
22
+ var _fireAnalyticsMentionEvent = require("../../util/fire-analytics-mention-event");
23
+ var _MentionInternal = require("./MentionInternal");
24
+ var _constants = require("../../_constants");
25
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
26
+ /**
27
+ * @jsxRuntime classic
28
+ * @jsx jsx
29
+ * @jsxFrag React.Fragment
30
+ */
31
+ /* eslint-disable @atlaskit/design-system/no-deprecated-imports, @typescript-eslint/ban-types -- Preserve existing mention implementation while focus-ring usage is reviewed separately. */
32
+
42
33
  var ANALYTICS_HOVER_DELAY = exports.ANALYTICS_HOVER_DELAY = 1000;
43
- var avatarStyles = null;
44
- var avatarFallbackStyles = null;
45
- var avatarImageStyles = null;
46
- var agentAvatarStyles = null;
47
- var MentionInternal = exports.MentionInternal = /*#__PURE__*/function (_React$PureComponent) {
48
- function MentionInternal(props) {
49
- var _this;
50
- (0, _classCallCheck2.default)(this, MentionInternal);
51
- _this = _callSuper(this, MentionInternal, [props]);
52
- (0, _defineProperty2.default)(_this, "state", {
53
- hasAvatarError: false
54
- });
55
- (0, _defineProperty2.default)(_this, "handleAvatarError", function () {
56
- _this.setState({
57
- hasAvatarError: true
58
- });
59
- });
60
- (0, _defineProperty2.default)(_this, "handleOnClick", function (e) {
61
- var _this$props = _this.props,
62
- id = _this$props.id,
63
- text = _this$props.text,
64
- onClick = _this$props.onClick,
65
- isDisabled = _this$props.isDisabled;
66
- if (isDisabled) {
67
- // Disabled chips do not invoke their click handler.
68
- return;
69
- }
70
- if (onClick) {
71
- onClick(id, text, e);
72
- }
73
- });
74
- (0, _defineProperty2.default)(_this, "handleOnMouseEnter", function (e) {
75
- var _this$props2 = _this.props,
76
- id = _this$props2.id,
77
- text = _this$props2.text,
78
- onMouseEnter = _this$props2.onMouseEnter,
79
- onHover = _this$props2.onHover;
80
- if (onMouseEnter) {
81
- onMouseEnter(id, text, e);
82
- }
83
- _this.hoverTimeout = window.setTimeout(function () {
84
- if (onHover) {
85
- onHover();
86
- }
87
- _this.hoverTimeout = undefined;
88
- }, ANALYTICS_HOVER_DELAY);
89
- });
90
- (0, _defineProperty2.default)(_this, "handleOnMouseLeave", function (e) {
91
- var _this$props3 = _this.props,
92
- id = _this$props3.id,
93
- text = _this$props3.text,
94
- onMouseLeave = _this$props3.onMouseLeave;
95
- if (onMouseLeave) {
96
- onMouseLeave(id, text, e);
97
- }
98
- if (_this.hoverTimeout) {
99
- clearTimeout(_this.hoverTimeout);
100
- }
101
- });
102
- (0, _defineProperty2.default)(_this, "getMentionType", function () {
103
- var _this$props4 = _this.props,
104
- accessLevel = _this$props4.accessLevel,
105
- isHighlighted = _this$props4.isHighlighted,
106
- isDisabled = _this$props4.isDisabled;
107
- if (isDisabled) {
108
- return _types.MentionType.DISABLED;
109
- }
110
- if (isHighlighted) {
111
- return _types.MentionType.SELF;
112
- }
113
- if ((0, _types.isRestricted)(accessLevel)) {
114
- return _types.MentionType.RESTRICTED;
115
- }
116
- return _types.MentionType.DEFAULT;
117
- });
118
- _ufoExperiences.mentionRenderedUfoExperience.getInstance(props.id).start();
119
- return _this;
120
- }
121
- (0, _inherits2.default)(MentionInternal, _React$PureComponent);
122
- return (0, _createClass2.default)(MentionInternal, [{
123
- key: "componentDidMount",
124
- value: function componentDidMount() {
125
- _ufoExperiences.mentionRenderedUfoExperience.getInstance(this.props.id).success();
126
- }
127
- }, {
128
- key: "componentWillUnmount",
129
- value: function componentWillUnmount() {
130
- if (this.hoverTimeout) {
131
- clearTimeout(this.hoverTimeout);
132
- }
133
- var ufoInstance = _ufoExperiences.mentionRenderedUfoExperience.getInstance(this.props.id);
134
- if ([_ufo.UFOExperienceState['STARTED'], _ufo.UFOExperienceState['IN_PROGRESS']].includes(ufoInstance.state)) {
135
- ufoInstance.abort();
136
- }
137
- }
138
- }, {
139
- key: "renderUnknownUserError",
140
- value: function renderUnknownUserError(id) {
141
- return /*#__PURE__*/_react.default.createElement(_i18n.UnknownUserError, {
142
- values: {
143
- userId: id.slice(-5)
144
- }
145
- }, function (message) {
146
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "@".concat(message));
147
- });
148
- }
149
- }, {
150
- key: "render",
151
- value: function render() {
152
- var handleAvatarError = this.handleAvatarError,
153
- handleOnClick = this.handleOnClick,
154
- handleOnMouseEnter = this.handleOnMouseEnter,
155
- handleOnMouseLeave = this.handleOnMouseLeave,
156
- props = this.props;
157
- var appType = props.appType,
158
- avatarUrl = props.avatarUrl,
159
- text = props.text,
160
- id = props.id,
161
- accessLevel = props.accessLevel,
162
- localId = props.localId,
163
- disabledTooltip = props.disabledTooltip,
164
- isAvatarImagePreShaped = props.isAvatarImagePreShaped,
165
- renderAvatarSlot = props.renderAvatarSlot;
166
- var mentionType = this.getMentionType();
167
- var failedMention = text === "@".concat(_constants.UNKNOWN_USER_ID);
168
- var showAvatarSlot = Boolean(renderAvatarSlot) && !failedMention;
169
- var visibleText = showAvatarSlot && text.startsWith('@') ? text.slice(1) : text;
170
- var shouldApplyAgentShape = appType === 'agent' && !isAvatarImagePreShaped;
171
- var shouldRenderAvatar = avatarUrl && !this.state.hasAvatarError;
172
- var showRestrictedTooltip = mentionType === _types.MentionType.RESTRICTED;
173
- var showDisabledTooltip = mentionType === _types.MentionType.DISABLED && !!disabledTooltip;
174
34
 
175
- // A11y: when the chip is in the disabled visual state, expose
176
- // `aria-disabled` so assistive tech announces it as such. The
177
- // disabled-tooltip text is mirrored into `aria-label` so the
178
- // announcement carries the reason even without portal-id wiring for
179
- // `aria-describedby`.
180
- var isDisabledChip = mentionType === _types.MentionType.DISABLED;
181
- var disabledA11yProps = isDisabledChip ? _objectSpread({
182
- 'aria-disabled': true,
183
- tabIndex: 0
184
- }, disabledTooltip ? {
185
- 'aria-label': "".concat(text || '@...', " \u2014 ").concat(disabledTooltip)
186
- } : {}) : {};
187
- var mentionComponent = /*#__PURE__*/_react.default.createElement(_focusRing.default, null, /*#__PURE__*/_react.default.createElement(_PrimitiveMention.default, (0, _extends2.default)({
188
- isAvatarVisible: showAvatarSlot,
189
- mentionType: mentionType,
190
- onClick: handleOnClick,
191
- onMouseEnter: handleOnMouseEnter,
192
- onMouseLeave: handleOnMouseLeave,
193
- spellCheck: false,
194
- "data-testid": "mention-".concat(id),
195
- "data-mention-type": mentionType,
196
- "data-mention-tooltip": showRestrictedTooltip || showDisabledTooltip
197
- }, disabledA11yProps), failedMention ? this.renderUnknownUserError(id) : showAvatarSlot ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
198
- "aria-hidden": "true",
199
- "data-testid": "mention-avatar-slot",
200
- className: (0, _runtime.ax)(["_1reo15vq _18m915vq _2rko1rr0 _1e0c116y _1bsb7vkz _4t3i7vkz _4cvr1h6o _1bah1h6o _1o9zidpf _12l21b66 _s7n410e5", shouldApplyAgentShape && "_2rkoidpf _mkrz1l17", this.state.hasAvatarError && "_s7n41q9y"])
201
- }, shouldRenderAvatar ? /*#__PURE__*/_react.default.createElement("img", {
202
- alt: "",
203
- decoding: "async",
204
- draggable: false,
205
- height: 16,
206
- loading: "lazy",
207
- onError: handleAvatarError,
208
- src: avatarUrl,
209
- "data-testid": "mention-avatar",
210
- width: 16,
211
- className: (0, _runtime.ax)(["_1e0c1ule _1bsb1osq _4t3i1osq _5ral1dfr"])
212
- }) : this.state.hasAvatarError ? '@' : null), /*#__PURE__*/_react.default.createElement("span", null, visibleText || '...')) : text || '@...'));
213
- var ssrPlaceholderProp = props.ssrPlaceholderId ? {
214
- 'data-ssr-placeholder': props.ssrPlaceholderId
215
- } : {};
216
- var wrappedMention = function () {
217
- if (showRestrictedTooltip) {
218
- return /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
219
- fallback: mentionComponent
220
- }, /*#__PURE__*/_react.default.createElement(_NoAccessTooltip.default, {
221
- name: text
222
- }, mentionComponent));
223
- }
224
- if (showDisabledTooltip) {
225
- return /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
226
- fallback: mentionComponent
227
- }, /*#__PURE__*/_react.default.createElement(_DisabledMentionTooltip.default, {
228
- tooltip: disabledTooltip
229
- }, mentionComponent));
230
- }
231
- return mentionComponent;
232
- }();
233
- return /*#__PURE__*/_react.default.createElement(_ufoExperiences.UfoErrorBoundary, {
234
- id: id
235
- }, /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
236
- id: localId,
237
- "data-mention-id": id,
238
- "data-local-id": localId,
239
- "data-access-level": accessLevel,
240
- spellCheck: false
241
- }, ssrPlaceholderProp), /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, wrappedMention)));
242
- }
243
- }], [{
244
- key: "getDerivedStateFromProps",
245
- value: function getDerivedStateFromProps(props, state) {
246
- if (props.avatarUrl !== state.avatarUrl) {
247
- return {
248
- avatarUrl: props.avatarUrl,
249
- hasAvatarError: false
250
- };
251
- }
252
- return null;
253
- }
254
- }]);
255
- }(_react.default.PureComponent);
35
+ /**
36
+ * @deprecated Use `import { UNKNOWN_USER_ID } from '@atlaskit/mention/constants'` instead.
37
+ */
38
+
256
39
  var MentionWithAnalytics = (0, _withAnalyticsEvents.default)({
257
40
  onClick: function onClick(createEvent, props) {
258
41
  var id = props.id,
259
42
  text = props.text,
260
43
  accessLevel = props.accessLevel;
261
- var event = (0, _analytics.fireAnalyticsMentionEvent)(createEvent)('mention', 'selected', text, id, accessLevel);
44
+ var event = (0, _fireAnalyticsMentionEvent.fireAnalyticsMentionEvent)(createEvent)('mention', 'selected', text, id, accessLevel);
262
45
  return event;
263
46
  },
264
47
  onHover: function onHover(createEvent, props) {
265
48
  var id = props.id,
266
49
  text = props.text,
267
50
  accessLevel = props.accessLevel;
268
- var event = (0, _analytics.fireAnalyticsMentionEvent)(createEvent)('mention', 'hovered', text, id, accessLevel);
51
+ var event = (0, _fireAnalyticsMentionEvent.fireAnalyticsMentionEvent)(createEvent)('mention', 'hovered', text, id, accessLevel);
269
52
  return event;
270
53
  }
271
- })(MentionInternal);
54
+ })(_MentionInternal.MentionInternal);
272
55
  var Mention = MentionWithAnalytics;
273
- var _default = exports.default = Mention;
56
+ var _default = exports.default = Mention;
57
+ /**
58
+ * @deprecated Use `import { MentionInternal } from '@atlaskit/mention/mention'` instead.
59
+ */
@@ -8,10 +8,11 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.MentionAvatar = void 0;
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _avatar = _interopRequireWildcard(require("@atlaskit/avatar"));
11
- var _teamsAvatar = _interopRequireDefault(require("@atlaskit/teams-avatar/teams-avatar"));
12
11
  var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
13
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
- var _types = require("../../types");
13
+ var _teamsAvatar = _interopRequireDefault(require("@atlaskit/teams-avatar/teams-avatar"));
14
+ var _isAppMention = require("../../is-app-mention");
15
+ var _isTeamMention = require("../../is-team-mention");
15
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
16
17
  var MentionAvatar = exports.MentionAvatar = function MentionAvatar(_ref) {
17
18
  var mention = _ref.mention,
@@ -22,7 +23,7 @@ var MentionAvatar = exports.MentionAvatar = function MentionAvatar(_ref) {
22
23
  var borderColor = selected ? "var(--ds-border, #0B120E24)" : undefined;
23
24
  var _ref2 = presence || {},
24
25
  status = _ref2.status;
25
- if ((0, _types.isTeamMention)(mention)) {
26
+ if ((0, _isTeamMention.isTeamMention)(mention)) {
26
27
  return /*#__PURE__*/_react.default.createElement(_teamsAvatar.default, {
27
28
  src: avatarUrl,
28
29
  size: "medium",
@@ -32,7 +33,7 @@ var MentionAvatar = exports.MentionAvatar = function MentionAvatar(_ref) {
32
33
 
33
34
  // Agent providers can request GraphQL `identityAccount { picture }` and pass it as
34
35
  // `avatarUrl`; this component only applies the hexagon agent shape.
35
- var shouldRenderAgentMentionAvatar = (0, _types.isAppMention)(mention) && mention.appType === 'agent' && (0, _isExperimentEnabled.isExperimentEnabled)('rovo_chat_mention_agents');
36
+ var shouldRenderAgentMentionAvatar = (0, _isAppMention.isAppMention)(mention) && mention.appType === 'agent' && (0, _isExperimentEnabled.isExperimentEnabled)('rovo_chat_mention_agents');
36
37
  var avatarAppearance = shouldRenderAgentMentionAvatar ? 'hexagon' : (0, _platformFeatureFlags.fg)('jira_ai_agent_avatar_issue_view_comment_mentions') ? (0, _avatar.getAppearanceForAppType)(appType) : undefined;
37
38
  return /*#__PURE__*/_react.default.createElement(_avatar.default, {
38
39
  src: avatarUrl,
@@ -25,25 +25,26 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
25
25
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
26
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
27
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
28
+ var _react = _interopRequireDefault(require("react"));
29
+ var _statusInformation = _interopRequireDefault(require("@atlaskit/icon/core/status-information"));
28
30
  var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
29
31
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
30
32
  var _tag = _interopRequireDefault(require("@atlaskit/tag"));
31
- var _react = _interopRequireDefault(require("react"));
32
- var _statusInformation = _interopRequireDefault(require("@atlaskit/icon/core/status-information"));
33
33
  var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
34
- var _types = require("../../types");
34
+ var _isAgentMention = require("../../is-agent-mention");
35
+ var _isRestricted = require("../../is-restricted");
35
36
  var _i18n = require("../../util/i18n");
36
- var _mouse = require("../../util/mouse");
37
- var _NoAccessTooltip = _interopRequireDefault(require("../NoAccessTooltip"));
37
+ var _leftClick = require("../../util/left-click");
38
38
  var _LockCircleIcon = _interopRequireDefault(require("../LockCircleIcon"));
39
- var _styles = require("./styles");
40
- var _MentionHighlightHelpers = require("./MentionHighlightHelpers");
39
+ var _MentionAvatar = require("../MentionAvatar");
41
40
  var _MentionDescriptionByline = _interopRequireDefault(require("../MentionDescriptionByline"));
42
41
  var _MessagesIntlProvider = _interopRequireDefault(require("../MessagesIntlProvider"));
43
- var _MentionAvatar = require("../MentionAvatar");
42
+ var _NoAccessTooltip = _interopRequireDefault(require("../NoAccessTooltip"));
43
+ var _MentionHighlightHelpers = require("./MentionHighlightHelpers");
44
+ var _styles = require("./styles");
44
45
  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)); }
45
46
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
46
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != (0, _typeof2.default)(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
47
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != (0, _typeof2.default)(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
47
48
  // Lazy-loaded so `@atlaskit/skeleton` (only needed for the loading
48
49
  // placeholder) doesn't enter the bundle for every `@atlaskit/mention`
49
50
  // consumer — only when an `isPlaceholder` mention is actually rendered.
@@ -52,6 +53,11 @@ var MentionItemPlaceholder = /*#__PURE__*/_react.default.lazy(function () {
52
53
  return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_mention-item-placeholder" */'./MentionItemPlaceholder'));
53
54
  });
54
55
  });
56
+
57
+ /**
58
+ * @deprecated Use `import { MENTION_ITEM_HEIGHT, MENTION_ITEM_HEIGHT_REFRESHED } from '@atlaskit/mention/mention-item/styles'` instead.
59
+ */
60
+
55
61
  var lozengeAppearanceToTagColor = {
56
62
  default: 'standard',
57
63
  success: 'lime',
@@ -111,7 +117,7 @@ var MentionItem = exports.default = /*#__PURE__*/function (_React$PureComponent)
111
117
  _this = _callSuper(this, MentionItem, [].concat(args));
112
118
  // internal, used for callbacks
113
119
  (0, _defineProperty2.default)(_this, "onMentionSelected", function (event) {
114
- if ((0, _mouse.leftClick)(event) && _this.props.onSelection) {
120
+ if ((0, _leftClick.leftClick)(event) && _this.props.onSelection) {
115
121
  event.preventDefault();
116
122
  _this.props.onSelection(_this.props.mention, event);
117
123
  }
@@ -159,14 +165,14 @@ var MentionItem = exports.default = /*#__PURE__*/function (_React$PureComponent)
159
165
  }
160
166
  var _ref = presence || {},
161
167
  time = _ref.time;
162
- var restricted = (0, _types.isRestricted)(accessLevel);
168
+ var restricted = (0, _isRestricted.isRestricted)(accessLevel);
163
169
  var nameHighlights = highlight && highlight.name;
164
170
  var xProductUserInfoIconColor = selected ? "var(--ds-icon-selected, #1868DB)" : "var(--ds-icon, #292A2E)";
165
171
  var RowStyle = _styles.RowStyle;
166
172
  var isAgent = false;
167
173
  if ((0, _expValEquals.expValEquals)('platform_editor_agent_mentions', 'isEnabled', true) && (0, _platformFeatureFlags.fg)('platform_editor_agent_mentions_drop_one_fixes')) {
168
174
  RowStyle = _styles.RowStyleNext;
169
- isAgent = (0, _types.isAgentMention)(mention);
175
+ isAgent = (0, _isAgentMention.isAgentMention)(mention);
170
176
  }
171
177
  return /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, /*#__PURE__*/_react.default.createElement(_styles.MentionItemStyle, {
172
178
  selected: selected,
@@ -12,8 +12,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
12
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
  var _react = _interopRequireDefault(require("react"));
15
+ var _actualMouseMove = require("../../util/actual-mouse-move");
15
16
  var _logger = _interopRequireDefault(require("../../util/logger"));
16
- var _mouse = require("../../util/mouse");
17
+ var _mouseLocation = require("../../util/mouse-location");
17
18
  var _MentionItem = require("../MentionItem");
18
19
  var _MentionListError = _interopRequireDefault(require("../MentionListError"));
19
20
  var _MessagesIntlProvider = _interopRequireDefault(require("../MessagesIntlProvider"));
@@ -95,8 +96,8 @@ var MentionList = exports.default = /*#__PURE__*/function (_React$PureComponent)
95
96
  if (!event) {
96
97
  return;
97
98
  }
98
- var mousePosition = (0, _mouse.mouseLocation)(event);
99
- if ((0, _mouse.actualMouseMove)(_this.lastMousePosition, mousePosition)) {
99
+ var mousePosition = (0, _mouseLocation.mouseLocation)(event);
100
+ if ((0, _actualMouseMove.actualMouseMove)(_this.lastMousePosition, mousePosition)) {
100
101
  _this.selectId(mention.id);
101
102
  }
102
103
  _this.lastMousePosition = mousePosition;
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.MentionPicker = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _react = _interopRequireDefault(require("react"));
15
+ var _reactIntl = require("react-intl");
16
+ var _compiled = require("@atlaskit/primitives/compiled");
17
+ var _fireAnalyticsMentionTypeaheadEvent = require("../../util/fire-analytics-mention-typeahead-event");
18
+ var _id = _interopRequireDefault(require("../../util/id"));
19
+ var _logger = _interopRequireDefault(require("../../util/logger"));
20
+ var _Popup = _interopRequireDefault(require("../Popup"));
21
+ var _ResourcedMentionList = _interopRequireDefault(require("../ResourcedMentionList"));
22
+ var _styles = require("./styles");
23
+ 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)); }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ /**
26
+ * @class MentionPicker
27
+ */
28
+ var MentionPicker = exports.MentionPicker = /*#__PURE__*/function (_React$PureComponent) {
29
+ function MentionPicker(props) {
30
+ var _this;
31
+ (0, _classCallCheck2.default)(this, MentionPicker);
32
+ _this = _callSuper(this, MentionPicker, [props]);
33
+ (0, _defineProperty2.default)(_this, "selectNext", function () {
34
+ if (_this.mentionListRef) {
35
+ _this.mentionListRef.selectNext();
36
+ }
37
+ });
38
+ (0, _defineProperty2.default)(_this, "selectPrevious", function () {
39
+ if (_this.mentionListRef) {
40
+ _this.mentionListRef.selectPrevious();
41
+ }
42
+ });
43
+ (0, _defineProperty2.default)(_this, "selectIndex", function (index, callback) {
44
+ if (_this.mentionListRef) {
45
+ _this.mentionListRef.selectIndex(index, callback);
46
+ }
47
+ });
48
+ (0, _defineProperty2.default)(_this, "selectId", function (id, callback) {
49
+ if (_this.mentionListRef) {
50
+ _this.mentionListRef.selectId(id, callback);
51
+ }
52
+ });
53
+ (0, _defineProperty2.default)(_this, "chooseCurrentSelection", function () {
54
+ if (_this.mentionListRef) {
55
+ _this.mentionListRef.chooseCurrentSelection();
56
+ }
57
+ });
58
+ (0, _defineProperty2.default)(_this, "mentionsCount", function () {
59
+ if (_this.mentionListRef) {
60
+ return _this.mentionListRef.mentionsCount();
61
+ }
62
+ return 0;
63
+ });
64
+ /**
65
+ * Called after the 'visible' state is changed to decide whether the onOpen or onClose
66
+ * handlers should be called.
67
+ *
68
+ * It should be noted that the visible state of the component is not considered in
69
+ * this function. Instead the old state and new state should be passed as parameters.
70
+ */
71
+ (0, _defineProperty2.default)(_this, "onFilterVisibilityChange", function (oldVisibility, newVisibility) {
72
+ if (oldVisibility !== newVisibility) {
73
+ if (newVisibility) {
74
+ if (_this.props.onOpen) {
75
+ _this.props.onOpen();
76
+ }
77
+ } else {
78
+ if (_this.props.onClose) {
79
+ _this.props.onClose();
80
+ }
81
+ }
82
+ }
83
+ });
84
+ // internal, used for callbacks
85
+ (0, _defineProperty2.default)(_this, "filterChange", function (mentions, query, stats) {
86
+ (0, _logger.default)('ak-mention-picker.filterChange', mentions.length);
87
+ var wasVisible = _this.state.visible;
88
+ var visible = mentions.length > 0;
89
+ _this.setState({
90
+ visible: visible
91
+ });
92
+ _this.onFilterVisibilityChange(wasVisible, visible);
93
+ (0, _fireAnalyticsMentionTypeaheadEvent.fireAnalyticsMentionTypeaheadEvent)(_this.props)('rendered', stats && stats.duration, mentions.map(function (mention) {
94
+ return mention.id;
95
+ }), query);
96
+ });
97
+ (0, _defineProperty2.default)(_this, "filterError", function (error) {
98
+ (0, _logger.default)('ak-mention-picker.filterError', error);
99
+ var wasVisible = _this.state.visible;
100
+ _this.setState({
101
+ visible: true,
102
+ info: undefined
103
+ });
104
+ _this.onFilterVisibilityChange(wasVisible, true);
105
+ });
106
+ (0, _defineProperty2.default)(_this, "filterInfo", function (info) {
107
+ (0, _logger.default)('ak-mention-picker.filterInfo', info);
108
+ _this.setState({
109
+ info: info
110
+ });
111
+ });
112
+ (0, _defineProperty2.default)(_this, "handleMentionListRef", function (ref) {
113
+ _this.mentionListRef = ref;
114
+ });
115
+ _this.subscriberKey = (0, _id.default)('ak-mention-picker');
116
+ _this.state = {
117
+ visible: false
118
+ };
119
+ _this.applyPropChanges({}, props);
120
+ return _this;
121
+ }
122
+ (0, _inherits2.default)(MentionPicker, _React$PureComponent);
123
+ return (0, _createClass2.default)(MentionPicker, [{
124
+ key: "componentDidMount",
125
+ value: function componentDidMount() {
126
+ this.subscribeResourceProvider(this.props.resourceProvider);
127
+ }
128
+ }, {
129
+ key: "UNSAFE_componentWillReceiveProps",
130
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
131
+ this.applyPropChanges(this.props, nextProps);
132
+ }
133
+ }, {
134
+ key: "componentWillUnmount",
135
+ value: function componentWillUnmount() {
136
+ this.unsubscribeResourceProvider(this.props.resourceProvider);
137
+ }
138
+ }, {
139
+ key: "applyPropChanges",
140
+ value:
141
+ // Internal
142
+ function applyPropChanges(prevProps, nextProps) {
143
+ var oldResourceProvider = prevProps.resourceProvider;
144
+ var newResourceProvider = nextProps.resourceProvider;
145
+ var resourceProviderChanged = oldResourceProvider !== newResourceProvider;
146
+
147
+ // resource provider
148
+ if (resourceProviderChanged) {
149
+ this.unsubscribeResourceProvider(oldResourceProvider);
150
+ this.subscribeResourceProvider(newResourceProvider);
151
+ }
152
+ }
153
+ }, {
154
+ key: "subscribeResourceProvider",
155
+ value: function subscribeResourceProvider(resourceProvider) {
156
+ if (resourceProvider) {
157
+ resourceProvider.subscribe(this.subscriberKey, this.filterChange, this.filterError, this.filterInfo, undefined);
158
+ }
159
+ }
160
+ }, {
161
+ key: "unsubscribeResourceProvider",
162
+ value: function unsubscribeResourceProvider(resourceProvider) {
163
+ if (resourceProvider) {
164
+ resourceProvider.unsubscribe(this.subscriberKey);
165
+ }
166
+ }
167
+ }, {
168
+ key: "render",
169
+ value: function render() {
170
+ var _this$props = this.props,
171
+ resourceProvider = _this$props.resourceProvider,
172
+ presenceProvider = _this$props.presenceProvider,
173
+ onSelection = _this$props.onSelection,
174
+ query = _this$props.query,
175
+ target = _this$props.target,
176
+ position = _this$props.position,
177
+ zIndex = _this$props.zIndex,
178
+ offsetX = _this$props.offsetX,
179
+ offsetY = _this$props.offsetY,
180
+ intl = _this$props.intl;
181
+ var _this$state = this.state,
182
+ visible = _this$state.visible,
183
+ info = _this$state.info;
184
+ var resourceMentionList = /*#__PURE__*/_react.default.createElement(_ResourcedMentionList.default, {
185
+ resourceProvider: resourceProvider,
186
+ presenceProvider: presenceProvider,
187
+ onSelection: onSelection,
188
+ query: query,
189
+ ref: this.handleMentionListRef
190
+ });
191
+ var infoContent = info && !visible ? /*#__PURE__*/_react.default.createElement(_styles.MentionPickerInfoStyle, null, /*#__PURE__*/_react.default.createElement(_compiled.Text, {
192
+ as: "p"
193
+ }, info)) : null;
194
+ var content;
195
+ if (position) {
196
+ (0, _logger.default)('target, position', target, position);
197
+ if (target) {
198
+ content = /*#__PURE__*/_react.default.createElement(_Popup.default, {
199
+ target: target,
200
+ relativePosition: position,
201
+ zIndex: zIndex,
202
+ offsetX: offsetX,
203
+ offsetY: offsetY
204
+ }, /*#__PURE__*/_react.default.createElement(_reactIntl.IntlProvider, {
205
+ locale: (intl === null || intl === void 0 ? void 0 : intl.locale) || 'en'
206
+ }, /*#__PURE__*/_react.default.createElement("div", null, resourceMentionList, infoContent)));
207
+ } else {
208
+ // don't show if we have a position, but no target yet
209
+ content = null;
210
+ }
211
+ } else {
212
+ content = /*#__PURE__*/_react.default.createElement("div", null, resourceMentionList, infoContent);
213
+ }
214
+ return (
215
+ /*#__PURE__*/
216
+ /* old classnames are essential for Confluence tests */
217
+ _react.default.createElement(_styles.MentionPickerStyle
218
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
219
+ , {
220
+ className: "ak-mention-picker",
221
+ visible: visible || info
222
+ }, content)
223
+ );
224
+ }
225
+ }]);
226
+ }(_react.default.PureComponent);
227
+ (0, _defineProperty2.default)(MentionPicker, "defaultProps", {
228
+ onSelection: function onSelection() {},
229
+ onOpen: function onOpen() {},
230
+ onClose: function onClose() {}
231
+ });