@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
|
@@ -4,67 +4,45 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
|
|
7
|
+
Object.defineProperty(exports, "AbstractPresenceResource", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _AbstractPresenceResource.AbstractPresenceResource;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "DefaultPresenceCache", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _DefaultPresenceCache.DefaultPresenceCache;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "DefaultPresenceParser", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _DefaultPresenceParser.DefaultPresenceParser;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
exports.default = exports.PresenceResource = void 0;
|
|
8
26
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
28
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
29
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
10
30
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
11
31
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
32
|
var _atlAttribution = require("../util/atl-attribution");
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
19
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
33
|
+
var _AbstractPresenceResource = require("./AbstractPresenceResource");
|
|
34
|
+
var _DefaultPresenceCache = require("./DefaultPresenceCache");
|
|
35
|
+
var _DefaultPresenceParser = require("./DefaultPresenceParser");
|
|
20
36
|
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; }
|
|
21
37
|
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; }
|
|
22
38
|
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)); }
|
|
23
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
39
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
|
|
24
40
|
/**
|
|
25
41
|
* Configuration for the PresenceResource, which manages real-time user
|
|
26
42
|
* presence (online/offline/busy/focus status) by querying a GraphQL-based
|
|
27
43
|
* presence service.
|
|
28
44
|
*/
|
|
29
|
-
var
|
|
30
|
-
function CacheEntry(pres, timeout) {
|
|
31
|
-
(0, _classCallCheck2.default)(this, CacheEntry);
|
|
32
|
-
this.presence = pres;
|
|
33
|
-
this.expiry = Date.now() + timeout;
|
|
34
|
-
}
|
|
35
|
-
return (0, _createClass2.default)(CacheEntry, [{
|
|
36
|
-
key: "expired",
|
|
37
|
-
value: function expired() {
|
|
38
|
-
return Date.now() > this.expiry;
|
|
39
|
-
}
|
|
40
|
-
}]);
|
|
41
|
-
}();
|
|
42
|
-
var AbstractPresenceResource = exports.AbstractPresenceResource = /*#__PURE__*/function (_AbstractResource) {
|
|
43
|
-
function AbstractPresenceResource() {
|
|
44
|
-
(0, _classCallCheck2.default)(this, AbstractPresenceResource);
|
|
45
|
-
return _callSuper(this, AbstractPresenceResource, arguments);
|
|
46
|
-
}
|
|
47
|
-
(0, _inherits2.default)(AbstractPresenceResource, _AbstractResource);
|
|
48
|
-
return (0, _createClass2.default)(AbstractPresenceResource, [{
|
|
49
|
-
key: "refreshPresence",
|
|
50
|
-
value: function refreshPresence(userIds) {
|
|
51
|
-
throw new Error("not yet implemented.\nParams: userIds=".concat(userIds));
|
|
52
|
-
}
|
|
53
|
-
}, {
|
|
54
|
-
key: "notifyListeners",
|
|
55
|
-
value: function notifyListeners(presences) {
|
|
56
|
-
this.changeListeners.forEach(function (listener, key) {
|
|
57
|
-
try {
|
|
58
|
-
listener(presences);
|
|
59
|
-
} catch (e) {
|
|
60
|
-
// ignore error from listener
|
|
61
|
-
(0, _logger.default)("error from listener '".concat(key, "', ignoring"), e);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}]);
|
|
66
|
-
}(_MentionResource.AbstractResource);
|
|
67
|
-
var PresenceResource = /*#__PURE__*/function (_AbstractPresenceReso) {
|
|
45
|
+
var PresenceResource = exports.PresenceResource = /*#__PURE__*/function (_AbstractPresenceReso) {
|
|
68
46
|
function PresenceResource(config) {
|
|
69
47
|
var _this;
|
|
70
48
|
(0, _classCallCheck2.default)(this, PresenceResource);
|
|
@@ -77,8 +55,8 @@ var PresenceResource = /*#__PURE__*/function (_AbstractPresenceReso) {
|
|
|
77
55
|
}
|
|
78
56
|
_this.config = config;
|
|
79
57
|
_this.config.url = PresenceResource.cleanUrl(config.url);
|
|
80
|
-
_this.presenceCache = config.cache || new DefaultPresenceCache(config.cacheExpiry);
|
|
81
|
-
_this.presenceParser = config.parser || new DefaultPresenceParser();
|
|
58
|
+
_this.presenceCache = config.cache || new _DefaultPresenceCache.DefaultPresenceCache(config.cacheExpiry);
|
|
59
|
+
_this.presenceParser = config.parser || new _DefaultPresenceParser.DefaultPresenceParser();
|
|
82
60
|
return _this;
|
|
83
61
|
}
|
|
84
62
|
(0, _inherits2.default)(PresenceResource, _AbstractPresenceReso);
|
|
@@ -142,216 +120,14 @@ var PresenceResource = /*#__PURE__*/function (_AbstractPresenceReso) {
|
|
|
142
120
|
return url;
|
|
143
121
|
}
|
|
144
122
|
}]);
|
|
145
|
-
}(AbstractPresenceResource);
|
|
146
|
-
var
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
* Precondition: _delete is only called internally if userId exists in cache
|
|
157
|
-
* Removes cache entry
|
|
158
|
-
* @param userId
|
|
159
|
-
*/
|
|
160
|
-
return (0, _createClass2.default)(DefaultPresenceCache, [{
|
|
161
|
-
key: "_delete",
|
|
162
|
-
value: function _delete(userId) {
|
|
163
|
-
delete this.cache[userId];
|
|
164
|
-
this.size--;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Checks a cache entry and calls delete if the info has expired
|
|
169
|
-
* @param userId
|
|
170
|
-
*/
|
|
171
|
-
}, {
|
|
172
|
-
key: "_deleteIfExpired",
|
|
173
|
-
value: function _deleteIfExpired(userId) {
|
|
174
|
-
if (this.contains(userId) && this.cache[userId].expired()) {
|
|
175
|
-
this._delete(userId);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Cleans expired entries from cache
|
|
181
|
-
*/
|
|
182
|
-
}, {
|
|
183
|
-
key: "_removeExpired",
|
|
184
|
-
value: function _removeExpired() {
|
|
185
|
-
var _this3 = this;
|
|
186
|
-
Object.keys(this.cache).forEach(function (id) {
|
|
187
|
-
_this3._deleteIfExpired(id);
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Checks if a user exists in the cache
|
|
193
|
-
* @param userId
|
|
194
|
-
*/
|
|
195
|
-
}, {
|
|
196
|
-
key: "contains",
|
|
197
|
-
value: function contains(userId) {
|
|
198
|
-
return this.cache.hasOwnProperty(userId);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Retrieves a presence from the cache after checking for expired entries
|
|
203
|
-
* @param userId - to index the cache
|
|
204
|
-
* @returns Presence - the presence that matches the userId
|
|
205
|
-
*/
|
|
206
|
-
}, {
|
|
207
|
-
key: "get",
|
|
208
|
-
value: function get(userId) {
|
|
209
|
-
this._deleteIfExpired(userId);
|
|
210
|
-
if (!this.contains(userId)) {
|
|
211
|
-
return {};
|
|
212
|
-
}
|
|
213
|
-
return this.cache[userId].presence;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Retrieve multiple presences at once from the cache
|
|
218
|
-
* @param userIds - to index the cache
|
|
219
|
-
* @returns PresenceMap - A map of userIds to cached Presences
|
|
220
|
-
*/
|
|
221
|
-
}, {
|
|
222
|
-
key: "getBulk",
|
|
223
|
-
value: function getBulk(userIds) {
|
|
224
|
-
var presences = {};
|
|
225
|
-
var _iterator = _createForOfIteratorHelper(userIds),
|
|
226
|
-
_step;
|
|
227
|
-
try {
|
|
228
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
229
|
-
var _userId = _step.value;
|
|
230
|
-
if (this.contains(_userId)) {
|
|
231
|
-
presences[_userId] = this.get(_userId);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
} catch (err) {
|
|
235
|
-
_iterator.e(err);
|
|
236
|
-
} finally {
|
|
237
|
-
_iterator.f();
|
|
238
|
-
}
|
|
239
|
-
return presences;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* For a given list of ids, returns a subset
|
|
244
|
-
* of all the ids with missing cache entries.
|
|
245
|
-
* @param userIds - to index the cache
|
|
246
|
-
* @returns string[] - ids missing from the cache
|
|
247
|
-
*/
|
|
248
|
-
}, {
|
|
249
|
-
key: "getMissingUserIds",
|
|
250
|
-
value: function getMissingUserIds(userIds) {
|
|
251
|
-
var _this4 = this;
|
|
252
|
-
return userIds.filter(function (id) {
|
|
253
|
-
return !_this4.contains(id);
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Precondition: presMap only contains ids of users not in cache
|
|
259
|
-
* expired users must first be removed then reinserted with updated presence
|
|
260
|
-
* Updates the cache by adding the new Presence entries and setting the expiry time
|
|
261
|
-
* @param presMap
|
|
262
|
-
*/
|
|
263
|
-
}, {
|
|
264
|
-
key: "update",
|
|
265
|
-
value: function update(presMap) {
|
|
266
|
-
var _this5 = this;
|
|
267
|
-
if (this.size >= this.flushTrigger) {
|
|
268
|
-
this._removeExpired();
|
|
269
|
-
}
|
|
270
|
-
Object.keys(presMap).forEach(function (userId) {
|
|
271
|
-
_this5.cache[userId] = new CacheEntry(presMap[userId], _this5.expiryInMillis);
|
|
272
|
-
_this5.size++;
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
}]);
|
|
276
|
-
}();
|
|
277
|
-
(0, _defineProperty2.default)(DefaultPresenceCache, "defaultTimeout", 20000);
|
|
278
|
-
(0, _defineProperty2.default)(DefaultPresenceCache, "defaultFlushTrigger", 50);
|
|
279
|
-
var DefaultPresenceParser = exports.DefaultPresenceParser = /*#__PURE__*/function () {
|
|
280
|
-
function DefaultPresenceParser() {
|
|
281
|
-
(0, _classCallCheck2.default)(this, DefaultPresenceParser);
|
|
282
|
-
}
|
|
283
|
-
return (0, _createClass2.default)(DefaultPresenceParser, [{
|
|
284
|
-
key: "mapState",
|
|
285
|
-
value: function mapState(state) {
|
|
286
|
-
if (state === 'unavailable') {
|
|
287
|
-
return 'offline';
|
|
288
|
-
} else if (state === 'available') {
|
|
289
|
-
return 'online';
|
|
290
|
-
} else {
|
|
291
|
-
return state;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}, {
|
|
295
|
-
key: "parse",
|
|
296
|
-
value: function parse(response) {
|
|
297
|
-
var presences = {};
|
|
298
|
-
if (response.hasOwnProperty('data') && response['data'].hasOwnProperty('PresenceBulk')) {
|
|
299
|
-
var results = response['data'].PresenceBulk;
|
|
300
|
-
// Store map of state and time indexed by userId. Ignore null results.
|
|
301
|
-
var _iterator2 = _createForOfIteratorHelper(results),
|
|
302
|
-
_step2;
|
|
303
|
-
try {
|
|
304
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
305
|
-
var user = _step2.value;
|
|
306
|
-
if (user.userId && user.state) {
|
|
307
|
-
var _state = DefaultPresenceParser.extractState(user) || user.state;
|
|
308
|
-
presences[user.userId] = {
|
|
309
|
-
status: this.mapState(_state)
|
|
310
|
-
};
|
|
311
|
-
} else if (!user.hasOwnProperty('userId') || !user.hasOwnProperty('state')) {
|
|
312
|
-
// eslint-disable-next-line no-console
|
|
313
|
-
console.error('Unexpected response from presence service contains keys: ' + Object.keys(user));
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
} catch (err) {
|
|
317
|
-
_iterator2.e(err);
|
|
318
|
-
} finally {
|
|
319
|
-
_iterator2.f();
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
return presences;
|
|
323
|
-
}
|
|
324
|
-
}], [{
|
|
325
|
-
key: "extractState",
|
|
326
|
-
value: function extractState(presence) {
|
|
327
|
-
if (DefaultPresenceParser.isFocusState(presence)) {
|
|
328
|
-
return DefaultPresenceParser.FOCUS_STATE;
|
|
329
|
-
}
|
|
330
|
-
return presence.state;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/*
|
|
334
|
-
This is a bit of an odd exception. In the case where a user is in "Focus Mode", their presence state
|
|
335
|
-
is returned as 'busy' along with a `stateMetadata` object containing a `focus` field.
|
|
336
|
-
In this case we ignore the value of the `state` field and treat the presence as a 'focus' state.
|
|
337
|
-
*/
|
|
338
|
-
}, {
|
|
339
|
-
key: "isFocusState",
|
|
340
|
-
value: function isFocusState(presence) {
|
|
341
|
-
if (presence.stateMetadata) {
|
|
342
|
-
try {
|
|
343
|
-
var metadata = JSON.parse(presence.stateMetadata);
|
|
344
|
-
return metadata && !!metadata.focus;
|
|
345
|
-
} catch (e) {
|
|
346
|
-
// eslint-disable-next-line no-console
|
|
347
|
-
console.error("Failed to parse presence's stateMetadata for user with id ".concat(presence.userId, ": ").concat(presence.stateMetadata));
|
|
348
|
-
// eslint-disable-next-line no-console
|
|
349
|
-
console.error(e);
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
return false;
|
|
353
|
-
}
|
|
354
|
-
}]);
|
|
355
|
-
}();
|
|
356
|
-
(0, _defineProperty2.default)(DefaultPresenceParser, "FOCUS_STATE", 'focus');
|
|
357
|
-
var _default = exports.default = PresenceResource;
|
|
123
|
+
}(_AbstractPresenceResource.AbstractPresenceResource);
|
|
124
|
+
var _default = exports.default = PresenceResource;
|
|
125
|
+
/**
|
|
126
|
+
* @deprecated Use `import { DefaultPresenceCache } from '@atlaskit/mention/presence-resource'` instead.
|
|
127
|
+
*/
|
|
128
|
+
/**
|
|
129
|
+
* @deprecated Use `import { DefaultPresenceParser } from '@atlaskit/mention/presence-resource'` instead.
|
|
130
|
+
*/
|
|
131
|
+
/**
|
|
132
|
+
* @deprecated Use `import { AbstractPresenceResource } from '@atlaskit/mention/presence-resource'` instead.
|
|
133
|
+
*/
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isResolvingMentionProvider = void 0;
|
|
7
|
+
var isResolvingMentionProvider = exports.isResolvingMentionProvider = function isResolvingMentionProvider(p) {
|
|
8
|
+
return !!(p && p.supportsMentionNameResolving && p.supportsMentionNameResolving());
|
|
9
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.mergeNameResolverQueues = mergeNameResolverQueues;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
/**
|
|
11
|
+
* Merge the two queues making sure to merge callback arrays for items in queueB already in queueA.
|
|
12
|
+
* This addresses [this ticket](https://product-fabric.atlassian.net/browse/QS-3789).
|
|
13
|
+
*/
|
|
14
|
+
function mergeNameResolverQueues(queueA, queueB) {
|
|
15
|
+
var queueBeingMerged = new Map((0, _toConsumableArray2.default)(queueA));
|
|
16
|
+
|
|
17
|
+
// now add the items from the second queue that are not already in the
|
|
18
|
+
// merged queue being built
|
|
19
|
+
(0, _toConsumableArray2.default)(queueB).forEach(function (item) {
|
|
20
|
+
var _item = (0, _slicedToArray2.default)(item, 2),
|
|
21
|
+
key = _item[0],
|
|
22
|
+
queueBCallbacks = _item[1];
|
|
23
|
+
var itemAlreadyInMergedQueue = queueBeingMerged.has(key);
|
|
24
|
+
if (!itemAlreadyInMergedQueue) {
|
|
25
|
+
queueBeingMerged.set(key, queueBCallbacks);
|
|
26
|
+
} else {
|
|
27
|
+
var _queueBeingMerged$get;
|
|
28
|
+
// item already in merged queue, merge the callback arrays
|
|
29
|
+
var queueACallbacks = (_queueBeingMerged$get = queueBeingMerged.get(key)) !== null && _queueBeingMerged$get !== void 0 ? _queueBeingMerged$get : [];
|
|
30
|
+
var mergedCallbacks = new Set([].concat((0, _toConsumableArray2.default)(queueBCallbacks), (0, _toConsumableArray2.default)(queueACallbacks)));
|
|
31
|
+
var deduplicatedCallbacks = Array.from(mergedCallbacks.values()); // prevents calling them twice
|
|
32
|
+
queueBeingMerged.set(key, deduplicatedCallbacks);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return queueBeingMerged;
|
|
36
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/* MentionInternal.tsx generated by @compiled/babel-plugin v2.0.0 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.MentionInternal = void 0;
|
|
9
|
+
require("./MentionInternal.compiled.css");
|
|
10
|
+
var _runtime = require("@compiled/react/runtime");
|
|
11
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
+
var _react = _interopRequireDefault(require("react"));
|
|
19
|
+
var _focusRing = _interopRequireDefault(require("@atlaskit/focus-ring"));
|
|
20
|
+
var _ufo = require("@atlaskit/ufo");
|
|
21
|
+
var _constants = require("../../_constants");
|
|
22
|
+
var _isRestricted = require("../../is-restricted");
|
|
23
|
+
var _types = require("../../types");
|
|
24
|
+
var _i18n = require("../../util/i18n");
|
|
25
|
+
var _DisabledMentionTooltip = _interopRequireDefault(require("../DisabledMentionTooltip"));
|
|
26
|
+
var _MessagesIntlProvider = _interopRequireDefault(require("../MessagesIntlProvider"));
|
|
27
|
+
var _NoAccessTooltip = _interopRequireDefault(require("../NoAccessTooltip"));
|
|
28
|
+
var _PrimitiveMention = _interopRequireDefault(require("./PrimitiveMention"));
|
|
29
|
+
var _index = require("./index");
|
|
30
|
+
var _ufoExperiences = require("./ufoExperiences");
|
|
31
|
+
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; }
|
|
32
|
+
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; }
|
|
33
|
+
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)); }
|
|
34
|
+
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. */
|
|
35
|
+
var avatarStyles = null;
|
|
36
|
+
var avatarFallbackStyles = null;
|
|
37
|
+
var avatarImageStyles = null;
|
|
38
|
+
var agentAvatarStyles = null;
|
|
39
|
+
var MentionInternal = exports.MentionInternal = /*#__PURE__*/function (_React$PureComponent) {
|
|
40
|
+
function MentionInternal(props) {
|
|
41
|
+
var _this;
|
|
42
|
+
(0, _classCallCheck2.default)(this, MentionInternal);
|
|
43
|
+
_this = _callSuper(this, MentionInternal, [props]);
|
|
44
|
+
(0, _defineProperty2.default)(_this, "state", {
|
|
45
|
+
hasAvatarError: false
|
|
46
|
+
});
|
|
47
|
+
(0, _defineProperty2.default)(_this, "handleAvatarError", function () {
|
|
48
|
+
_this.setState({
|
|
49
|
+
hasAvatarError: true
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
(0, _defineProperty2.default)(_this, "handleOnClick", function (e) {
|
|
53
|
+
var _this$props = _this.props,
|
|
54
|
+
id = _this$props.id,
|
|
55
|
+
text = _this$props.text,
|
|
56
|
+
onClick = _this$props.onClick,
|
|
57
|
+
isDisabled = _this$props.isDisabled;
|
|
58
|
+
if (isDisabled) {
|
|
59
|
+
// Disabled chips do not invoke their click handler.
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (onClick) {
|
|
63
|
+
onClick(id, text, e);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
(0, _defineProperty2.default)(_this, "handleOnMouseEnter", function (e) {
|
|
67
|
+
var _this$props2 = _this.props,
|
|
68
|
+
id = _this$props2.id,
|
|
69
|
+
text = _this$props2.text,
|
|
70
|
+
onMouseEnter = _this$props2.onMouseEnter,
|
|
71
|
+
onHover = _this$props2.onHover;
|
|
72
|
+
if (onMouseEnter) {
|
|
73
|
+
onMouseEnter(id, text, e);
|
|
74
|
+
}
|
|
75
|
+
_this.hoverTimeout = window.setTimeout(function () {
|
|
76
|
+
if (onHover) {
|
|
77
|
+
onHover();
|
|
78
|
+
}
|
|
79
|
+
_this.hoverTimeout = undefined;
|
|
80
|
+
}, _index.ANALYTICS_HOVER_DELAY);
|
|
81
|
+
});
|
|
82
|
+
(0, _defineProperty2.default)(_this, "handleOnMouseLeave", function (e) {
|
|
83
|
+
var _this$props3 = _this.props,
|
|
84
|
+
id = _this$props3.id,
|
|
85
|
+
text = _this$props3.text,
|
|
86
|
+
onMouseLeave = _this$props3.onMouseLeave;
|
|
87
|
+
if (onMouseLeave) {
|
|
88
|
+
onMouseLeave(id, text, e);
|
|
89
|
+
}
|
|
90
|
+
if (_this.hoverTimeout) {
|
|
91
|
+
clearTimeout(_this.hoverTimeout);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
(0, _defineProperty2.default)(_this, "getMentionType", function () {
|
|
95
|
+
var _this$props4 = _this.props,
|
|
96
|
+
accessLevel = _this$props4.accessLevel,
|
|
97
|
+
isHighlighted = _this$props4.isHighlighted,
|
|
98
|
+
isDisabled = _this$props4.isDisabled;
|
|
99
|
+
if (isDisabled) {
|
|
100
|
+
return _types.MentionType.DISABLED;
|
|
101
|
+
}
|
|
102
|
+
if (isHighlighted) {
|
|
103
|
+
return _types.MentionType.SELF;
|
|
104
|
+
}
|
|
105
|
+
if ((0, _isRestricted.isRestricted)(accessLevel)) {
|
|
106
|
+
return _types.MentionType.RESTRICTED;
|
|
107
|
+
}
|
|
108
|
+
return _types.MentionType.DEFAULT;
|
|
109
|
+
});
|
|
110
|
+
_ufoExperiences.mentionRenderedUfoExperience.getInstance(props.id).start();
|
|
111
|
+
return _this;
|
|
112
|
+
}
|
|
113
|
+
(0, _inherits2.default)(MentionInternal, _React$PureComponent);
|
|
114
|
+
return (0, _createClass2.default)(MentionInternal, [{
|
|
115
|
+
key: "componentDidMount",
|
|
116
|
+
value: function componentDidMount() {
|
|
117
|
+
_ufoExperiences.mentionRenderedUfoExperience.getInstance(this.props.id).success();
|
|
118
|
+
}
|
|
119
|
+
}, {
|
|
120
|
+
key: "componentWillUnmount",
|
|
121
|
+
value: function componentWillUnmount() {
|
|
122
|
+
if (this.hoverTimeout) {
|
|
123
|
+
clearTimeout(this.hoverTimeout);
|
|
124
|
+
}
|
|
125
|
+
var ufoInstance = _ufoExperiences.mentionRenderedUfoExperience.getInstance(this.props.id);
|
|
126
|
+
if ([_ufo.UFOExperienceState['STARTED'], _ufo.UFOExperienceState['IN_PROGRESS']].includes(ufoInstance.state)) {
|
|
127
|
+
ufoInstance.abort();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, {
|
|
131
|
+
key: "renderUnknownUserError",
|
|
132
|
+
value: function renderUnknownUserError(id) {
|
|
133
|
+
return /*#__PURE__*/_react.default.createElement(_i18n.UnknownUserError, {
|
|
134
|
+
values: {
|
|
135
|
+
userId: id.slice(-5)
|
|
136
|
+
}
|
|
137
|
+
}, function (message) {
|
|
138
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "@".concat(message));
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}, {
|
|
142
|
+
key: "render",
|
|
143
|
+
value: function render() {
|
|
144
|
+
var handleAvatarError = this.handleAvatarError,
|
|
145
|
+
handleOnClick = this.handleOnClick,
|
|
146
|
+
handleOnMouseEnter = this.handleOnMouseEnter,
|
|
147
|
+
handleOnMouseLeave = this.handleOnMouseLeave,
|
|
148
|
+
props = this.props;
|
|
149
|
+
var appType = props.appType,
|
|
150
|
+
avatarUrl = props.avatarUrl,
|
|
151
|
+
text = props.text,
|
|
152
|
+
id = props.id,
|
|
153
|
+
accessLevel = props.accessLevel,
|
|
154
|
+
localId = props.localId,
|
|
155
|
+
disabledTooltip = props.disabledTooltip,
|
|
156
|
+
isAvatarImagePreShaped = props.isAvatarImagePreShaped,
|
|
157
|
+
renderAvatarSlot = props.renderAvatarSlot;
|
|
158
|
+
var mentionType = this.getMentionType();
|
|
159
|
+
var failedMention = text === "@".concat(_constants.UNKNOWN_USER_ID);
|
|
160
|
+
var showAvatarSlot = Boolean(renderAvatarSlot) && !failedMention;
|
|
161
|
+
var visibleText = showAvatarSlot && text.startsWith('@') ? text.slice(1) : text;
|
|
162
|
+
var shouldApplyAgentShape = appType === 'agent' && !isAvatarImagePreShaped;
|
|
163
|
+
var shouldRenderAvatar = avatarUrl && !this.state.hasAvatarError;
|
|
164
|
+
var showRestrictedTooltip = mentionType === _types.MentionType.RESTRICTED;
|
|
165
|
+
var showDisabledTooltip = mentionType === _types.MentionType.DISABLED && !!disabledTooltip;
|
|
166
|
+
|
|
167
|
+
// A11y: when the chip is in the disabled visual state, expose
|
|
168
|
+
// `aria-disabled` so assistive tech announces it as such. The
|
|
169
|
+
// disabled-tooltip text is mirrored into `aria-label` so the
|
|
170
|
+
// announcement carries the reason even without portal-id wiring for
|
|
171
|
+
// `aria-describedby`.
|
|
172
|
+
var isDisabledChip = mentionType === _types.MentionType.DISABLED;
|
|
173
|
+
var disabledA11yProps = isDisabledChip ? _objectSpread({
|
|
174
|
+
'aria-disabled': true,
|
|
175
|
+
tabIndex: 0
|
|
176
|
+
}, disabledTooltip ? {
|
|
177
|
+
'aria-label': "".concat(text || '@...', " \u2014 ").concat(disabledTooltip)
|
|
178
|
+
} : {}) : {};
|
|
179
|
+
var mentionComponent = /*#__PURE__*/_react.default.createElement(_focusRing.default, null, /*#__PURE__*/_react.default.createElement(_PrimitiveMention.default, (0, _extends2.default)({
|
|
180
|
+
isAvatarVisible: showAvatarSlot,
|
|
181
|
+
mentionType: mentionType,
|
|
182
|
+
onClick: handleOnClick,
|
|
183
|
+
onMouseEnter: handleOnMouseEnter,
|
|
184
|
+
onMouseLeave: handleOnMouseLeave,
|
|
185
|
+
spellCheck: false,
|
|
186
|
+
"data-testid": "mention-".concat(id),
|
|
187
|
+
"data-mention-type": mentionType,
|
|
188
|
+
"data-mention-tooltip": showRestrictedTooltip || showDisabledTooltip
|
|
189
|
+
}, disabledA11yProps), failedMention ? this.renderUnknownUserError(id) : showAvatarSlot ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
190
|
+
"aria-hidden": "true",
|
|
191
|
+
"data-testid": "mention-avatar-slot",
|
|
192
|
+
className: (0, _runtime.ax)(["_1reo15vq _18m915vq _2rko1rr0 _1e0c116y _1bsb7vkz _4t3i7vkz _4cvr1h6o _1bah1h6o _1o9zidpf _12l21b66 _s7n410e5", shouldApplyAgentShape && "_2rkoidpf _mkrz1l17", this.state.hasAvatarError && "_s7n41q9y"])
|
|
193
|
+
}, shouldRenderAvatar ? /*#__PURE__*/_react.default.createElement("img", {
|
|
194
|
+
alt: "",
|
|
195
|
+
decoding: "async",
|
|
196
|
+
draggable: false,
|
|
197
|
+
height: 16,
|
|
198
|
+
loading: "lazy",
|
|
199
|
+
onError: handleAvatarError,
|
|
200
|
+
src: avatarUrl,
|
|
201
|
+
"data-testid": "mention-avatar",
|
|
202
|
+
width: 16,
|
|
203
|
+
className: (0, _runtime.ax)(["_1e0c1ule _1bsb1osq _4t3i1osq _5ral1dfr"])
|
|
204
|
+
}) : this.state.hasAvatarError ? '@' : null), /*#__PURE__*/_react.default.createElement("span", null, visibleText || '...')) : text || '@...'));
|
|
205
|
+
var ssrPlaceholderProp = props.ssrPlaceholderId ? {
|
|
206
|
+
'data-ssr-placeholder': props.ssrPlaceholderId
|
|
207
|
+
} : {};
|
|
208
|
+
var wrappedMention = function () {
|
|
209
|
+
if (showRestrictedTooltip) {
|
|
210
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
|
|
211
|
+
fallback: mentionComponent
|
|
212
|
+
}, /*#__PURE__*/_react.default.createElement(_NoAccessTooltip.default, {
|
|
213
|
+
name: text
|
|
214
|
+
}, mentionComponent));
|
|
215
|
+
}
|
|
216
|
+
if (showDisabledTooltip) {
|
|
217
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
|
|
218
|
+
fallback: mentionComponent
|
|
219
|
+
}, /*#__PURE__*/_react.default.createElement(_DisabledMentionTooltip.default, {
|
|
220
|
+
tooltip: disabledTooltip
|
|
221
|
+
}, mentionComponent));
|
|
222
|
+
}
|
|
223
|
+
return mentionComponent;
|
|
224
|
+
}();
|
|
225
|
+
return /*#__PURE__*/_react.default.createElement(_ufoExperiences.UfoErrorBoundary, {
|
|
226
|
+
id: id
|
|
227
|
+
}, /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
|
|
228
|
+
id: localId,
|
|
229
|
+
"data-mention-id": id,
|
|
230
|
+
"data-local-id": localId,
|
|
231
|
+
"data-access-level": accessLevel,
|
|
232
|
+
spellCheck: false
|
|
233
|
+
}, ssrPlaceholderProp), /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, wrappedMention)));
|
|
234
|
+
}
|
|
235
|
+
}], [{
|
|
236
|
+
key: "getDerivedStateFromProps",
|
|
237
|
+
value: function getDerivedStateFromProps(props, state) {
|
|
238
|
+
if (props.avatarUrl !== state.avatarUrl) {
|
|
239
|
+
return {
|
|
240
|
+
avatarUrl: props.avatarUrl,
|
|
241
|
+
hasAvatarError: false
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
}]);
|
|
247
|
+
}(_react.default.PureComponent);
|
|
@@ -13,10 +13,11 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
13
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
|
16
|
-
var
|
|
16
|
+
var _isResolvingMentionProvider = require("../../api/isResolvingMentionProvider");
|
|
17
|
+
var _isPromise = require("../../is-promise");
|
|
17
18
|
var _types = require("../../types");
|
|
18
|
-
var _ = _interopRequireWildcard(require("./"));
|
|
19
19
|
var _logger = _interopRequireDefault(require("../../util/logger"));
|
|
20
|
+
var _ = _interopRequireWildcard(require("./"));
|
|
20
21
|
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); }
|
|
21
22
|
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)); }
|
|
22
23
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
@@ -36,9 +37,9 @@ var ResourcedMention = exports.default = /*#__PURE__*/function (_React$PureCompo
|
|
|
36
37
|
id: id
|
|
37
38
|
})
|
|
38
39
|
};
|
|
39
|
-
if (!text && (0,
|
|
40
|
+
if (!text && (0, _isResolvingMentionProvider.isResolvingMentionProvider)(provider)) {
|
|
40
41
|
var nameDetail = provider.resolveMentionName(id);
|
|
41
|
-
if ((0,
|
|
42
|
+
if ((0, _isPromise.isPromise)(nameDetail)) {
|
|
42
43
|
nameDetail.then(function (nameDetailResult) {
|
|
43
44
|
_this.setStateSafely({
|
|
44
45
|
resolvedMentionName: _this.processName(nameDetailResult)
|