@atlaskit/mention 27.17.1 → 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.
- package/CHANGELOG.md +34 -0
- package/dist/cjs/api/AbstractMentionResource.js +111 -0
- package/dist/cjs/api/AbstractPresenceResource.js +41 -0
- package/dist/cjs/api/AbstractResource.js +48 -0
- package/dist/cjs/api/Callback.js +5 -0
- package/dist/cjs/api/DefaultMentionNameResolver.js +178 -0
- package/dist/cjs/api/DefaultPresenceCache.js +159 -0
- package/dist/cjs/api/DefaultPresenceParser.js +91 -0
- package/dist/cjs/api/HttpError.js +16 -0
- package/dist/cjs/api/MentionNameResolver.js +13 -201
- package/dist/cjs/api/MentionResource.js +52 -157
- package/dist/cjs/api/PresenceResource.js +39 -263
- package/dist/cjs/api/Queue.js +5 -0
- package/dist/cjs/api/isResolvingMentionProvider.js +9 -0
- package/dist/cjs/api/mergeNameResolverQueues.js +36 -0
- package/dist/cjs/components/Mention/MentionInternal.js +247 -0
- package/dist/cjs/components/Mention/ResourcedMention.js +5 -4
- package/dist/cjs/components/Mention/index.js +29 -243
- package/dist/cjs/components/MentionAvatar/index.js +5 -4
- package/dist/cjs/components/MentionItem/index.js +18 -12
- package/dist/cjs/components/MentionList/index.js +4 -3
- package/dist/cjs/components/MentionPicker/MentionPicker.js +231 -0
- package/dist/cjs/components/MentionPicker/index.js +18 -225
- package/dist/cjs/components/MessagesIntlProvider/index.js +2 -2
- package/dist/cjs/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +228 -0
- package/dist/cjs/components/ResourcedMentionList/index.js +14 -223
- package/dist/cjs/index.js +17 -15
- package/dist/cjs/is-agent-mention.js +12 -0
- package/dist/cjs/is-app-mention.js +10 -0
- package/dist/cjs/is-promise.js +9 -0
- package/dist/cjs/is-restricted.js +10 -0
- package/dist/cjs/is-special-mention-text.js +9 -0
- package/dist/cjs/is-special-mention.js +10 -0
- package/dist/cjs/is-team-mention.js +10 -0
- package/dist/cjs/resource.js +15 -12
- package/dist/cjs/team-resource.js +9 -9
- package/dist/cjs/typeahead.js +4 -0
- package/dist/cjs/types.js +71 -30
- package/dist/cjs/util/actual-mouse-move.js +14 -0
- package/dist/cjs/util/analytics.js +91 -107
- package/dist/cjs/util/build-sli-payload.js +27 -0
- package/dist/cjs/util/fire-analytics-mention-event.js +32 -0
- package/dist/cjs/util/fire-analytics-mention-hydration-event.js +33 -0
- package/dist/cjs/util/fire-analytics-mention-typeahead-event.js +34 -0
- package/dist/cjs/util/fire-analytics.js +18 -0
- package/dist/cjs/util/fire-sli-analytics-event.js +16 -0
- package/dist/cjs/util/get-messages-for-locale.js +233 -0
- package/dist/cjs/util/i18n.js +9 -254
- package/dist/cjs/util/left-click.js +9 -0
- package/dist/cjs/util/mouse-location.js +12 -0
- package/dist/cjs/util/mouse.js +1 -26
- package/dist/cjs/util/package-name.js +7 -0
- package/dist/cjs/util/package-version.js +7 -0
- package/dist/cjs/util/prop-formatter.js +25 -0
- package/dist/es2019/api/AbstractMentionResource.js +73 -0
- package/dist/es2019/api/AbstractPresenceResource.js +17 -0
- package/dist/es2019/api/AbstractResource.js +33 -0
- package/dist/es2019/api/Callback.js +1 -0
- package/dist/es2019/api/DefaultMentionNameResolver.js +152 -0
- package/dist/es2019/api/DefaultPresenceCache.js +111 -0
- package/dist/es2019/api/DefaultPresenceParser.js +58 -0
- package/dist/es2019/api/HttpError.js +8 -0
- package/dist/es2019/api/MentionNameResolver.js +13 -176
- package/dist/es2019/api/MentionResource.js +28 -122
- package/dist/es2019/api/PresenceResource.js +19 -185
- package/dist/es2019/api/Queue.js +1 -0
- package/dist/es2019/api/isResolvingMentionProvider.js +1 -0
- package/dist/es2019/api/mergeNameResolverQueues.js +25 -0
- package/dist/es2019/components/Mention/MentionInternal.js +225 -0
- package/dist/es2019/components/Mention/ResourcedMention.js +4 -3
- package/dist/es2019/components/Mention/index.js +19 -223
- package/dist/es2019/components/MentionAvatar/index.js +3 -2
- package/dist/es2019/components/MentionItem/index.js +14 -8
- package/dist/es2019/components/MentionList/index.js +2 -1
- package/dist/es2019/components/MentionPicker/MentionPicker.js +198 -0
- package/dist/es2019/components/MentionPicker/index.js +15 -198
- package/dist/es2019/components/MessagesIntlProvider/index.js +1 -1
- package/dist/es2019/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +187 -0
- package/dist/es2019/components/ResourcedMentionList/index.js +9 -187
- package/dist/es2019/element.js +5 -0
- package/dist/es2019/index.js +13 -9
- package/dist/es2019/is-agent-mention.js +6 -0
- package/dist/es2019/is-app-mention.js +4 -0
- package/dist/es2019/is-promise.js +1 -0
- package/dist/es2019/is-restricted.js +4 -0
- package/dist/es2019/is-special-mention-text.js +3 -0
- package/dist/es2019/is-special-mention.js +4 -0
- package/dist/es2019/is-team-mention.js +4 -0
- package/dist/es2019/item.js +5 -0
- package/dist/es2019/resource.js +15 -5
- package/dist/es2019/team-resource.js +10 -4
- package/dist/es2019/typeahead.js +5 -0
- package/dist/es2019/types.js +30 -21
- package/dist/es2019/util/actual-mouse-move.js +8 -0
- package/dist/es2019/util/analytics.js +35 -91
- package/dist/es2019/util/build-sli-payload.js +18 -0
- package/dist/es2019/util/fire-analytics-mention-event.js +24 -0
- package/dist/es2019/util/fire-analytics-mention-hydration-event.js +25 -0
- package/dist/es2019/util/fire-analytics-mention-typeahead-event.js +24 -0
- package/dist/es2019/util/fire-analytics.js +10 -0
- package/dist/es2019/util/fire-sli-analytics-event.js +8 -0
- package/dist/es2019/util/get-messages-for-locale.js +145 -0
- package/dist/es2019/util/i18n.js +2 -165
- package/dist/es2019/util/left-click.js +3 -0
- package/dist/es2019/util/mouse-location.js +6 -0
- package/dist/es2019/util/mouse.js +0 -18
- package/dist/es2019/util/package-name.js +1 -0
- package/dist/es2019/util/package-version.js +1 -0
- package/dist/es2019/util/prop-formatter.js +18 -0
- package/dist/esm/api/AbstractMentionResource.js +104 -0
- package/dist/esm/api/AbstractPresenceResource.js +34 -0
- package/dist/esm/api/AbstractResource.js +41 -0
- package/dist/esm/api/Callback.js +1 -0
- package/dist/esm/api/DefaultMentionNameResolver.js +171 -0
- package/dist/esm/api/DefaultPresenceCache.js +152 -0
- package/dist/esm/api/DefaultPresenceParser.js +84 -0
- package/dist/esm/api/HttpError.js +9 -0
- package/dist/esm/api/MentionNameResolver.js +13 -198
- package/dist/esm/api/MentionResource.js +30 -154
- package/dist/esm/api/PresenceResource.js +22 -256
- package/dist/esm/api/Queue.js +1 -0
- package/dist/esm/api/isResolvingMentionProvider.js +3 -0
- package/dist/esm/api/mergeNameResolverQueues.js +29 -0
- package/dist/esm/components/Mention/MentionInternal.js +242 -0
- package/dist/esm/components/Mention/ResourcedMention.js +4 -3
- package/dist/esm/components/Mention/index.js +19 -240
- package/dist/esm/components/MentionAvatar/index.js +3 -2
- package/dist/esm/components/MentionItem/index.js +14 -8
- package/dist/esm/components/MentionList/index.js +2 -1
- package/dist/esm/components/MentionPicker/MentionPicker.js +225 -0
- package/dist/esm/components/MentionPicker/index.js +15 -225
- package/dist/esm/components/MessagesIntlProvider/index.js +1 -1
- package/dist/esm/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +221 -0
- package/dist/esm/components/ResourcedMentionList/index.js +9 -221
- package/dist/esm/element.js +5 -0
- package/dist/esm/index.js +13 -9
- package/dist/esm/is-agent-mention.js +6 -0
- package/dist/esm/is-app-mention.js +4 -0
- package/dist/esm/is-promise.js +3 -0
- package/dist/esm/is-restricted.js +4 -0
- package/dist/esm/is-special-mention-text.js +3 -0
- package/dist/esm/is-special-mention.js +4 -0
- package/dist/esm/is-team-mention.js +4 -0
- package/dist/esm/item.js +5 -0
- package/dist/esm/resource.js +15 -5
- package/dist/esm/team-resource.js +10 -4
- package/dist/esm/typeahead.js +5 -0
- package/dist/esm/types.js +30 -23
- package/dist/esm/util/actual-mouse-move.js +8 -0
- package/dist/esm/util/analytics.js +35 -105
- package/dist/esm/util/build-sli-payload.js +20 -0
- package/dist/esm/util/fire-analytics-mention-event.js +26 -0
- package/dist/esm/util/fire-analytics-mention-hydration-event.js +27 -0
- package/dist/esm/util/fire-analytics-mention-typeahead-event.js +28 -0
- package/dist/esm/util/fire-analytics.js +12 -0
- package/dist/esm/util/fire-sli-analytics-event.js +10 -0
- package/dist/esm/util/get-messages-for-locale.js +163 -0
- package/dist/esm/util/i18n.js +2 -183
- package/dist/esm/util/left-click.js +3 -0
- package/dist/esm/util/mouse-location.js +6 -0
- package/dist/esm/util/mouse.js +0 -18
- package/dist/esm/util/package-name.js +1 -0
- package/dist/esm/util/package-version.js +1 -0
- package/dist/esm/util/prop-formatter.js +18 -0
- package/dist/types/api/AbstractMentionResource.d.ts +15 -0
- package/dist/types/api/AbstractPresenceResource.d.ts +6 -0
- package/dist/types/api/AbstractResource.d.ts +11 -0
- package/dist/types/api/Callback.d.ts +4 -0
- package/dist/types/api/DefaultMentionNameResolver.d.ts +27 -0
- package/dist/types/api/DefaultPresenceCache.d.ts +57 -0
- package/dist/types/api/DefaultPresenceParser.d.ts +8 -0
- package/dist/types/api/HttpError.d.ts +7 -0
- package/dist/types/api/MentionNameResolver.d.ts +14 -35
- package/dist/types/api/MentionResource.d.ts +18 -33
- package/dist/types/api/PresenceResource.d.ts +15 -69
- package/dist/types/api/Queue.d.ts +2 -0
- package/dist/types/api/isResolvingMentionProvider.d.ts +2 -0
- package/dist/types/api/mergeNameResolverQueues.d.ts +6 -0
- package/dist/types/components/Mention/MentionInternal.d.ts +27 -0
- package/dist/types/components/Mention/ResourcedMention.d.ts +1 -1
- package/dist/types/components/Mention/index.d.ts +9 -20
- package/dist/types/components/MentionAvatar/index.d.ts +1 -1
- package/dist/types/components/MentionItem/index.d.ts +4 -1
- package/dist/types/components/MentionPicker/MentionPicker.d.ts +46 -0
- package/dist/types/components/MentionPicker/index.d.ts +5 -42
- package/dist/types/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.d.ts +30 -0
- package/dist/types/components/ResourcedMentionList/index.d.ts +5 -27
- package/dist/types/element.d.ts +3 -0
- package/dist/types/index.d.ts +15 -10
- package/dist/types/is-agent-mention.d.ts +2 -0
- package/dist/types/is-app-mention.d.ts +2 -0
- package/dist/types/is-promise.d.ts +1 -0
- package/dist/types/is-restricted.d.ts +1 -0
- package/dist/types/is-special-mention-text.d.ts +1 -0
- package/dist/types/is-special-mention.d.ts +2 -0
- package/dist/types/is-team-mention.d.ts +2 -0
- package/dist/types/item.d.ts +3 -0
- package/dist/types/resource.d.ts +15 -6
- package/dist/types/team-resource.d.ts +10 -4
- package/dist/types/typeahead.d.ts +3 -0
- package/dist/types/types.d.ts +28 -8
- package/dist/types/util/actual-mouse-move.d.ts +2 -0
- package/dist/types/util/analytics.d.ts +33 -10
- package/dist/types/util/build-sli-payload.d.ts +4 -0
- package/dist/types/util/fire-analytics-mention-event.d.ts +1 -0
- package/dist/types/util/fire-analytics-mention-hydration-event.d.ts +1 -0
- package/dist/types/util/fire-analytics-mention-typeahead-event.d.ts +1 -0
- package/dist/types/util/fire-analytics.d.ts +1 -0
- package/dist/types/util/fire-sli-analytics-event.d.ts +1 -0
- package/dist/types/util/get-messages-for-locale.d.ts +11 -0
- package/dist/types/util/i18n.d.ts +0 -15
- package/dist/types/util/left-click.d.ts +2 -0
- package/dist/types/util/mouse-location.d.ts +3 -0
- package/dist/types/util/mouse.d.ts +0 -4
- package/dist/types/util/package-name.d.ts +1 -0
- package/dist/types/util/package-version.d.ts +1 -0
- package/dist/types/util/prop-formatter.d.ts +5 -0
- package/package.json +1 -1
- package/dist/cjs/i18n/index.js +0 -216
- package/dist/es2019/i18n/index.js +0 -37
- package/dist/esm/i18n/index.js +0 -37
- package/dist/types/i18n/index.d.ts +0 -37
- /package/dist/cjs/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
- /package/dist/es2019/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
- /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.
|
|
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
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
34
|
+
var _isAgentMention = require("../../is-agent-mention");
|
|
35
|
+
var _isRestricted = require("../../is-restricted");
|
|
35
36
|
var _i18n = require("../../util/i18n");
|
|
36
|
-
var
|
|
37
|
-
var _NoAccessTooltip = _interopRequireDefault(require("../NoAccessTooltip"));
|
|
37
|
+
var _leftClick = require("../../util/left-click");
|
|
38
38
|
var _LockCircleIcon = _interopRequireDefault(require("../LockCircleIcon"));
|
|
39
|
-
var
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
99
|
-
if ((0,
|
|
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
|
+
});
|