@atlaskit/mention 23.0.3 → 23.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/api/MentionNameResolver.js +32 -2
  3. package/dist/cjs/components/Mention/ResourcedMention.js +1 -0
  4. package/dist/cjs/components/Mention/index.js +4 -1
  5. package/dist/cjs/components/MentionDescriptionByline/styles.js +1 -0
  6. package/dist/cjs/components/MentionItem/styles.js +14 -0
  7. package/dist/cjs/components/MentionList/styles.js +1 -0
  8. package/dist/cjs/components/MentionListError/GenericErrorIllustration.js +6 -0
  9. package/dist/cjs/components/MentionListError/styles.js +6 -0
  10. package/dist/cjs/components/MentionPicker/index.js +3 -1
  11. package/dist/cjs/components/MentionPicker/styles.js +3 -0
  12. package/dist/cjs/components/Scrollable/styles.js +1 -0
  13. package/dist/cjs/util/analytics.js +1 -1
  14. package/dist/es2019/api/MentionNameResolver.js +31 -2
  15. package/dist/es2019/components/Mention/ResourcedMention.js +1 -0
  16. package/dist/es2019/components/Mention/index.js +4 -1
  17. package/dist/es2019/components/MentionDescriptionByline/styles.js +1 -0
  18. package/dist/es2019/components/MentionItem/styles.js +14 -0
  19. package/dist/es2019/components/MentionList/styles.js +1 -0
  20. package/dist/es2019/components/MentionListError/GenericErrorIllustration.js +6 -0
  21. package/dist/es2019/components/MentionListError/styles.js +7 -0
  22. package/dist/es2019/components/MentionPicker/index.js +3 -1
  23. package/dist/es2019/components/MentionPicker/styles.js +3 -0
  24. package/dist/es2019/components/Scrollable/styles.js +2 -0
  25. package/dist/es2019/util/analytics.js +1 -1
  26. package/dist/esm/api/MentionNameResolver.js +34 -2
  27. package/dist/esm/components/Mention/ResourcedMention.js +1 -0
  28. package/dist/esm/components/Mention/index.js +4 -1
  29. package/dist/esm/components/MentionDescriptionByline/styles.js +1 -0
  30. package/dist/esm/components/MentionItem/styles.js +14 -0
  31. package/dist/esm/components/MentionList/styles.js +1 -0
  32. package/dist/esm/components/MentionListError/GenericErrorIllustration.js +6 -0
  33. package/dist/esm/components/MentionListError/styles.js +7 -0
  34. package/dist/esm/components/MentionPicker/index.js +3 -1
  35. package/dist/esm/components/MentionPicker/styles.js +3 -0
  36. package/dist/esm/components/Scrollable/styles.js +2 -0
  37. package/dist/esm/util/analytics.js +1 -1
  38. package/dist/types/api/ContextMentionResource.d.ts +2 -2
  39. package/dist/types/api/MentionNameClient.d.ts +1 -1
  40. package/dist/types/api/MentionNameResolver.d.ts +13 -3
  41. package/dist/types/api/PresenceResource.d.ts +2 -2
  42. package/dist/types/api/TeamMentionResource.d.ts +2 -2
  43. package/dist/types/api/analytics.d.ts +1 -1
  44. package/dist/types/components/Mention/PrimitiveMention.d.ts +1 -1
  45. package/dist/types/components/Mention/ResourcedMention.d.ts +3 -2
  46. package/dist/types/components/Mention/index.d.ts +3 -2
  47. package/dist/types/components/MentionDescriptionByline/TeamMentionDescriptionByline.d.ts +1 -1
  48. package/dist/types/components/MentionDescriptionByline/UserMentionDescriptionByline.d.ts +1 -1
  49. package/dist/types/components/MentionDescriptionByline/index.d.ts +1 -1
  50. package/dist/types/components/MentionDescriptionByline/types.d.ts +1 -1
  51. package/dist/types/components/MentionItem/MentionHighlightHelpers.d.ts +2 -2
  52. package/dist/types/components/MentionItem/index.d.ts +1 -1
  53. package/dist/types/components/MentionList/index.d.ts +1 -1
  54. package/dist/types/components/MentionPicker/index.d.ts +5 -5
  55. package/dist/types/components/MessagesIntlProvider/index.d.ts +1 -1
  56. package/dist/types/components/ResourcedMentionList/index.d.ts +4 -4
  57. package/dist/types/components/Scrollable/index.d.ts +1 -1
  58. package/dist/types/resource.d.ts +5 -5
  59. package/dist/types/team-resource.d.ts +3 -3
  60. package/dist/types/util/analytics.d.ts +2 -2
  61. package/dist/types/util/i18n.d.ts +1 -1
  62. package/dist/types/util/mouse.d.ts +1 -1
  63. package/dist/types-ts4.5/api/ContextMentionResource.d.ts +2 -2
  64. package/dist/types-ts4.5/api/MentionNameClient.d.ts +1 -1
  65. package/dist/types-ts4.5/api/MentionNameResolver.d.ts +13 -3
  66. package/dist/types-ts4.5/api/PresenceResource.d.ts +2 -2
  67. package/dist/types-ts4.5/api/TeamMentionResource.d.ts +2 -2
  68. package/dist/types-ts4.5/api/analytics.d.ts +1 -1
  69. package/dist/types-ts4.5/components/Mention/PrimitiveMention.d.ts +1 -1
  70. package/dist/types-ts4.5/components/Mention/ResourcedMention.d.ts +3 -2
  71. package/dist/types-ts4.5/components/Mention/index.d.ts +3 -2
  72. package/dist/types-ts4.5/components/MentionDescriptionByline/TeamMentionDescriptionByline.d.ts +1 -1
  73. package/dist/types-ts4.5/components/MentionDescriptionByline/UserMentionDescriptionByline.d.ts +1 -1
  74. package/dist/types-ts4.5/components/MentionDescriptionByline/index.d.ts +1 -1
  75. package/dist/types-ts4.5/components/MentionDescriptionByline/types.d.ts +1 -1
  76. package/dist/types-ts4.5/components/MentionItem/MentionHighlightHelpers.d.ts +2 -2
  77. package/dist/types-ts4.5/components/MentionItem/index.d.ts +1 -1
  78. package/dist/types-ts4.5/components/MentionList/index.d.ts +1 -1
  79. package/dist/types-ts4.5/components/MentionPicker/index.d.ts +5 -5
  80. package/dist/types-ts4.5/components/MessagesIntlProvider/index.d.ts +1 -1
  81. package/dist/types-ts4.5/components/ResourcedMentionList/index.d.ts +4 -4
  82. package/dist/types-ts4.5/components/Scrollable/index.d.ts +1 -1
  83. package/dist/types-ts4.5/resource.d.ts +5 -5
  84. package/dist/types-ts4.5/team-resource.d.ts +3 -3
  85. package/dist/types-ts4.5/util/analytics.d.ts +2 -2
  86. package/dist/types-ts4.5/util/i18n.d.ts +1 -1
  87. package/dist/types-ts4.5/util/mouse.d.ts +1 -1
  88. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/mention
2
2
 
3
+ ## 23.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#104781](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/104781)
8
+ [`c1f5107a8905`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c1f5107a8905) -
9
+ Fix some mentions for the same user never loading in pages with many mentions
10
+
3
11
  ## 23.0.3
4
12
 
5
13
  ### Patch Changes
@@ -5,12 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.DefaultMentionNameResolver = void 0;
8
+ exports.mergeNameResolverQueues = mergeNameResolverQueues;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
14
  var _types = require("../types");
13
15
  var _analytics = require("../util/analytics");
16
+ /** A queue for user ids */
14
17
  var DefaultMentionNameResolver = exports.DefaultMentionNameResolver = /*#__PURE__*/function () {
15
18
  function DefaultMentionNameResolver(client) {
16
19
  var _this = this;
@@ -28,7 +31,7 @@ var DefaultMentionNameResolver = exports.DefaultMentionNameResolver = /*#__PURE_
28
31
  queue = _this$splitQueueAtLim.queue,
29
32
  extraQueue = _this$splitQueueAtLim.extraQueue;
30
33
  _this.nameQueue = extraQueue;
31
- _this.processingQueue = new Map([].concat((0, _toConsumableArray2.default)(_this.processingQueue), (0, _toConsumableArray2.default)(queue)));
34
+ _this.processingQueue = mergeNameResolverQueues(_this.processingQueue, queue);
32
35
  _this.client.lookupMentionNames(Array.from(queue.keys())).then(function (response) {
33
36
  response.forEach(function (mentionDetail) {
34
37
  var id = mentionDetail.id;
@@ -147,4 +150,31 @@ var DefaultMentionNameResolver = exports.DefaultMentionNameResolver = /*#__PURE_
147
150
  }]);
148
151
  return DefaultMentionNameResolver;
149
152
  }();
150
- (0, _defineProperty2.default)(DefaultMentionNameResolver, "waitForBatch", 100);
153
+ /**
154
+ * Merge the two queues making sure to merge callback arrays for items in queueB already in queueA.
155
+ * This addresses [this ticket](https://product-fabric.atlassian.net/browse/QS-3789).
156
+ */
157
+ (0, _defineProperty2.default)(DefaultMentionNameResolver, "waitForBatch", 100);
158
+ function mergeNameResolverQueues(queueA, queueB) {
159
+ var queueBeingMerged = new Map((0, _toConsumableArray2.default)(queueA));
160
+
161
+ // now add the items from the second queue that are not already in the
162
+ // merged queue being built
163
+ (0, _toConsumableArray2.default)(queueB).forEach(function (item) {
164
+ var _item = (0, _slicedToArray2.default)(item, 2),
165
+ key = _item[0],
166
+ queueBCallbacks = _item[1];
167
+ var itemAlreadyInMergedQueue = queueBeingMerged.has(key);
168
+ if (!itemAlreadyInMergedQueue) {
169
+ queueBeingMerged.set(key, queueBCallbacks);
170
+ } else {
171
+ var _queueBeingMerged$get;
172
+ // item already in merged queue, merge the callback arrays
173
+ var queueACallbacks = (_queueBeingMerged$get = queueBeingMerged.get(key)) !== null && _queueBeingMerged$get !== void 0 ? _queueBeingMerged$get : [];
174
+ var mergedCallbacks = new Set([].concat((0, _toConsumableArray2.default)(queueBCallbacks), (0, _toConsumableArray2.default)(queueACallbacks)));
175
+ var deduplicatedCallbacks = Array.from(mergedCallbacks.values()); // prevents calling them twice
176
+ queueBeingMerged.set(key, deduplicatedCallbacks);
177
+ }
178
+ });
179
+ return queueBeingMerged;
180
+ }
@@ -124,6 +124,7 @@ var ResourcedMention = exports.default = /*#__PURE__*/function (_React$PureCompo
124
124
  text: props.text || state.resolvedMentionName || '',
125
125
  isHighlighted: state.isHighlighted,
126
126
  accessLevel: props.accessLevel,
127
+ localId: props.localId,
127
128
  onClick: props.onClick,
128
129
  onMouseEnter: props.onMouseEnter,
129
130
  onMouseLeave: props.onMouseLeave
@@ -122,7 +122,8 @@ var MentionInternal = exports.MentionInternal = /*#__PURE__*/function (_React$Pu
122
122
  props = this.props;
123
123
  var text = props.text,
124
124
  id = props.id,
125
- accessLevel = props.accessLevel;
125
+ accessLevel = props.accessLevel,
126
+ localId = props.localId;
126
127
  var mentionType = this.getMentionType();
127
128
  var failedMention = text === "@".concat(UNKNOWN_USER_ID);
128
129
  var mentionComponent = /*#__PURE__*/_react.default.createElement(_focusRing.default, null, /*#__PURE__*/_react.default.createElement(_PrimitiveMention.default, {
@@ -135,7 +136,9 @@ var MentionInternal = exports.MentionInternal = /*#__PURE__*/function (_React$Pu
135
136
  return /*#__PURE__*/_react.default.createElement(_ufoExperiences.UfoErrorBoundary, {
136
137
  id: id
137
138
  }, /*#__PURE__*/_react.default.createElement("span", {
139
+ id: localId,
138
140
  "data-mention-id": id,
141
+ "data-local-id": localId,
139
142
  "data-access-level": accessLevel,
140
143
  spellCheck: false
141
144
  }, /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, mentionType === _types.MentionType.RESTRICTED ? /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
@@ -9,4 +9,5 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _colors = require("@atlaskit/theme/colors");
11
11
  var _templateObject;
12
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
12
13
  var DescriptionBylineStyle = exports.DescriptionBylineStyle = _styled.default.span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: 12px;\n\n margin-top: ", ";\n\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])), "var(--ds-text-subtlest, ".concat(_colors.N100, ")"), "var(--ds-space-025, 2px)");
@@ -9,20 +9,34 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _colors = require("@atlaskit/theme/colors");
11
11
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
12
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
12
13
  var RowStyle = exports.RowStyle = _styled.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n overflow: hidden;\n padding: ", " ", ";\n text-overflow: ellipsis;\n vertical-align: middle;\n"])), "var(--ds-space-075, 6px)", "var(--ds-space-150, 12px)");
14
+
15
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
13
16
  var AvatarStyle = exports.AvatarStyle = _styled.default.span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n position: relative;\n flex: initial;\n opacity: ", ";\n"])), function (props) {
14
17
  return props.restricted ? '0.5' : 'inherit';
15
18
  });
19
+
20
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
16
21
  var NameSectionStyle = exports.NameSectionStyle = _styled.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1;\n min-width: 0;\n margin-left: ", ";\n opacity: ", ";\n"])), "var(--ds-space-150, 12px)", function (props) {
17
22
  return props.restricted ? '0.5' : 'inherit';
18
23
  });
24
+
25
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
19
26
  var FullNameStyle = exports.FullNameStyle = _styled.default.span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n"])), "var(--ds-text, ".concat(_colors.N900, ")"));
27
+
28
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
20
29
  var InfoSectionStyle = exports.InfoSectionStyle = _styled.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n text-align: right;\n opacity: ", ";\n\n & {\n /* Lozenge */\n & > span {\n margin-bottom: ", ";\n }\n }\n"])), function (props) {
21
30
  return props.restricted ? '0.5' : 'inherit';
22
31
  }, "var(--ds-space-025, 2px)");
32
+
33
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
23
34
  var TimeStyle = exports.TimeStyle = _styled.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", ";\n flex: none;\n color: ", ";\n font-size: 12px;\n"])), "var(--ds-space-250, 20px)", "var(--ds-text-subtlest, ".concat(_colors.N100, ")"));
24
35
  var MENTION_ITEM_HEIGHT = exports.MENTION_ITEM_HEIGHT = 48;
36
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
25
37
  var MentionItemStyle = exports.MentionItemStyle = _styled.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n display: block;\n overflow: hidden;\n list-style-type: none;\n height: ", "px;\n line-height: 1.2;\n cursor: pointer;\n"])), function (props) {
26
38
  return props.selected ? "var(--ds-background-selected, ".concat(_colors.N30, ")") : 'transparent';
27
39
  }, MENTION_ITEM_HEIGHT);
40
+
41
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
28
42
  var AccessSectionStyle = exports.AccessSectionStyle = _styled.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n padding-left: ", ";\n color: ", ";\n"])), "var(--ds-space-050, 4px)", "var(--ds-text-subtle, ".concat(_colors.N500, ")"));
@@ -9,6 +9,7 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _sharedStyles = require("../../shared-styles");
11
11
  var _templateObject;
12
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
12
13
  var MentionListStyle = exports.MentionListStyle = _styled.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: ", ";\n\n /* list style */\n width: ", ";\n color: ", ";\n\n border: 1px solid ", ";\n border-radius: ", ";\n box-shadow: ", ";\n"])), function (props) {
13
14
  return props.empty ? 'none' : 'block';
14
15
  }, _sharedStyles.mentionListWidth, "var(--ds-text-subtle, #333)", _sharedStyles.noDialogContainerBorderColor, _sharedStyles.noDialogContainerBorderRadius, _sharedStyles.noDialogContainerBoxShadow);
@@ -64,29 +64,35 @@ var GenericErrorIllustration = exports.GenericErrorIllustration = /*#__PURE__*/f
64
64
  }, /*#__PURE__*/_react.default.createElement("g", {
65
65
  "data-name": "Layer 1-2"
66
66
  }, /*#__PURE__*/_react.default.createElement("path", {
67
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
67
68
  className: "cls-1",
68
69
  d: "M94.8,74.2l66.4,115.1a15.16,15.16,0,0,1-5.5,20.7,15.4,15.4,0,0,1-7.6,2H15.2A15.19,15.19,0,0,1,0,196.8a15.4,15.4,0,0,1,2-7.6l66.5-115a15.21,15.21,0,0,1,20.7-5.6A15.81,15.81,0,0,1,94.8,74.2Zm-7.6,83.5,2.9-44.3a9.26,9.26,0,0,0-8.6-9.8h-.6a9.18,9.18,0,0,0-9.2,9.2v.6l2.9,44.3a6.33,6.33,0,0,0,6.3,5.9h0A6.26,6.26,0,0,0,87.2,157.7ZM71.4,181.2a9.5,9.5,0,0,0,9.4,9.6h.9a9.79,9.79,0,0,0,8.8-10.5,9.69,9.69,0,0,0-9.7-8.8A9.58,9.58,0,0,0,71.4,181.2Z"
69
70
  }), /*#__PURE__*/_react.default.createElement("g", {
70
71
  className: "cls-2"
71
72
  }, /*#__PURE__*/_react.default.createElement("path", {
73
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
72
74
  className: "cls-3",
73
75
  d: "M92.7,27.2,85.3.4a.57.57,0,0,0-.7-.4c-.2.1-.4.2-.4.5L79.5,25.6l-5.8-1.1c-.3-.1-.6.2-.7.5v.3L80.3,52a.75.75,0,0,0,.7.5.82.82,0,0,0,.5-.5l4.7-25.1,5.8,1c.3.1.6-.2.7-.5Z"
74
76
  }), /*#__PURE__*/_react.default.createElement("path", {
77
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
75
78
  className: "cls-3",
76
79
  d: "M66.1,41.8,55.2,33.2a.3.3,0,0,0-.4,0,.19.19,0,0,0,0,.3L60.4,45l-2.7,1.3c-.1.1-.2.2-.1.4a.1.1,0,0,0,.1.1l10.9,8.5a.3.3,0,0,0,.4,0,.19.19,0,0,0,0-.3L63.4,43.6l2.7-1.3a.33.33,0,0,0,0-.5Z"
77
80
  })), /*#__PURE__*/_react.default.createElement("g", {
78
81
  className: "cls-2"
79
82
  }, /*#__PURE__*/_react.default.createElement("path", {
83
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
80
84
  className: "cls-4",
81
85
  d: "M102.1,56.8a1.42,1.42,0,0,1-.6-.2,1,1,0,0,1-.3-1.2c-.2-.8-2.3-2.8-3.5-4.1-3-3-4.9-5-3.8-6.5s3.6-.2,7.3,1.7a28.41,28.41,0,0,0,4.5,2,21.58,21.58,0,0,0-3.3-3.6c-3-3-4.9-5-3.8-6.5s3.6-.2,7.4,1.7a27.65,27.65,0,0,0,4.4,2,21.58,21.58,0,0,0-3.3-3.6c-3-3-4.9-5-3.8-6.5s3.6-.2,7.3,1.7c1.6.8,4.2,2.1,5,2.1a.91.91,0,0,1,1.2,0,1.08,1.08,0,0,1,.2,1.4c-1.1,1.5-3.6.2-7.3-1.7a27.65,27.65,0,0,0-4.4-2,21.58,21.58,0,0,0,3.3,3.6c3,3,4.9,5,3.8,6.5s-3.6.2-7.3-1.7a28.41,28.41,0,0,0-4.5-2,21.58,21.58,0,0,0,3.3,3.6c3,3,4.9,5,3.8,6.5s-3.6.2-7.3-1.7a28.41,28.41,0,0,0-4.5-2,21.58,21.58,0,0,0,3.3,3.6c3,3,4.9,5,3.8,6.5A1.8,1.8,0,0,1,102.1,56.8Z"
82
86
  })), /*#__PURE__*/_react.default.createElement("g", {
83
87
  className: "cls-5"
84
88
  }, /*#__PURE__*/_react.default.createElement("path", {
89
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
85
90
  className: "cls-4",
86
91
  d: "M107.7,71.1a1.05,1.05,0,0,1-.9-.5c-1-1.9-2.2-4-.9-5.2s3.3.2,5.5,1.6a19.31,19.31,0,0,0,2.9,1.7,15.89,15.89,0,0,0-1.4-3.1c-1.3-2.3-2.5-4.4-1.1-5.6s3.3.2,5.5,1.6c1,.6,2.5,1.7,3.1,1.7a1,1,0,0,1,1.3.1,1,1,0,0,1-.1,1.4c-1.3,1.2-3.3-.2-5.5-1.6a19.31,19.31,0,0,0-2.9-1.7,13.64,13.64,0,0,0,1.4,3.1c1.3,2.3,2.4,4.4,1.1,5.6s-3.3-.2-5.5-1.6a19.31,19.31,0,0,0-2.9-1.7,13.07,13.07,0,0,0,1.2,2.7,1,1,0,0,1-.4,1.4A.6.6,0,0,1,107.7,71.1Zm12.5-7.6Z"
87
92
  })), /*#__PURE__*/_react.default.createElement("g", {
88
93
  className: "cls-5"
89
94
  }, /*#__PURE__*/_react.default.createElement("path", {
95
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
90
96
  className: "cls-4",
91
97
  d: "M53.4,68.1a2,2,0,0,1-.7-.1c-1.6-.7-1.2-3.1-.8-5.6a10.87,10.87,0,0,0,.3-3.4A15,15,0,0,0,50,61.6c-1.5,2.1-3,4.1-4.6,3.4a1,1,0,0,1-.5-1.3,1,1,0,0,1,1.2-.6,11.23,11.23,0,0,0,2.3-2.7c1.5-2.1,3-4.1,4.7-3.4s1.3,3.1.8,5.7a13.86,13.86,0,0,0-.3,3.3,11.82,11.82,0,0,0,2.1-2.6c1.5-2.1,3-4.1,4.7-3.4s1.2,3.1.9,5.2a1,1,0,1,1-1.9-.3,14.28,14.28,0,0,0,.3-2.9,15,15,0,0,0-2.2,2.6C56,66.4,54.7,68.1,53.4,68.1Z"
92
98
  }))))));
@@ -11,9 +11,15 @@ var _constants = require("@atlaskit/theme/constants");
11
11
  var _colors = require("@atlaskit/theme/colors");
12
12
  var _typography = require("@atlaskit/theme/typography");
13
13
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
14
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
14
15
  var MentionListErrorStyle = exports.MentionListErrorStyle = _styled.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n justify-content: center;\n flex-direction: column;\n background-color: ", ";\n color: ", ";\n border: 1px solid ", ";\n border-radius: ", "px;\n"])), "var(--ds-surface-overlay, white)", "var(--ds-text-subtle, ".concat(_colors.N500, ")"), "var(--ds-surface-overlay, #fff)", (0, _constants.borderRadius)());
16
+
17
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
15
18
  var GenericErrorVisualStyle = exports.GenericErrorVisualStyle = _styled.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: ", ";\n margin-top: ", ";\n width: ", ";\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-400, 32px)", "var(--ds-space-1000, 80px)");
16
19
 
17
20
  // TODO: Figure out why the themed css function is causing type errors when passed prop children
21
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
18
22
  var MentionListErrorHeadlineStyle = exports.MentionListErrorHeadlineStyle = _styled.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n margin-bottom: ", ";\n"])), (0, _typography.h400)(), "var(--ds-space-100, 8px)");
23
+
24
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
19
25
  var MentionListAdviceStyle = exports.MentionListAdviceStyle = _styled.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: ", ";\n"])), "var(--ds-space-600, 48px)");
@@ -214,7 +214,9 @@ var MentionPicker = exports.MentionPicker = /*#__PURE__*/function (_React$PureCo
214
214
  return (
215
215
  /*#__PURE__*/
216
216
  /* old classnames are essential for Confluence tests */
217
- _react.default.createElement(_styles.MentionPickerStyle, {
217
+ _react.default.createElement(_styles.MentionPickerStyle
218
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
219
+ , {
218
220
  className: "ak-mention-picker",
219
221
  visible: visible || info
220
222
  }, content)
@@ -10,7 +10,10 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _colors = require("@atlaskit/theme/colors");
11
11
  var _sharedStyles = require("../../shared-styles");
12
12
  var _templateObject, _templateObject2;
13
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
13
14
  var MentionPickerStyle = exports.MentionPickerStyle = _styled.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: ", ";\n"])), function (props) {
14
15
  return props.visible ? 'block' : 'none';
15
16
  });
17
+
18
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
16
19
  var MentionPickerInfoStyle = exports.MentionPickerInfoStyle = _styled.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n background: ", ";\n color: ", ";\n border: 1px solid ", ";\n border-radius: ", ";\n box-shadow: ", ";\n display: block;\n width: ", ";\n white-space: nowrap;\n\n & {\n p {\n margin: 0;\n overflow: hidden;\n padding: ", ";\n text-overflow: ellipsis;\n }\n }\n"])), "var(--ds-surface, #fff)", "var(--ds-text-subtlest, ".concat(_colors.N100, ")"), _sharedStyles.noDialogContainerBorderColor, _sharedStyles.noDialogContainerBorderRadius, _sharedStyles.noDialogContainerBoxShadow, _sharedStyles.mentionListWidth, "var(--ds-space-100, 8px)");
@@ -10,4 +10,5 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _constants = require("@atlaskit/theme/constants");
11
11
  var _sharedStyles = require("../../shared-styles");
12
12
  var _templateObject;
13
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
13
14
  var ScrollableStyle = exports.ScrollableStyle = _styled.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: block;\n overflow-x: hidden;\n overflow-y: auto;\n\n padding: ", " 0;\n margin: 0;\n\n background: ", ";\n max-height: ", ";\n\n border-radius: ", "px;\n"])), "var(--ds-space-050, 4px)", "var(--ds-surface, white)", _sharedStyles.scrollableMaxHeight, (0, _constants.borderRadius)());
@@ -12,7 +12,7 @@ var _types = require("../types");
12
12
  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; }
13
13
  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; }
14
14
  var packageName = "@atlaskit/mention";
15
- var packageVersion = "23.0.3";
15
+ var packageVersion = "23.0.4";
16
16
  var SLI_EVENT_TYPE = exports.SLI_EVENT_TYPE = 'sli';
17
17
  var SMART_EVENT_TYPE = exports.SMART_EVENT_TYPE = 'smart';
18
18
  var SliNames = exports.SliNames = /*#__PURE__*/function (SliNames) {
@@ -1,6 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { MentionNameStatus } from '../types';
3
3
  import { fireAnalyticsMentionHydrationEvent } from '../util/analytics';
4
+
5
+ /** A queue for user ids */
6
+
4
7
  export class DefaultMentionNameResolver {
5
8
  constructor(client, analyticsProps = {}) {
6
9
  _defineProperty(this, "nameCache", new Map());
@@ -16,7 +19,7 @@ export class DefaultMentionNameResolver {
16
19
  extraQueue
17
20
  } = this.splitQueueAtLimit();
18
21
  this.nameQueue = extraQueue;
19
- this.processingQueue = new Map([...this.processingQueue, ...queue]);
22
+ this.processingQueue = mergeNameResolverQueues(this.processingQueue, queue);
20
23
  this.client.lookupMentionNames(Array.from(queue.keys())).then(response => {
21
24
  response.forEach(mentionDetail => {
22
25
  const {
@@ -124,4 +127,30 @@ export class DefaultMentionNameResolver {
124
127
  this.fireHydrationEvent(action, id, fromCache, duration);
125
128
  }
126
129
  }
127
- _defineProperty(DefaultMentionNameResolver, "waitForBatch", 100);
130
+
131
+ /**
132
+ * Merge the two queues making sure to merge callback arrays for items in queueB already in queueA.
133
+ * This addresses [this ticket](https://product-fabric.atlassian.net/browse/QS-3789).
134
+ */
135
+ _defineProperty(DefaultMentionNameResolver, "waitForBatch", 100);
136
+ export function mergeNameResolverQueues(queueA, queueB) {
137
+ const queueBeingMerged = new Map([...queueA]);
138
+
139
+ // now add the items from the second queue that are not already in the
140
+ // merged queue being built
141
+ [...queueB].forEach(item => {
142
+ const [key, queueBCallbacks] = item;
143
+ const itemAlreadyInMergedQueue = queueBeingMerged.has(key);
144
+ if (!itemAlreadyInMergedQueue) {
145
+ queueBeingMerged.set(key, queueBCallbacks);
146
+ } else {
147
+ var _queueBeingMerged$get;
148
+ // item already in merged queue, merge the callback arrays
149
+ const queueACallbacks = (_queueBeingMerged$get = queueBeingMerged.get(key)) !== null && _queueBeingMerged$get !== void 0 ? _queueBeingMerged$get : [];
150
+ const mergedCallbacks = new Set([...queueBCallbacks, ...queueACallbacks]);
151
+ const deduplicatedCallbacks = Array.from(mergedCallbacks.values()); // prevents calling them twice
152
+ queueBeingMerged.set(key, deduplicatedCallbacks);
153
+ }
154
+ });
155
+ return queueBeingMerged;
156
+ }
@@ -95,6 +95,7 @@ export default class ResourcedMention extends React.PureComponent {
95
95
  text: props.text || state.resolvedMentionName || '',
96
96
  isHighlighted: state.isHighlighted,
97
97
  accessLevel: props.accessLevel,
98
+ localId: props.localId,
98
99
  onClick: props.onClick,
99
100
  onMouseEnter: props.onMouseEnter,
100
101
  onMouseLeave: props.onMouseLeave
@@ -99,7 +99,8 @@ export class MentionInternal extends React.PureComponent {
99
99
  const {
100
100
  text,
101
101
  id,
102
- accessLevel
102
+ accessLevel,
103
+ localId
103
104
  } = props;
104
105
  const mentionType = this.getMentionType();
105
106
  const failedMention = text === `@${UNKNOWN_USER_ID}`;
@@ -113,7 +114,9 @@ export class MentionInternal extends React.PureComponent {
113
114
  return /*#__PURE__*/React.createElement(UfoErrorBoundary, {
114
115
  id: id
115
116
  }, /*#__PURE__*/React.createElement("span", {
117
+ id: localId,
116
118
  "data-mention-id": id,
119
+ "data-local-id": localId,
117
120
  "data-access-level": accessLevel,
118
121
  spellCheck: false
119
122
  }, /*#__PURE__*/React.createElement(MessagesIntlProvider, null, mentionType === MentionType.RESTRICTED ? /*#__PURE__*/React.createElement(React.Suspense, {
@@ -1,5 +1,6 @@
1
1
  import styled from '@emotion/styled';
2
2
  import { N100 } from '@atlaskit/theme/colors';
3
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
3
4
  export const DescriptionBylineStyle = styled.span`
4
5
  color: ${`var(--ds-text-subtlest, ${N100})`};
5
6
  font-size: 12px;
@@ -1,5 +1,6 @@
1
1
  import styled from '@emotion/styled';
2
2
  import { N900, N100, N30, N500 } from '@atlaskit/theme/colors';
3
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
3
4
  export const RowStyle = styled.div`
4
5
  align-items: center;
5
6
  display: flex;
@@ -10,17 +11,23 @@ export const RowStyle = styled.div`
10
11
  text-overflow: ellipsis;
11
12
  vertical-align: middle;
12
13
  `;
14
+
15
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
13
16
  export const AvatarStyle = styled.span`
14
17
  position: relative;
15
18
  flex: initial;
16
19
  opacity: ${props => props.restricted ? '0.5' : 'inherit'};
17
20
  `;
21
+
22
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
18
23
  export const NameSectionStyle = styled.div`
19
24
  flex: 1;
20
25
  min-width: 0;
21
26
  margin-left: ${"var(--ds-space-150, 12px)"};
22
27
  opacity: ${props => props.restricted ? '0.5' : 'inherit'};
23
28
  `;
29
+
30
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
24
31
  export const FullNameStyle = styled.span`
25
32
  display: block;
26
33
  overflow: hidden;
@@ -28,6 +35,8 @@ export const FullNameStyle = styled.span`
28
35
  white-space: nowrap;
29
36
  color: ${`var(--ds-text, ${N900})`};
30
37
  `;
38
+
39
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
31
40
  export const InfoSectionStyle = styled.div`
32
41
  display: flex;
33
42
  flex-direction: column;
@@ -41,6 +50,8 @@ export const InfoSectionStyle = styled.div`
41
50
  }
42
51
  }
43
52
  `;
53
+
54
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
44
55
  export const TimeStyle = styled.div`
45
56
  margin-left: ${"var(--ds-space-250, 20px)"};
46
57
  flex: none;
@@ -48,6 +59,7 @@ export const TimeStyle = styled.div`
48
59
  font-size: 12px;
49
60
  `;
50
61
  export const MENTION_ITEM_HEIGHT = 48;
62
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
51
63
  export const MentionItemStyle = styled.div`
52
64
  background-color: ${props => props.selected ? `var(--ds-background-selected, ${N30})` : 'transparent'};
53
65
  display: block;
@@ -57,6 +69,8 @@ export const MentionItemStyle = styled.div`
57
69
  line-height: 1.2;
58
70
  cursor: pointer;
59
71
  `;
72
+
73
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
60
74
  export const AccessSectionStyle = styled.div`
61
75
  padding-left: ${"var(--ds-space-050, 4px)"};
62
76
  color: ${`var(--ds-text-subtle, ${N500})`};
@@ -1,5 +1,6 @@
1
1
  import styled from '@emotion/styled';
2
2
  import { mentionListWidth, noDialogContainerBorderColor, noDialogContainerBorderRadius, noDialogContainerBoxShadow } from '../../shared-styles';
3
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
3
4
  export const MentionListStyle = styled.div`
4
5
  display: ${props => props.empty ? 'none' : 'block'};
5
6
 
@@ -43,29 +43,35 @@ export class GenericErrorIllustration extends React.PureComponent {
43
43
  }, /*#__PURE__*/React.createElement("g", {
44
44
  "data-name": "Layer 1-2"
45
45
  }, /*#__PURE__*/React.createElement("path", {
46
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
46
47
  className: "cls-1",
47
48
  d: "M94.8,74.2l66.4,115.1a15.16,15.16,0,0,1-5.5,20.7,15.4,15.4,0,0,1-7.6,2H15.2A15.19,15.19,0,0,1,0,196.8a15.4,15.4,0,0,1,2-7.6l66.5-115a15.21,15.21,0,0,1,20.7-5.6A15.81,15.81,0,0,1,94.8,74.2Zm-7.6,83.5,2.9-44.3a9.26,9.26,0,0,0-8.6-9.8h-.6a9.18,9.18,0,0,0-9.2,9.2v.6l2.9,44.3a6.33,6.33,0,0,0,6.3,5.9h0A6.26,6.26,0,0,0,87.2,157.7ZM71.4,181.2a9.5,9.5,0,0,0,9.4,9.6h.9a9.79,9.79,0,0,0,8.8-10.5,9.69,9.69,0,0,0-9.7-8.8A9.58,9.58,0,0,0,71.4,181.2Z"
48
49
  }), /*#__PURE__*/React.createElement("g", {
49
50
  className: "cls-2"
50
51
  }, /*#__PURE__*/React.createElement("path", {
52
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
51
53
  className: "cls-3",
52
54
  d: "M92.7,27.2,85.3.4a.57.57,0,0,0-.7-.4c-.2.1-.4.2-.4.5L79.5,25.6l-5.8-1.1c-.3-.1-.6.2-.7.5v.3L80.3,52a.75.75,0,0,0,.7.5.82.82,0,0,0,.5-.5l4.7-25.1,5.8,1c.3.1.6-.2.7-.5Z"
53
55
  }), /*#__PURE__*/React.createElement("path", {
56
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
54
57
  className: "cls-3",
55
58
  d: "M66.1,41.8,55.2,33.2a.3.3,0,0,0-.4,0,.19.19,0,0,0,0,.3L60.4,45l-2.7,1.3c-.1.1-.2.2-.1.4a.1.1,0,0,0,.1.1l10.9,8.5a.3.3,0,0,0,.4,0,.19.19,0,0,0,0-.3L63.4,43.6l2.7-1.3a.33.33,0,0,0,0-.5Z"
56
59
  })), /*#__PURE__*/React.createElement("g", {
57
60
  className: "cls-2"
58
61
  }, /*#__PURE__*/React.createElement("path", {
62
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
59
63
  className: "cls-4",
60
64
  d: "M102.1,56.8a1.42,1.42,0,0,1-.6-.2,1,1,0,0,1-.3-1.2c-.2-.8-2.3-2.8-3.5-4.1-3-3-4.9-5-3.8-6.5s3.6-.2,7.3,1.7a28.41,28.41,0,0,0,4.5,2,21.58,21.58,0,0,0-3.3-3.6c-3-3-4.9-5-3.8-6.5s3.6-.2,7.4,1.7a27.65,27.65,0,0,0,4.4,2,21.58,21.58,0,0,0-3.3-3.6c-3-3-4.9-5-3.8-6.5s3.6-.2,7.3,1.7c1.6.8,4.2,2.1,5,2.1a.91.91,0,0,1,1.2,0,1.08,1.08,0,0,1,.2,1.4c-1.1,1.5-3.6.2-7.3-1.7a27.65,27.65,0,0,0-4.4-2,21.58,21.58,0,0,0,3.3,3.6c3,3,4.9,5,3.8,6.5s-3.6.2-7.3-1.7a28.41,28.41,0,0,0-4.5-2,21.58,21.58,0,0,0,3.3,3.6c3,3,4.9,5,3.8,6.5s-3.6.2-7.3-1.7a28.41,28.41,0,0,0-4.5-2,21.58,21.58,0,0,0,3.3,3.6c3,3,4.9,5,3.8,6.5A1.8,1.8,0,0,1,102.1,56.8Z"
61
65
  })), /*#__PURE__*/React.createElement("g", {
62
66
  className: "cls-5"
63
67
  }, /*#__PURE__*/React.createElement("path", {
68
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
64
69
  className: "cls-4",
65
70
  d: "M107.7,71.1a1.05,1.05,0,0,1-.9-.5c-1-1.9-2.2-4-.9-5.2s3.3.2,5.5,1.6a19.31,19.31,0,0,0,2.9,1.7,15.89,15.89,0,0,0-1.4-3.1c-1.3-2.3-2.5-4.4-1.1-5.6s3.3.2,5.5,1.6c1,.6,2.5,1.7,3.1,1.7a1,1,0,0,1,1.3.1,1,1,0,0,1-.1,1.4c-1.3,1.2-3.3-.2-5.5-1.6a19.31,19.31,0,0,0-2.9-1.7,13.64,13.64,0,0,0,1.4,3.1c1.3,2.3,2.4,4.4,1.1,5.6s-3.3-.2-5.5-1.6a19.31,19.31,0,0,0-2.9-1.7,13.07,13.07,0,0,0,1.2,2.7,1,1,0,0,1-.4,1.4A.6.6,0,0,1,107.7,71.1Zm12.5-7.6Z"
66
71
  })), /*#__PURE__*/React.createElement("g", {
67
72
  className: "cls-5"
68
73
  }, /*#__PURE__*/React.createElement("path", {
74
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
69
75
  className: "cls-4",
70
76
  d: "M53.4,68.1a2,2,0,0,1-.7-.1c-1.6-.7-1.2-3.1-.8-5.6a10.87,10.87,0,0,0,.3-3.4A15,15,0,0,0,50,61.6c-1.5,2.1-3,4.1-4.6,3.4a1,1,0,0,1-.5-1.3,1,1,0,0,1,1.2-.6,11.23,11.23,0,0,0,2.3-2.7c1.5-2.1,3-4.1,4.7-3.4s1.3,3.1.8,5.7a13.86,13.86,0,0,0-.3,3.3,11.82,11.82,0,0,0,2.1-2.6c1.5-2.1,3-4.1,4.7-3.4s1.2,3.1.9,5.2a1,1,0,1,1-1.9-.3,14.28,14.28,0,0,0,.3-2.9,15,15,0,0,0-2.2,2.6C56,66.4,54.7,68.1,53.4,68.1Z"
71
77
  }))))));
@@ -2,6 +2,8 @@ import styled from '@emotion/styled';
2
2
  import { borderRadius } from '@atlaskit/theme/constants';
3
3
  import { N500 } from '@atlaskit/theme/colors';
4
4
  import { h400 } from '@atlaskit/theme/typography';
5
+
6
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
5
7
  export const MentionListErrorStyle = styled.div`
6
8
  align-items: center;
7
9
  display: flex;
@@ -12,6 +14,8 @@ export const MentionListErrorStyle = styled.div`
12
14
  border: 1px solid ${"var(--ds-surface-overlay, #fff)"};
13
15
  border-radius: ${borderRadius()}px;
14
16
  `;
17
+
18
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
15
19
  export const GenericErrorVisualStyle = styled.div`
16
20
  margin-bottom: ${"var(--ds-space-100, 8px)"};
17
21
  margin-top: ${"var(--ds-space-400, 32px)"};
@@ -19,10 +23,13 @@ export const GenericErrorVisualStyle = styled.div`
19
23
  `;
20
24
 
21
25
  // TODO: Figure out why the themed css function is causing type errors when passed prop children
26
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
22
27
  export const MentionListErrorHeadlineStyle = styled.div`
23
28
  ${h400()};
24
29
  margin-bottom: ${"var(--ds-space-100, 8px)"};
25
30
  `;
31
+
32
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
26
33
  export const MentionListAdviceStyle = styled.div`
27
34
  margin-bottom: ${"var(--ds-space-600, 48px)"};
28
35
  `;
@@ -179,7 +179,9 @@ export class MentionPicker extends React.PureComponent {
179
179
  return (
180
180
  /*#__PURE__*/
181
181
  /* old classnames are essential for Confluence tests */
182
- React.createElement(MentionPickerStyle, {
182
+ React.createElement(MentionPickerStyle
183
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
184
+ , {
183
185
  className: "ak-mention-picker",
184
186
  visible: visible || info
185
187
  }, content)
@@ -1,9 +1,12 @@
1
1
  import styled from '@emotion/styled';
2
2
  import { N100 } from '@atlaskit/theme/colors';
3
3
  import { mentionListWidth, noDialogContainerBorderColor, noDialogContainerBorderRadius, noDialogContainerBoxShadow } from '../../shared-styles';
4
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
4
5
  export const MentionPickerStyle = styled.div`
5
6
  display: ${props => props.visible ? 'block' : 'none'};
6
7
  `;
8
+
9
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
7
10
  export const MentionPickerInfoStyle = styled.div`
8
11
  background: ${"var(--ds-surface, #fff)"};
9
12
  color: ${`var(--ds-text-subtlest, ${N100})`};
@@ -1,6 +1,8 @@
1
1
  import styled from '@emotion/styled';
2
2
  import { borderRadius } from '@atlaskit/theme/constants';
3
3
  import { scrollableMaxHeight } from '../../shared-styles';
4
+
5
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled -- To migrate as part of go/ui-styling-standard
4
6
  export const ScrollableStyle = styled.div`
5
7
  display: block;
6
8
  overflow-x: hidden;
@@ -2,7 +2,7 @@ import { OPERATIONAL_EVENT_TYPE, UI_EVENT_TYPE } from '@atlaskit/analytics-gas-t
2
2
  import { ELEMENTS_CHANNEL } from '../_constants';
3
3
  import { isSpecialMentionText } from '../types';
4
4
  const packageName = "@atlaskit/mention";
5
- const packageVersion = "23.0.3";
5
+ const packageVersion = "23.0.4";
6
6
  export const SLI_EVENT_TYPE = 'sli';
7
7
  export const SMART_EVENT_TYPE = 'smart';
8
8
  export let SliNames = /*#__PURE__*/function (SliNames) {
@@ -1,9 +1,13 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
3
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
4
  import _createClass from "@babel/runtime/helpers/createClass";
4
5
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
6
  import { MentionNameStatus } from '../types';
6
7
  import { fireAnalyticsMentionHydrationEvent } from '../util/analytics';
8
+
9
+ /** A queue for user ids */
10
+
7
11
  export var DefaultMentionNameResolver = /*#__PURE__*/function () {
8
12
  function DefaultMentionNameResolver(client) {
9
13
  var _this = this;
@@ -21,7 +25,7 @@ export var DefaultMentionNameResolver = /*#__PURE__*/function () {
21
25
  queue = _this$splitQueueAtLim.queue,
22
26
  extraQueue = _this$splitQueueAtLim.extraQueue;
23
27
  _this.nameQueue = extraQueue;
24
- _this.processingQueue = new Map([].concat(_toConsumableArray(_this.processingQueue), _toConsumableArray(queue)));
28
+ _this.processingQueue = mergeNameResolverQueues(_this.processingQueue, queue);
25
29
  _this.client.lookupMentionNames(Array.from(queue.keys())).then(function (response) {
26
30
  response.forEach(function (mentionDetail) {
27
31
  var id = mentionDetail.id;
@@ -140,4 +144,32 @@ export var DefaultMentionNameResolver = /*#__PURE__*/function () {
140
144
  }]);
141
145
  return DefaultMentionNameResolver;
142
146
  }();
143
- _defineProperty(DefaultMentionNameResolver, "waitForBatch", 100);
147
+
148
+ /**
149
+ * Merge the two queues making sure to merge callback arrays for items in queueB already in queueA.
150
+ * This addresses [this ticket](https://product-fabric.atlassian.net/browse/QS-3789).
151
+ */
152
+ _defineProperty(DefaultMentionNameResolver, "waitForBatch", 100);
153
+ export function mergeNameResolverQueues(queueA, queueB) {
154
+ var queueBeingMerged = new Map(_toConsumableArray(queueA));
155
+
156
+ // now add the items from the second queue that are not already in the
157
+ // merged queue being built
158
+ _toConsumableArray(queueB).forEach(function (item) {
159
+ var _item = _slicedToArray(item, 2),
160
+ key = _item[0],
161
+ queueBCallbacks = _item[1];
162
+ var itemAlreadyInMergedQueue = queueBeingMerged.has(key);
163
+ if (!itemAlreadyInMergedQueue) {
164
+ queueBeingMerged.set(key, queueBCallbacks);
165
+ } else {
166
+ var _queueBeingMerged$get;
167
+ // item already in merged queue, merge the callback arrays
168
+ var queueACallbacks = (_queueBeingMerged$get = queueBeingMerged.get(key)) !== null && _queueBeingMerged$get !== void 0 ? _queueBeingMerged$get : [];
169
+ var mergedCallbacks = new Set([].concat(_toConsumableArray(queueBCallbacks), _toConsumableArray(queueACallbacks)));
170
+ var deduplicatedCallbacks = Array.from(mergedCallbacks.values()); // prevents calling them twice
171
+ queueBeingMerged.set(key, deduplicatedCallbacks);
172
+ }
173
+ });
174
+ return queueBeingMerged;
175
+ }
@@ -114,6 +114,7 @@ var ResourcedMention = /*#__PURE__*/function (_React$PureComponent) {
114
114
  text: props.text || state.resolvedMentionName || '',
115
115
  isHighlighted: state.isHighlighted,
116
116
  accessLevel: props.accessLevel,
117
+ localId: props.localId,
117
118
  onClick: props.onClick,
118
119
  onMouseEnter: props.onMouseEnter,
119
120
  onMouseLeave: props.onMouseLeave