@atlaskit/mention 19.9.5 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cjs/api/MentionResource.js +4 -6
  3. package/dist/cjs/api/TeamMentionResource.js +2 -2
  4. package/dist/cjs/api/analytics.js +2 -15
  5. package/dist/cjs/components/LockCircleIcon/index.js +28 -0
  6. package/dist/cjs/components/Mention/PrimitiveMention.js +118 -0
  7. package/dist/cjs/components/Mention/index.js +19 -16
  8. package/dist/cjs/components/MentionDescriptionByline/TeamMentionDescriptionByline.js +5 -5
  9. package/dist/cjs/components/MentionDescriptionByline/styles.js +4 -2
  10. package/dist/cjs/components/MentionItem/index.js +14 -8
  11. package/dist/cjs/components/MentionItem/styles.js +12 -10
  12. package/dist/cjs/components/MentionList/index.js +4 -2
  13. package/dist/cjs/components/MentionList/styles.js +5 -3
  14. package/dist/cjs/components/MentionListError/styles.js +7 -5
  15. package/dist/cjs/components/MentionPicker/index.js +12 -4
  16. package/dist/cjs/components/MentionPicker/styles.js +5 -3
  17. package/dist/cjs/components/MessagesIntlProvider/index.js +57 -0
  18. package/dist/cjs/components/NoAccessTooltip/index.js +29 -0
  19. package/dist/cjs/components/{NoAccessTooltip.js → NoAccessTooltip/main.js} +4 -2
  20. package/dist/cjs/components/ResourcedMentionList/index.js +14 -6
  21. package/dist/cjs/components/Scrollable/index.js +1 -1
  22. package/dist/cjs/components/Scrollable/styles.js +4 -2
  23. package/dist/cjs/components/TeamMentionHighlight/index.js +6 -4
  24. package/dist/cjs/components/TeamMentionHighlight/lazy.js +28 -0
  25. package/dist/cjs/components/TeamMentionHighlight/styles.js +11 -9
  26. package/dist/cjs/components/i18n.js +2 -2
  27. package/dist/cjs/i18n/cs.js +2 -2
  28. package/dist/cjs/i18n/da.js +2 -2
  29. package/dist/cjs/i18n/de.js +2 -2
  30. package/dist/cjs/i18n/en_ZZ.js +32 -0
  31. package/dist/cjs/i18n/es.js +2 -2
  32. package/dist/cjs/i18n/et.js +2 -2
  33. package/dist/cjs/i18n/fi.js +2 -2
  34. package/dist/cjs/i18n/fr.js +2 -2
  35. package/dist/cjs/i18n/hu.js +2 -2
  36. package/dist/cjs/i18n/it.js +2 -2
  37. package/dist/cjs/i18n/ja.js +2 -2
  38. package/dist/cjs/i18n/ko.js +2 -2
  39. package/dist/cjs/i18n/nb.js +2 -2
  40. package/dist/cjs/i18n/nl.js +2 -2
  41. package/dist/cjs/i18n/pl.js +2 -2
  42. package/dist/cjs/i18n/pt_BR.js +2 -2
  43. package/dist/cjs/i18n/pt_PT.js +2 -2
  44. package/dist/cjs/i18n/ru.js +2 -2
  45. package/dist/cjs/i18n/sk.js +2 -2
  46. package/dist/cjs/i18n/sv.js +2 -2
  47. package/dist/cjs/i18n/th.js +2 -2
  48. package/dist/cjs/i18n/tr.js +2 -2
  49. package/dist/cjs/i18n/uk.js +2 -2
  50. package/dist/cjs/i18n/vi.js +2 -2
  51. package/dist/cjs/i18n/zh.js +2 -2
  52. package/dist/cjs/i18n/zh_TW.js +2 -2
  53. package/dist/cjs/index.js +12 -8
  54. package/dist/cjs/shared-styles.js +4 -2
  55. package/dist/cjs/util/analytics.js +2 -2
  56. package/dist/cjs/util/i18n.js +297 -26
  57. package/dist/cjs/version.json +1 -1
  58. package/dist/es2019/api/analytics.js +0 -9
  59. package/dist/es2019/components/LockCircleIcon/index.js +7 -0
  60. package/dist/es2019/components/Mention/PrimitiveMention.js +117 -0
  61. package/dist/es2019/components/Mention/index.js +16 -13
  62. package/dist/es2019/components/MentionDescriptionByline/TeamMentionDescriptionByline.js +1 -1
  63. package/dist/es2019/components/MentionDescriptionByline/styles.js +3 -4
  64. package/dist/es2019/components/MentionItem/index.js +11 -7
  65. package/dist/es2019/components/MentionItem/styles.js +6 -7
  66. package/dist/es2019/components/MentionList/index.js +3 -2
  67. package/dist/es2019/components/MentionList/styles.js +3 -4
  68. package/dist/es2019/components/MentionListError/GenericErrorIllustration.js +1 -0
  69. package/dist/es2019/components/MentionListError/styles.js +5 -6
  70. package/dist/es2019/components/MentionPicker/index.js +11 -4
  71. package/dist/es2019/components/MentionPicker/styles.js +4 -5
  72. package/dist/es2019/components/MessagesIntlProvider/index.js +38 -0
  73. package/dist/es2019/components/NoAccessTooltip/index.js +9 -0
  74. package/dist/es2019/components/{NoAccessTooltip.js → NoAccessTooltip/main.js} +4 -2
  75. package/dist/es2019/components/ResourcedMentionList/index.js +6 -4
  76. package/dist/es2019/components/Scrollable/index.js +1 -1
  77. package/dist/es2019/components/Scrollable/styles.js +3 -4
  78. package/dist/es2019/components/TeamMentionHighlight/index.js +4 -3
  79. package/dist/es2019/components/TeamMentionHighlight/lazy.js +6 -0
  80. package/dist/es2019/components/TeamMentionHighlight/styles.js +3 -2
  81. package/dist/es2019/components/i18n.js +1 -1
  82. package/dist/es2019/i18n/cs.js +2 -2
  83. package/dist/es2019/i18n/da.js +2 -2
  84. package/dist/es2019/i18n/de.js +2 -2
  85. package/dist/es2019/i18n/en_ZZ.js +24 -0
  86. package/dist/es2019/i18n/es.js +2 -2
  87. package/dist/es2019/i18n/et.js +2 -2
  88. package/dist/es2019/i18n/fi.js +2 -2
  89. package/dist/es2019/i18n/fr.js +2 -2
  90. package/dist/es2019/i18n/hu.js +2 -2
  91. package/dist/es2019/i18n/it.js +2 -2
  92. package/dist/es2019/i18n/ja.js +2 -2
  93. package/dist/es2019/i18n/ko.js +2 -2
  94. package/dist/es2019/i18n/nb.js +2 -2
  95. package/dist/es2019/i18n/nl.js +2 -2
  96. package/dist/es2019/i18n/pl.js +2 -2
  97. package/dist/es2019/i18n/pt_BR.js +2 -2
  98. package/dist/es2019/i18n/pt_PT.js +2 -2
  99. package/dist/es2019/i18n/ru.js +2 -2
  100. package/dist/es2019/i18n/sk.js +2 -2
  101. package/dist/es2019/i18n/sv.js +2 -2
  102. package/dist/es2019/i18n/th.js +2 -2
  103. package/dist/es2019/i18n/tr.js +2 -2
  104. package/dist/es2019/i18n/uk.js +2 -2
  105. package/dist/es2019/i18n/vi.js +2 -2
  106. package/dist/es2019/i18n/zh.js +2 -2
  107. package/dist/es2019/i18n/zh_TW.js +2 -2
  108. package/dist/es2019/index.js +3 -4
  109. package/dist/es2019/shared-styles.js +3 -2
  110. package/dist/es2019/util/i18n.js +260 -18
  111. package/dist/es2019/version.json +1 -1
  112. package/dist/esm/api/MentionResource.js +4 -4
  113. package/dist/esm/api/TeamMentionResource.js +2 -2
  114. package/dist/esm/api/analytics.js +0 -10
  115. package/dist/esm/components/LockCircleIcon/index.js +11 -0
  116. package/dist/esm/components/Mention/PrimitiveMention.js +100 -0
  117. package/dist/esm/components/Mention/index.js +17 -14
  118. package/dist/esm/components/MentionDescriptionByline/TeamMentionDescriptionByline.js +1 -1
  119. package/dist/esm/components/MentionDescriptionByline/styles.js +3 -4
  120. package/dist/esm/components/MentionItem/index.js +11 -7
  121. package/dist/esm/components/MentionItem/styles.js +6 -7
  122. package/dist/esm/components/MentionList/index.js +3 -2
  123. package/dist/esm/components/MentionList/styles.js +4 -5
  124. package/dist/esm/components/MentionListError/GenericErrorIllustration.js +1 -0
  125. package/dist/esm/components/MentionListError/styles.js +3 -4
  126. package/dist/esm/components/MentionPicker/index.js +11 -4
  127. package/dist/esm/components/MentionPicker/styles.js +3 -4
  128. package/dist/esm/components/MessagesIntlProvider/index.js +41 -0
  129. package/dist/esm/components/NoAccessTooltip/index.js +11 -0
  130. package/dist/esm/components/{NoAccessTooltip.js → NoAccessTooltip/main.js} +4 -2
  131. package/dist/esm/components/ResourcedMentionList/index.js +8 -6
  132. package/dist/esm/components/Scrollable/index.js +1 -1
  133. package/dist/esm/components/Scrollable/styles.js +3 -4
  134. package/dist/esm/components/TeamMentionHighlight/index.js +4 -3
  135. package/dist/esm/components/TeamMentionHighlight/lazy.js +10 -0
  136. package/dist/esm/components/TeamMentionHighlight/styles.js +3 -2
  137. package/dist/esm/components/i18n.js +1 -1
  138. package/dist/esm/i18n/cs.js +2 -2
  139. package/dist/esm/i18n/da.js +2 -2
  140. package/dist/esm/i18n/de.js +2 -2
  141. package/dist/esm/i18n/en_ZZ.js +24 -0
  142. package/dist/esm/i18n/es.js +2 -2
  143. package/dist/esm/i18n/et.js +2 -2
  144. package/dist/esm/i18n/fi.js +2 -2
  145. package/dist/esm/i18n/fr.js +2 -2
  146. package/dist/esm/i18n/hu.js +2 -2
  147. package/dist/esm/i18n/it.js +2 -2
  148. package/dist/esm/i18n/ja.js +2 -2
  149. package/dist/esm/i18n/ko.js +2 -2
  150. package/dist/esm/i18n/nb.js +2 -2
  151. package/dist/esm/i18n/nl.js +2 -2
  152. package/dist/esm/i18n/pl.js +2 -2
  153. package/dist/esm/i18n/pt_BR.js +2 -2
  154. package/dist/esm/i18n/pt_PT.js +2 -2
  155. package/dist/esm/i18n/ru.js +2 -2
  156. package/dist/esm/i18n/sk.js +2 -2
  157. package/dist/esm/i18n/sv.js +2 -2
  158. package/dist/esm/i18n/th.js +2 -2
  159. package/dist/esm/i18n/tr.js +2 -2
  160. package/dist/esm/i18n/uk.js +2 -2
  161. package/dist/esm/i18n/vi.js +2 -2
  162. package/dist/esm/i18n/zh.js +2 -2
  163. package/dist/esm/i18n/zh_TW.js +2 -2
  164. package/dist/esm/index.js +3 -4
  165. package/dist/esm/shared-styles.js +3 -2
  166. package/dist/esm/util/analytics.js +2 -2
  167. package/dist/esm/util/i18n.js +284 -23
  168. package/dist/esm/version.json +1 -1
  169. package/dist/types/api/analytics.d.ts +0 -5
  170. package/dist/types/components/LockCircleIcon/index.d.ts +3 -0
  171. package/dist/types/components/Mention/PrimitiveMention.d.ts +7 -0
  172. package/dist/types/components/Mention/index.d.ts +1 -1
  173. package/dist/types/components/MentionDescriptionByline/styles.d.ts +2 -2
  174. package/dist/types/components/MentionItem/MentionHighlightHelpers.d.ts +2 -3
  175. package/dist/types/components/MentionItem/styles.d.ts +9 -9
  176. package/dist/types/components/MentionList/styles.d.ts +2 -2
  177. package/dist/types/components/MentionListError/styles.d.ts +5 -5
  178. package/dist/types/components/MentionPicker/index.d.ts +11 -8
  179. package/dist/types/components/MentionPicker/styles.d.ts +3 -3
  180. package/dist/types/components/MessagesIntlProvider/index.d.ts +3 -0
  181. package/dist/types/components/NoAccessTooltip/index.d.ts +6 -0
  182. package/dist/types/components/{NoAccessTooltip.d.ts → NoAccessTooltip/main.d.ts} +0 -0
  183. package/dist/types/components/Scrollable/styles.d.ts +2 -4
  184. package/dist/types/components/TeamMentionHighlight/index.d.ts +1 -1
  185. package/dist/types/components/TeamMentionHighlight/lazy.d.ts +4 -0
  186. package/dist/types/components/TeamMentionHighlight/styles.d.ts +8 -8
  187. package/dist/types/i18n/cs.d.ts +1 -1
  188. package/dist/types/i18n/da.d.ts +1 -1
  189. package/dist/types/i18n/de.d.ts +1 -1
  190. package/dist/types/i18n/en_ZZ.d.ts +24 -0
  191. package/dist/types/i18n/es.d.ts +1 -1
  192. package/dist/types/i18n/et.d.ts +1 -1
  193. package/dist/types/i18n/fi.d.ts +1 -1
  194. package/dist/types/i18n/fr.d.ts +1 -1
  195. package/dist/types/i18n/hu.d.ts +1 -1
  196. package/dist/types/i18n/it.d.ts +1 -1
  197. package/dist/types/i18n/ja.d.ts +1 -1
  198. package/dist/types/i18n/ko.d.ts +1 -1
  199. package/dist/types/i18n/nb.d.ts +1 -1
  200. package/dist/types/i18n/nl.d.ts +1 -1
  201. package/dist/types/i18n/pl.d.ts +1 -1
  202. package/dist/types/i18n/pt_BR.d.ts +1 -1
  203. package/dist/types/i18n/pt_PT.d.ts +1 -1
  204. package/dist/types/i18n/ru.d.ts +1 -1
  205. package/dist/types/i18n/sk.d.ts +1 -1
  206. package/dist/types/i18n/sv.d.ts +1 -1
  207. package/dist/types/i18n/th.d.ts +1 -1
  208. package/dist/types/i18n/tr.d.ts +1 -1
  209. package/dist/types/i18n/uk.d.ts +1 -1
  210. package/dist/types/i18n/vi.d.ts +1 -1
  211. package/dist/types/i18n/zh.d.ts +1 -1
  212. package/dist/types/i18n/zh_TW.d.ts +1 -1
  213. package/dist/types/index.d.ts +3 -4
  214. package/dist/types/shared-styles.d.ts +2 -2
  215. package/dist/types/util/i18n.d.ts +32 -17
  216. package/docs/1-in-editor.tsx +4 -36
  217. package/package.json +25 -14
  218. package/tsconfig.json +1 -2
  219. package/dist/cjs/api/SmartMentionResource.js +0 -338
  220. package/dist/cjs/api/SmartMentionTypes.js +0 -15
  221. package/dist/cjs/api/extract-react-types/smart-config-props.js +0 -15
  222. package/dist/cjs/api/recommendationClient.js +0 -57
  223. package/dist/cjs/components/Mention/styles.js +0 -66
  224. package/dist/cjs/default-mention-name-resolver/default-mention-name-resolver.js +0 -136
  225. package/dist/cjs/default-mention-name-resolver/graphqlUtils.js +0 -48
  226. package/dist/es2019/api/SmartMentionResource.js +0 -219
  227. package/dist/es2019/api/SmartMentionTypes.js +0 -7
  228. package/dist/es2019/api/extract-react-types/smart-config-props.js +0 -8
  229. package/dist/es2019/api/recommendationClient.js +0 -46
  230. package/dist/es2019/components/Mention/styles.js +0 -61
  231. package/dist/es2019/default-mention-name-resolver/default-mention-name-resolver.js +0 -64
  232. package/dist/es2019/default-mention-name-resolver/graphqlUtils.js +0 -39
  233. package/dist/esm/api/SmartMentionResource.js +0 -317
  234. package/dist/esm/api/SmartMentionTypes.js +0 -7
  235. package/dist/esm/api/extract-react-types/smart-config-props.js +0 -8
  236. package/dist/esm/api/recommendationClient.js +0 -48
  237. package/dist/esm/components/Mention/styles.js +0 -50
  238. package/dist/esm/default-mention-name-resolver/default-mention-name-resolver.js +0 -121
  239. package/dist/esm/default-mention-name-resolver/graphqlUtils.js +0 -41
  240. package/dist/types/api/SmartMentionResource.d.ts +0 -63
  241. package/dist/types/api/SmartMentionTypes.d.ts +0 -81
  242. package/dist/types/api/extract-react-types/smart-config-props.d.ts +0 -7
  243. package/dist/types/api/recommendationClient.d.ts +0 -3
  244. package/dist/types/components/Mention/styles.d.ts +0 -6
  245. package/dist/types/default-mention-name-resolver/default-mention-name-resolver.d.ts +0 -16
  246. package/dist/types/default-mention-name-resolver/graphqlUtils.d.ts +0 -14
@@ -1,64 +0,0 @@
1
- import { MentionNameStatus } from '../types';
2
- import { graphqlQuery } from './graphqlUtils';
3
- import { config } from '../config';
4
-
5
- const buildUsersQuery = accountIds => ({
6
- query: `query usersQuery($accountIds: [ID!]!) {
7
- users(accountIds: $accountIds) {
8
- name
9
- accountId
10
- }
11
- }`,
12
- variables: {
13
- accountIds
14
- }
15
- });
16
-
17
- const makeRequest = async (url, accountIds) => {
18
- const query = buildUsersQuery(accountIds);
19
- return graphqlQuery(url, query);
20
- };
21
-
22
- export class DefaultMentionNameResolver {
23
- constructor(baseUrl) {
24
- this.baseUrl = baseUrl;
25
- this.cache = new Map();
26
- }
27
-
28
- async lookupName(id) {
29
- try {
30
- var _data$users;
31
-
32
- if (this.cache.has(id)) {
33
- return {
34
- id,
35
- name: this.cache.get(id),
36
- status: MentionNameStatus.OK
37
- };
38
- }
39
-
40
- const url = config.getGraphQLUrl(this.baseUrl);
41
- const data = await makeRequest(url, [id]);
42
- const userInfo = (_data$users = data.users) === null || _data$users === void 0 ? void 0 : _data$users.find(user => user.accountId === id);
43
- return userInfo ? {
44
- id,
45
- name: userInfo.name,
46
- status: MentionNameStatus.OK
47
- } : {
48
- id,
49
- status: MentionNameStatus.UNKNOWN
50
- };
51
- } catch (error) {
52
- // on network error, return original list with label 'Unknown'
53
- return {
54
- id,
55
- status: MentionNameStatus.UNKNOWN
56
- };
57
- }
58
- }
59
-
60
- cacheName(id, name) {
61
- this.cache.set(id, name);
62
- }
63
-
64
- }
@@ -1,39 +0,0 @@
1
- const buildHeaders = () => {
2
- const headers = new Headers();
3
- headers.append('Content-Type', 'application/json');
4
- return headers;
5
- };
6
-
7
- /**
8
- * @param {string} serviceUrl - GraphQL service endpoint
9
- * @param {Query} query - GraphQL query
10
- */
11
- export function graphqlQuery(serviceUrl, query) {
12
- const headers = buildHeaders();
13
- return fetch(new Request(`${serviceUrl}`, {
14
- method: 'POST',
15
- credentials: 'include',
16
- mode: 'cors',
17
- headers,
18
- body: JSON.stringify(query)
19
- })).then(response => {
20
- if (!response.ok) {
21
- return Promise.reject({
22
- code: response.status,
23
- reason: response.statusText
24
- });
25
- }
26
-
27
- return response;
28
- }).then(response => response.json()).then(json => {
29
- if (json.errors) {
30
- var _json$errors$;
31
-
32
- return Promise.reject({
33
- reason: ((_json$errors$ = json.errors[0]) === null || _json$errors$ === void 0 ? void 0 : _json$errors$.category) || 'default'
34
- });
35
- }
36
-
37
- return json.data;
38
- });
39
- }
@@ -1,317 +0,0 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
- import _createClass from "@babel/runtime/helpers/createClass";
6
- import _inherits from "@babel/runtime/helpers/inherits";
7
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
-
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
-
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
-
14
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
15
-
16
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
17
-
18
- import { SMART_EVENT_TYPE, Actions, getUsersForAnalytics, defaultAttributes } from './analytics';
19
- import getUserRecommendations from './recommendationClient';
20
- import { EntityType } from './SmartMentionTypes';
21
- import { UserAccessLevel, UserType as MentionUserType } from '../types';
22
- import { AbstractMentionResource } from '../resource';
23
- import { DefaultMentionNameResolver } from '../default-mention-name-resolver/default-mention-name-resolver';
24
- var CONTEXT_TYPE = 'Mentions';
25
-
26
- var isSmartMentionConfigWithMentionNameResolver = function isSmartMentionConfigWithMentionNameResolver(smartMentionConfig) {
27
- return !!smartMentionConfig.mentionNameResolver;
28
- };
29
- /*
30
- * This is a provider implementation which calls URS to provide a list of recommended users/teams to mention.
31
- * The entryPoint hierarchy is : Editor -> editor-core -> plugins -> mentions -> typeAhead -> getItems -> pluginState.pluginProvider.filter
32
- * The results are then mapped to mentionItems which have a render prop mentionToTypeaheadItem -> MentionItem
33
- * https://bitbucket.org/atlassian/atlassian-frontend/src/0884032d85f11f43c13532cd21f13f696b0d28a7/packages/editor/editor-core/src/plugins/mentions/index.tsx#lines-219
34
- *
35
- */
36
-
37
-
38
- var SmartMentionResource = /*#__PURE__*/function (_AbstractMentionResou) {
39
- _inherits(SmartMentionResource, _AbstractMentionResou);
40
-
41
- var _super = _createSuper(SmartMentionResource);
42
-
43
- function SmartMentionResource(smartMentionConfig) {
44
- var _this;
45
-
46
- _classCallCheck(this, SmartMentionResource);
47
-
48
- _this = _super.call(this); // If the product doesn't provide a mention name resolve, use the default resolver so that
49
- // mention names can be looked up from PRS without configuration.
50
-
51
- _this.smartMentionConfig = isSmartMentionConfigWithMentionNameResolver(smartMentionConfig) ? smartMentionConfig : _objectSpread(_objectSpread({}, smartMentionConfig), {}, {
52
- mentionNameResolver: new DefaultMentionNameResolver(smartMentionConfig.baseUrl)
53
- });
54
- _this.lastReturnedSearch = 0;
55
- return _this;
56
- }
57
-
58
- _createClass(SmartMentionResource, [{
59
- key: "shouldHighlightMention",
60
- value: function shouldHighlightMention(mention) {
61
- if (this.smartMentionConfig.shouldHighlightMention) {
62
- return this.smartMentionConfig.shouldHighlightMention(mention);
63
- }
64
-
65
- return false;
66
- }
67
- }, {
68
- key: "notify",
69
- value: function notify(searchTime, mentionResult, query) {
70
- if (searchTime > this.lastReturnedSearch) {
71
- this.lastReturnedSearch = searchTime;
72
-
73
- this._notifyListeners(mentionResult, {
74
- duration: Date.now() - searchTime
75
- });
76
- }
77
-
78
- this._notifyAllResultsListeners(mentionResult);
79
- }
80
- }, {
81
- key: "notifyError",
82
- value: function notifyError(error, query) {
83
- this._notifyErrorListeners(error, query);
84
- }
85
- }, {
86
- key: "filter",
87
- value: function () {
88
- var _filter = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(query, contextIdentifier) {
89
- var searchTime, results;
90
- return _regeneratorRuntime.wrap(function _callee$(_context) {
91
- while (1) {
92
- switch (_context.prev = _context.next) {
93
- case 0:
94
- this.contextIdentifier = contextIdentifier;
95
- searchTime = Date.now();
96
- _context.prev = 2;
97
- _context.next = 5;
98
- return this.getRecommendedMentions(query ? query : '', contextIdentifier);
99
-
100
- case 5:
101
- results = _context.sent;
102
- this.notify(searchTime, results, query);
103
- _context.next = 12;
104
- break;
105
-
106
- case 9:
107
- _context.prev = 9;
108
- _context.t0 = _context["catch"](2);
109
- this.notifyError(_context.t0, query);
110
-
111
- case 12:
112
- case "end":
113
- return _context.stop();
114
- }
115
- }
116
- }, _callee, this, [[2, 9]]);
117
- }));
118
-
119
- function filter(_x, _x2) {
120
- return _filter.apply(this, arguments);
121
- }
122
-
123
- return filter;
124
- }()
125
- }, {
126
- key: "getRecommendedMentions",
127
- value: function () {
128
- var _getRecommendedMentions = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(query, contextIdentifier) {
129
- var startTime, conf, maxNumberOfResults, request, users, elapsedTimeMilli, usersForAnalytics, mentions, _elapsedTimeMilli;
130
-
131
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
132
- while (1) {
133
- switch (_context2.prev = _context2.next) {
134
- case 0:
135
- startTime = window.performance.now();
136
- conf = this.smartMentionConfig;
137
- maxNumberOfResults = conf.maxNumberOfResults || 100;
138
- request = {
139
- baseUrl: conf.baseUrl,
140
- context: {
141
- productKey: conf.productKey,
142
- contextType: CONTEXT_TYPE,
143
- principalId: conf.principalId || 'context',
144
- containerId: contextIdentifier && contextIdentifier.containerId,
145
- siteId: conf.siteId,
146
- objectId: contextIdentifier && contextIdentifier.objectId || 'undefined',
147
- childObjectId: contextIdentifier && contextIdentifier.childObjectId || 'undefined',
148
- mentionsSessionId: contextIdentifier && contextIdentifier.sessionId || 'undefined',
149
- sessionId: contextIdentifier && contextIdentifier.sessionId || 'undefined'
150
- },
151
- includeGroups: conf.includeGroups,
152
- includeTeams: conf.includeTeams,
153
- includeUsers: typeof conf.includeUsers === 'undefined' ? true : conf.includeUsers,
154
- maxNumberOfResults: maxNumberOfResults,
155
- searchQueryFilter: conf.searchQueryFilter,
156
- query: query
157
- };
158
- _context2.prev = 4;
159
-
160
- this._notifyAnalyticsListeners(SMART_EVENT_TYPE, 'users', Actions.REQUESTED, defaultAttributes(contextIdentifier));
161
-
162
- _context2.next = 8;
163
- return getUserRecommendations(request);
164
-
165
- case 8:
166
- users = _context2.sent;
167
- elapsedTimeMilli = window.performance.now() - startTime;
168
- usersForAnalytics = getUsersForAnalytics(users);
169
-
170
- this._notifyAnalyticsListeners(SMART_EVENT_TYPE, 'usersRequest', Actions.SUCCESSFUL, _objectSpread({
171
- elapsedTimeMilli: elapsedTimeMilli,
172
- users: usersForAnalytics,
173
- displayedUsers: usersForAnalytics
174
- }, defaultAttributes(contextIdentifier)));
175
-
176
- mentions = this.transformUsersToMentions(users);
177
- return _context2.abrupt("return", {
178
- mentions: mentions,
179
- query: query
180
- });
181
-
182
- case 16:
183
- _context2.prev = 16;
184
- _context2.t0 = _context2["catch"](4);
185
- _elapsedTimeMilli = window.performance.now() - startTime;
186
-
187
- this._notifyAnalyticsListeners(SMART_EVENT_TYPE, 'usersRequest', Actions.FAILED, _objectSpread({
188
- elapsedTimeMilli: _elapsedTimeMilli
189
- }, defaultAttributes(contextIdentifier)));
190
-
191
- throw new Error(_context2.t0);
192
-
193
- case 21:
194
- case "end":
195
- return _context2.stop();
196
- }
197
- }
198
- }, _callee2, this, [[4, 16]]);
199
- }));
200
-
201
- function getRecommendedMentions(_x3, _x4) {
202
- return _getRecommendedMentions.apply(this, arguments);
203
- }
204
-
205
- return getRecommendedMentions;
206
- }()
207
- }, {
208
- key: "transformTeamMember",
209
- value: function transformTeamMember(member) {
210
- return {
211
- id: member.id,
212
- name: member.name
213
- };
214
- }
215
- }, {
216
- key: "transformUserToMention",
217
- value: function transformUserToMention(item) {
218
- var type = item.entityType;
219
- var defaultVals = {
220
- source: 'smarts'
221
- };
222
-
223
- if (type === EntityType.USER) {
224
- var user = item;
225
- return _objectSpread(_objectSpread({}, defaultVals), {}, {
226
- id: user.id,
227
- accessLevel: user.accessLevel,
228
- avatarUrl: user.avatarUrl,
229
- mentionName: user.nickname || '',
230
- name: user.name,
231
- userType: user.userType
232
- });
233
- }
234
-
235
- if (type === EntityType.TEAM) {
236
- var team = item;
237
- var teamLink = '';
238
- var defaultTeamLink = "".concat(window.location.origin, "/people/team/").concat(team.id);
239
-
240
- if (typeof this.smartMentionConfig.teamLinkResolver === 'function') {
241
- teamLink = this.smartMentionConfig.teamLinkResolver(item.id);
242
- }
243
-
244
- return _objectSpread(_objectSpread({}, defaultVals), {}, {
245
- id: team.id,
246
- name: team.displayName || '',
247
- mentionName: team.displayName,
248
- avatarUrl: team.smallAvatarImageUrl,
249
- accessLevel: UserAccessLevel[UserAccessLevel.CONTAINER],
250
- userType: MentionUserType[MentionUserType.TEAM],
251
- lozenge: MentionUserType[MentionUserType.TEAM],
252
- context: {
253
- members: team.members ? team.members.map(this.transformTeamMember) : [],
254
- includesYou: team.includesYou || false,
255
- memberCount: team.memberCount || 0,
256
- teamLink: teamLink || defaultTeamLink //OOH HERE Do we pass in resolver or add in provider?
257
-
258
- },
259
- source: 'smarts'
260
- });
261
- }
262
-
263
- if (type === EntityType.GROUP) {
264
- var group = item;
265
- return _objectSpread(_objectSpread({}, defaultVals), {}, {
266
- id: group.id,
267
- userType: type.toLowerCase(),
268
- name: group.name || '',
269
- lozenge: type.toLowerCase()
270
- });
271
- }
272
-
273
- return {
274
- id: item.id,
275
- userType: EntityType.USER.toLowerCase(),
276
- avatarUrl: item.avatarUrl,
277
- name: item.name,
278
- lozenge: EntityType.USER.toLowerCase()
279
- };
280
- }
281
- }, {
282
- key: "transformUsersToMentions",
283
- value: function transformUsersToMentions(recommendationItems) {
284
- return (recommendationItems || []).map(this.transformUserToMention, this).filter(function (user) {
285
- return !!user;
286
- }).map(function (user) {
287
- return user;
288
- });
289
- }
290
- }, {
291
- key: "cacheMentionName",
292
- value: function cacheMentionName(id, mentionName) {
293
- this.smartMentionConfig.mentionNameResolver.cacheName(id, mentionName);
294
- }
295
- }, {
296
- key: "resolveMentionName",
297
- value: function resolveMentionName(id) {
298
- return this.smartMentionConfig.mentionNameResolver.lookupName(id);
299
- }
300
- }, {
301
- key: "supportsMentionNameResolving",
302
- value: function supportsMentionNameResolving() {
303
- return true;
304
- }
305
- }, {
306
- key: "recordMentionSelection",
307
- value: function recordMentionSelection(_mention) {
308
- this._notifyAnalyticsListeners(SMART_EVENT_TYPE, 'usersRequest', Actions.SELECTED, _objectSpread({
309
- selectedOption: _mention.id
310
- }, defaultAttributes(this.contextIdentifier)));
311
- }
312
- }]);
313
-
314
- return SmartMentionResource;
315
- }(AbstractMentionResource);
316
-
317
- export default SmartMentionResource;
@@ -1,7 +0,0 @@
1
- export var EntityType; //Previously ServerItem in smart-user-picker
2
-
3
- (function (EntityType) {
4
- EntityType["USER"] = "USER";
5
- EntityType["TEAM"] = "TEAM";
6
- EntityType["GROUP"] = "GROUP";
7
- })(EntityType || (EntityType = {}));
@@ -1,8 +0,0 @@
1
- /**
2
- * This exists purely for the props documentation in docs/1-in-editor.tsx
3
- * @param props
4
- * @constructor
5
- */
6
- export default function Props(props) {
7
- return null;
8
- }
@@ -1,48 +0,0 @@
1
- import { config } from '../config';
2
-
3
- var getUserRecommendations = function getUserRecommendations(request) {
4
- var url = config.getRecommendationServiceUrl(request.baseUrl);
5
- return fetch(url, {
6
- method: 'POST',
7
- credentials: 'include',
8
- headers: {
9
- 'content-type': 'application/json'
10
- },
11
- body: JSON.stringify({
12
- context: request.context,
13
- includeUsers: request.includeUsers,
14
- includeGroups: request.includeGroups,
15
- includeTeams: request.includeTeams,
16
- maxNumberOfResults: request.maxNumberOfResults,
17
- performSearchQueryOnly: false,
18
- searchQuery: {
19
- cpusQueryHighlights: {
20
- query: '',
21
- field: ''
22
- },
23
- customQuery: '',
24
- customerDirectoryId: '',
25
- filter: request.searchQueryFilter || '',
26
- minimumAccessLevel: 'APPLICATION',
27
- queryString: request.query,
28
- restrictTo: {
29
- userIds: [],
30
- groupIds: []
31
- },
32
- searchUserbase: false
33
- }
34
- })
35
- }).then(function (response) {
36
- if (response.status === 200) {
37
- return response.json();
38
- }
39
-
40
- return Promise.reject({
41
- message: "error calling smart service, statusCode=".concat(response.status, ", statusText=").concat(response.statusText)
42
- });
43
- }).then(function (response) {
44
- return response.recommendedUsers;
45
- });
46
- };
47
-
48
- export default getUserRecommendations;
@@ -1,50 +0,0 @@
1
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
-
4
- var _mentionStyle, _templateObject;
5
-
6
- import { themed } from '@atlaskit/theme/components';
7
- import { B200, B400, DN100, DN30, DN80, DN800, N20, N30A, N500 } from '@atlaskit/theme/colors';
8
- import styled from 'styled-components';
9
- import { MentionType } from '../../types';
10
- var mentionStyle = (_mentionStyle = {}, _defineProperty(_mentionStyle, MentionType.SELF, {
11
- background: themed({
12
- light: B400,
13
- dark: B200
14
- }),
15
- border: 'transparent',
16
- text: themed({
17
- light: N20,
18
- dark: DN30
19
- })
20
- }), _defineProperty(_mentionStyle, MentionType.RESTRICTED, {
21
- background: 'transparent',
22
- border: themed({
23
- light: N500,
24
- dark: DN80
25
- }),
26
- text: themed({
27
- light: N500,
28
- dark: DN100
29
- })
30
- }), _defineProperty(_mentionStyle, MentionType.DEFAULT, {
31
- background: themed({
32
- light: N30A,
33
- dark: DN80
34
- }),
35
- border: 'transparent',
36
- text: themed({
37
- light: N500,
38
- dark: DN800
39
- })
40
- }), _mentionStyle);
41
-
42
- var getStyle = function getStyle(props, property) {
43
- var obj = mentionStyle[props.mentionType][property]; // themed() returns a function
44
-
45
- return typeof obj === 'string' ? obj : obj(props);
46
- };
47
-
48
- export var MentionStyle = styled.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", ";\n"])), function (props) {
49
- return "\n display: inline;\n background: ".concat(getStyle(props, 'background'), ";\n border: 1px solid ").concat(getStyle(props, 'border'), ";\n border-radius: 20px;\n color: ").concat(getStyle(props, 'text'), ";\n cursor: pointer;\n padding: 0 0.3em 2px 0.23em;\n line-height: 1.714;\n font-size: 1em;\n font-weight: normal;\n word-break: break-word;\n");
50
- });
@@ -1,121 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
5
- import { MentionNameStatus } from '../types';
6
- import { graphqlQuery } from './graphqlUtils';
7
- import { config } from '../config';
8
-
9
- var buildUsersQuery = function buildUsersQuery(accountIds) {
10
- return {
11
- query: "query usersQuery($accountIds: [ID!]!) {\n users(accountIds: $accountIds) {\n name\n accountId\n }\n }",
12
- variables: {
13
- accountIds: accountIds
14
- }
15
- };
16
- };
17
-
18
- var makeRequest = /*#__PURE__*/function () {
19
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url, accountIds) {
20
- var query;
21
- return _regeneratorRuntime.wrap(function _callee$(_context) {
22
- while (1) {
23
- switch (_context.prev = _context.next) {
24
- case 0:
25
- query = buildUsersQuery(accountIds);
26
- return _context.abrupt("return", graphqlQuery(url, query));
27
-
28
- case 2:
29
- case "end":
30
- return _context.stop();
31
- }
32
- }
33
- }, _callee);
34
- }));
35
-
36
- return function makeRequest(_x, _x2) {
37
- return _ref.apply(this, arguments);
38
- };
39
- }();
40
-
41
- export var DefaultMentionNameResolver = /*#__PURE__*/function () {
42
- function DefaultMentionNameResolver(baseUrl) {
43
- _classCallCheck(this, DefaultMentionNameResolver);
44
-
45
- this.baseUrl = baseUrl;
46
- this.cache = new Map();
47
- }
48
-
49
- _createClass(DefaultMentionNameResolver, [{
50
- key: "lookupName",
51
- value: function () {
52
- var _lookupName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(id) {
53
- var _data$users, url, data, userInfo;
54
-
55
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
56
- while (1) {
57
- switch (_context2.prev = _context2.next) {
58
- case 0:
59
- _context2.prev = 0;
60
-
61
- if (!this.cache.has(id)) {
62
- _context2.next = 3;
63
- break;
64
- }
65
-
66
- return _context2.abrupt("return", {
67
- id: id,
68
- name: this.cache.get(id),
69
- status: MentionNameStatus.OK
70
- });
71
-
72
- case 3:
73
- url = config.getGraphQLUrl(this.baseUrl);
74
- _context2.next = 6;
75
- return makeRequest(url, [id]);
76
-
77
- case 6:
78
- data = _context2.sent;
79
- userInfo = (_data$users = data.users) === null || _data$users === void 0 ? void 0 : _data$users.find(function (user) {
80
- return user.accountId === id;
81
- });
82
- return _context2.abrupt("return", userInfo ? {
83
- id: id,
84
- name: userInfo.name,
85
- status: MentionNameStatus.OK
86
- } : {
87
- id: id,
88
- status: MentionNameStatus.UNKNOWN
89
- });
90
-
91
- case 11:
92
- _context2.prev = 11;
93
- _context2.t0 = _context2["catch"](0);
94
- return _context2.abrupt("return", {
95
- id: id,
96
- status: MentionNameStatus.UNKNOWN
97
- });
98
-
99
- case 14:
100
- case "end":
101
- return _context2.stop();
102
- }
103
- }
104
- }, _callee2, this, [[0, 11]]);
105
- }));
106
-
107
- function lookupName(_x3) {
108
- return _lookupName.apply(this, arguments);
109
- }
110
-
111
- return lookupName;
112
- }()
113
- }, {
114
- key: "cacheName",
115
- value: function cacheName(id, name) {
116
- this.cache.set(id, name);
117
- }
118
- }]);
119
-
120
- return DefaultMentionNameResolver;
121
- }();