@atlaskit/smart-user-picker 4.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 (209) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/LICENSE +13 -0
  3. package/build/tsconfig.json +16 -0
  4. package/dist/cjs/analytics.js +131 -0
  5. package/dist/cjs/components/MessagesIntlProvider.js +72 -0
  6. package/dist/cjs/components/SmartUserPicker.js +473 -0
  7. package/dist/cjs/components/index.js +24 -0
  8. package/dist/cjs/config/index.js +50 -0
  9. package/dist/cjs/i18n/cs.js +26 -0
  10. package/dist/cjs/i18n/da.js +26 -0
  11. package/dist/cjs/i18n/de.js +26 -0
  12. package/dist/cjs/i18n/en.js +14 -0
  13. package/dist/cjs/i18n/en_GB.js +14 -0
  14. package/dist/cjs/i18n/en_ZZ.js +26 -0
  15. package/dist/cjs/i18n/es.js +26 -0
  16. package/dist/cjs/i18n/et.js +16 -0
  17. package/dist/cjs/i18n/fi.js +26 -0
  18. package/dist/cjs/i18n/fr.js +26 -0
  19. package/dist/cjs/i18n/hu.js +26 -0
  20. package/dist/cjs/i18n/index.js +247 -0
  21. package/dist/cjs/i18n/is.js +14 -0
  22. package/dist/cjs/i18n/it.js +26 -0
  23. package/dist/cjs/i18n/ja.js +26 -0
  24. package/dist/cjs/i18n/ko.js +26 -0
  25. package/dist/cjs/i18n/languages.js +33 -0
  26. package/dist/cjs/i18n/nb.js +26 -0
  27. package/dist/cjs/i18n/nl.js +26 -0
  28. package/dist/cjs/i18n/pl.js +26 -0
  29. package/dist/cjs/i18n/pt_BR.js +26 -0
  30. package/dist/cjs/i18n/pt_PT.js +16 -0
  31. package/dist/cjs/i18n/ro.js +14 -0
  32. package/dist/cjs/i18n/ru.js +26 -0
  33. package/dist/cjs/i18n/sk.js +16 -0
  34. package/dist/cjs/i18n/sv.js +26 -0
  35. package/dist/cjs/i18n/th.js +26 -0
  36. package/dist/cjs/i18n/tr.js +26 -0
  37. package/dist/cjs/i18n/uk.js +26 -0
  38. package/dist/cjs/i18n/vi.js +26 -0
  39. package/dist/cjs/i18n/zh.js +26 -0
  40. package/dist/cjs/i18n/zh_TW.js +26 -0
  41. package/dist/cjs/i18n.js +57 -0
  42. package/dist/cjs/index.js +87 -0
  43. package/dist/cjs/service/constants.js +20 -0
  44. package/dist/cjs/service/default-value-hydration-client.js +278 -0
  45. package/dist/cjs/service/graphqlUtils.js +48 -0
  46. package/dist/cjs/service/index.js +23 -0
  47. package/dist/cjs/service/recommendation-client.js +71 -0
  48. package/dist/cjs/service/teams-client.js +56 -0
  49. package/dist/cjs/service/users-client.js +97 -0
  50. package/dist/cjs/service/users-transformer.js +94 -0
  51. package/dist/cjs/types.js +14 -0
  52. package/dist/cjs/ufoExperiences.js +39 -0
  53. package/dist/cjs/util/i18n-util.js +274 -0
  54. package/dist/cjs/version.json +5 -0
  55. package/dist/es2019/analytics.js +85 -0
  56. package/dist/es2019/components/MessagesIntlProvider.js +43 -0
  57. package/dist/es2019/components/SmartUserPicker.js +316 -0
  58. package/dist/es2019/components/index.js +11 -0
  59. package/dist/es2019/config/index.js +42 -0
  60. package/dist/es2019/i18n/cs.js +18 -0
  61. package/dist/es2019/i18n/da.js +18 -0
  62. package/dist/es2019/i18n/de.js +18 -0
  63. package/dist/es2019/i18n/en.js +7 -0
  64. package/dist/es2019/i18n/en_GB.js +7 -0
  65. package/dist/es2019/i18n/en_ZZ.js +18 -0
  66. package/dist/es2019/i18n/es.js +18 -0
  67. package/dist/es2019/i18n/et.js +8 -0
  68. package/dist/es2019/i18n/fi.js +18 -0
  69. package/dist/es2019/i18n/fr.js +18 -0
  70. package/dist/es2019/i18n/hu.js +18 -0
  71. package/dist/es2019/i18n/index.js +36 -0
  72. package/dist/es2019/i18n/is.js +7 -0
  73. package/dist/es2019/i18n/it.js +18 -0
  74. package/dist/es2019/i18n/ja.js +18 -0
  75. package/dist/es2019/i18n/ko.js +18 -0
  76. package/dist/es2019/i18n/languages.js +26 -0
  77. package/dist/es2019/i18n/nb.js +18 -0
  78. package/dist/es2019/i18n/nl.js +18 -0
  79. package/dist/es2019/i18n/pl.js +18 -0
  80. package/dist/es2019/i18n/pt_BR.js +18 -0
  81. package/dist/es2019/i18n/pt_PT.js +8 -0
  82. package/dist/es2019/i18n/ro.js +7 -0
  83. package/dist/es2019/i18n/ru.js +18 -0
  84. package/dist/es2019/i18n/sk.js +8 -0
  85. package/dist/es2019/i18n/sv.js +18 -0
  86. package/dist/es2019/i18n/th.js +18 -0
  87. package/dist/es2019/i18n/tr.js +18 -0
  88. package/dist/es2019/i18n/uk.js +18 -0
  89. package/dist/es2019/i18n/vi.js +18 -0
  90. package/dist/es2019/i18n/zh.js +18 -0
  91. package/dist/es2019/i18n/zh_TW.js +18 -0
  92. package/dist/es2019/i18n.js +48 -0
  93. package/dist/es2019/index.js +6 -0
  94. package/dist/es2019/service/constants.js +11 -0
  95. package/dist/es2019/service/default-value-hydration-client.js +125 -0
  96. package/dist/es2019/service/graphqlUtils.js +39 -0
  97. package/dist/es2019/service/index.js +2 -0
  98. package/dist/es2019/service/recommendation-client.js +52 -0
  99. package/dist/es2019/service/teams-client.js +37 -0
  100. package/dist/es2019/service/users-client.js +52 -0
  101. package/dist/es2019/service/users-transformer.js +73 -0
  102. package/dist/es2019/types.js +7 -0
  103. package/dist/es2019/ufoExperiences.js +26 -0
  104. package/dist/es2019/util/i18n-util.js +231 -0
  105. package/dist/es2019/version.json +5 -0
  106. package/dist/esm/analytics.js +99 -0
  107. package/dist/esm/components/MessagesIntlProvider.js +50 -0
  108. package/dist/esm/components/SmartUserPicker.js +454 -0
  109. package/dist/esm/components/index.js +11 -0
  110. package/dist/esm/config/index.js +39 -0
  111. package/dist/esm/i18n/cs.js +18 -0
  112. package/dist/esm/i18n/da.js +18 -0
  113. package/dist/esm/i18n/de.js +18 -0
  114. package/dist/esm/i18n/en.js +7 -0
  115. package/dist/esm/i18n/en_GB.js +7 -0
  116. package/dist/esm/i18n/en_ZZ.js +18 -0
  117. package/dist/esm/i18n/es.js +18 -0
  118. package/dist/esm/i18n/et.js +8 -0
  119. package/dist/esm/i18n/fi.js +18 -0
  120. package/dist/esm/i18n/fr.js +18 -0
  121. package/dist/esm/i18n/hu.js +18 -0
  122. package/dist/esm/i18n/index.js +36 -0
  123. package/dist/esm/i18n/is.js +7 -0
  124. package/dist/esm/i18n/it.js +18 -0
  125. package/dist/esm/i18n/ja.js +18 -0
  126. package/dist/esm/i18n/ko.js +18 -0
  127. package/dist/esm/i18n/languages.js +26 -0
  128. package/dist/esm/i18n/nb.js +18 -0
  129. package/dist/esm/i18n/nl.js +18 -0
  130. package/dist/esm/i18n/pl.js +18 -0
  131. package/dist/esm/i18n/pt_BR.js +18 -0
  132. package/dist/esm/i18n/pt_PT.js +8 -0
  133. package/dist/esm/i18n/ro.js +7 -0
  134. package/dist/esm/i18n/ru.js +18 -0
  135. package/dist/esm/i18n/sk.js +8 -0
  136. package/dist/esm/i18n/sv.js +18 -0
  137. package/dist/esm/i18n/th.js +18 -0
  138. package/dist/esm/i18n/tr.js +18 -0
  139. package/dist/esm/i18n/uk.js +18 -0
  140. package/dist/esm/i18n/vi.js +18 -0
  141. package/dist/esm/i18n/zh.js +18 -0
  142. package/dist/esm/i18n/zh_TW.js +18 -0
  143. package/dist/esm/i18n.js +48 -0
  144. package/dist/esm/index.js +6 -0
  145. package/dist/esm/service/constants.js +11 -0
  146. package/dist/esm/service/default-value-hydration-client.js +261 -0
  147. package/dist/esm/service/graphqlUtils.js +41 -0
  148. package/dist/esm/service/index.js +2 -0
  149. package/dist/esm/service/recommendation-client.js +60 -0
  150. package/dist/esm/service/teams-client.js +45 -0
  151. package/dist/esm/service/users-client.js +83 -0
  152. package/dist/esm/service/users-transformer.js +83 -0
  153. package/dist/esm/types.js +7 -0
  154. package/dist/esm/ufoExperiences.js +26 -0
  155. package/dist/esm/util/i18n-util.js +256 -0
  156. package/dist/esm/version.json +5 -0
  157. package/dist/types/analytics.d.ts +21 -0
  158. package/dist/types/components/MessagesIntlProvider.d.ts +9 -0
  159. package/dist/types/components/SmartUserPicker.d.ts +30 -0
  160. package/dist/types/components/index.d.ts +4 -0
  161. package/dist/types/config/index.d.ts +9 -0
  162. package/dist/types/i18n/cs.d.ts +18 -0
  163. package/dist/types/i18n/da.d.ts +18 -0
  164. package/dist/types/i18n/de.d.ts +18 -0
  165. package/dist/types/i18n/en.d.ts +7 -0
  166. package/dist/types/i18n/en_GB.d.ts +7 -0
  167. package/dist/types/i18n/en_ZZ.d.ts +18 -0
  168. package/dist/types/i18n/es.d.ts +18 -0
  169. package/dist/types/i18n/et.d.ts +8 -0
  170. package/dist/types/i18n/fi.d.ts +18 -0
  171. package/dist/types/i18n/fr.d.ts +18 -0
  172. package/dist/types/i18n/hu.d.ts +18 -0
  173. package/dist/types/i18n/index.d.ts +36 -0
  174. package/dist/types/i18n/is.d.ts +7 -0
  175. package/dist/types/i18n/it.d.ts +18 -0
  176. package/dist/types/i18n/ja.d.ts +18 -0
  177. package/dist/types/i18n/ko.d.ts +18 -0
  178. package/dist/types/i18n/languages.d.ts +27 -0
  179. package/dist/types/i18n/nb.d.ts +18 -0
  180. package/dist/types/i18n/nl.d.ts +18 -0
  181. package/dist/types/i18n/pl.d.ts +18 -0
  182. package/dist/types/i18n/pt_BR.d.ts +18 -0
  183. package/dist/types/i18n/pt_PT.d.ts +8 -0
  184. package/dist/types/i18n/ro.d.ts +7 -0
  185. package/dist/types/i18n/ru.d.ts +18 -0
  186. package/dist/types/i18n/sk.d.ts +8 -0
  187. package/dist/types/i18n/sv.d.ts +18 -0
  188. package/dist/types/i18n/th.d.ts +18 -0
  189. package/dist/types/i18n/tr.d.ts +18 -0
  190. package/dist/types/i18n/uk.d.ts +18 -0
  191. package/dist/types/i18n/vi.d.ts +18 -0
  192. package/dist/types/i18n/zh.d.ts +18 -0
  193. package/dist/types/i18n/zh_TW.d.ts +18 -0
  194. package/dist/types/i18n.d.ts +47 -0
  195. package/dist/types/index.d.ts +6 -0
  196. package/dist/types/service/constants.d.ts +4 -0
  197. package/dist/types/service/default-value-hydration-client.d.ts +8 -0
  198. package/dist/types/service/graphqlUtils.d.ts +14 -0
  199. package/dist/types/service/index.d.ts +2 -0
  200. package/dist/types/service/recommendation-client.d.ts +5 -0
  201. package/dist/types/service/teams-client.d.ts +12 -0
  202. package/dist/types/service/users-client.d.ts +11 -0
  203. package/dist/types/service/users-transformer.d.ts +22 -0
  204. package/dist/types/types.d.ts +208 -0
  205. package/dist/types/ufoExperiences.d.ts +3 -0
  206. package/dist/types/util/i18n-util.d.ts +11 -0
  207. package/docs/0-intro.tsx +52 -0
  208. package/package.json +56 -0
  209. package/tsconfig.json +16 -0
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.graphqlQuery = graphqlQuery;
7
+
8
+ var buildHeaders = function buildHeaders() {
9
+ var headers = new Headers();
10
+ headers.append('Content-Type', 'application/json');
11
+ return headers;
12
+ };
13
+
14
+ /**
15
+ * @param {string} serviceUrl - GraphQL service endpoint
16
+ * @param {Query} query - GraphQL query
17
+ */
18
+ function graphqlQuery(serviceUrl, query) {
19
+ var headers = buildHeaders();
20
+ return fetch(new Request("".concat(serviceUrl), {
21
+ method: 'POST',
22
+ credentials: 'include',
23
+ mode: 'cors',
24
+ headers: headers,
25
+ body: JSON.stringify(query)
26
+ })).then(function (response) {
27
+ if (!response.ok) {
28
+ return Promise.reject({
29
+ code: response.status,
30
+ reason: response.statusText
31
+ });
32
+ }
33
+
34
+ return response;
35
+ }).then(function (response) {
36
+ return response.json();
37
+ }).then(function (json) {
38
+ if (json.errors) {
39
+ var _json$errors$;
40
+
41
+ return Promise.reject({
42
+ reason: ((_json$errors$ = json.errors[0]) === null || _json$errors$ === void 0 ? void 0 : _json$errors$.category) || 'default'
43
+ });
44
+ }
45
+
46
+ return json.data;
47
+ });
48
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "getUserRecommendations", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _recommendationClient.default;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "hydrateDefaultValues", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _defaultValueHydrationClient.default;
18
+ }
19
+ });
20
+
21
+ var _recommendationClient = _interopRequireDefault(require("./recommendation-client"));
22
+
23
+ var _defaultValueHydrationClient = _interopRequireDefault(require("./default-value-hydration-client"));
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _usersTransformer = require("./users-transformer");
13
+
14
+ var _config = require("../config");
15
+
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
+
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
+
20
+ var getUserRecommendations = function getUserRecommendations(request, intl) {
21
+ var _request$context, _request$context$prod;
22
+
23
+ var url = (0, _config.getConfig)().getRecommendationServiceUrl(request.baseUrl || '');
24
+ return fetch(url, {
25
+ method: 'POST',
26
+ credentials: 'include',
27
+ headers: {
28
+ 'content-type': 'application/json'
29
+ },
30
+ body: JSON.stringify({
31
+ context: request.context,
32
+ includeUsers: request.includeUsers,
33
+ includeGroups: request.includeGroups,
34
+ includeTeams: request.includeTeams,
35
+ maxNumberOfResults: request.maxNumberOfResults,
36
+ performSearchQueryOnly: false,
37
+ searchQuery: _objectSpread(_objectSpread({
38
+ cpusQueryHighlights: {
39
+ query: '',
40
+ field: ''
41
+ }
42
+ }, ((_request$context = request.context) === null || _request$context === void 0 ? void 0 : (_request$context$prod = _request$context.productAttributes) === null || _request$context$prod === void 0 ? void 0 : _request$context$prod.isEntitledConfluenceExternalCollaborator) && {
43
+ productAccessPermissionIds: ['write', 'external-collaborator-write']
44
+ }), {}, {
45
+ customQuery: '',
46
+ customerDirectoryId: '',
47
+ filter: request.searchQueryFilter || '',
48
+ minimumAccessLevel: 'APPLICATION',
49
+ queryString: request.query,
50
+ restrictTo: {
51
+ userIds: [],
52
+ groupIds: []
53
+ },
54
+ searchUserbase: false
55
+ })
56
+ })
57
+ }).then(function (response) {
58
+ if (response.status === 200) {
59
+ return response.json();
60
+ }
61
+
62
+ return Promise.reject({
63
+ message: "error calling smart service, statusCode=".concat(response.status, ", statusText=").concat(response.statusText)
64
+ });
65
+ }).then(function (response) {
66
+ return (0, _usersTransformer.transformUsers)(response, intl);
67
+ });
68
+ };
69
+
70
+ var _default = getUserRecommendations;
71
+ exports.default = _default;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _config = require("../config");
13
+
14
+ var _constants = require("./constants");
15
+
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
+
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
+
20
+ var transformTeam = function transformTeam(team, id) {
21
+ return {
22
+ id: id,
23
+ name: team.displayName,
24
+ type: 'team',
25
+ avatarUrl: team.smallAvatarImageUrl
26
+ };
27
+ };
28
+
29
+ var hydrateTeamFromLegion = function hydrateTeamFromLegion(request) {
30
+ var url = "".concat((0, _config.getConfig)().getTeamsUrl(request.baseUrl), "/").concat(request.id);
31
+ return fetch(url, {
32
+ method: 'GET',
33
+ credentials: 'include',
34
+ headers: {
35
+ 'content-type': 'application/json'
36
+ }
37
+ }).then(function (response) {
38
+ if (response.status === 200) {
39
+ return response.json();
40
+ }
41
+
42
+ return Promise.reject({
43
+ message: "error calling Legion, statusCode=".concat(response.status, ", statusText=").concat(response.statusText)
44
+ });
45
+ }).then(function (response) {
46
+ return transformTeam(response, request.id);
47
+ }).catch(function () {
48
+ return _objectSpread(_objectSpread({}, _constants.UNKNOWN_TEAM), {}, {
49
+ // on network error, return original team with label 'Unknown'
50
+ id: request.id
51
+ });
52
+ });
53
+ };
54
+
55
+ var _default = hydrateTeamFromLegion;
56
+ exports.default = _default;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _constants = require("./constants");
17
+
18
+ var _graphqlUtils = require("./graphqlUtils");
19
+
20
+ var _config = require("../config");
21
+
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+
26
+ /**
27
+ * @param {string} accountIds ids to hydrate
28
+ * @return GraphQL Query
29
+ */
30
+ var buildUsersQuery = function buildUsersQuery(accountIds) {
31
+ return {
32
+ query: "query usersQuery($accountIds: [ID!]!) {\n users(accountIds: $accountIds) {\n name\n accountId\n picture\n }\n }",
33
+ variables: {
34
+ accountIds: accountIds
35
+ }
36
+ };
37
+ };
38
+
39
+ var makeRequest = /*#__PURE__*/function () {
40
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, accountIds) {
41
+ var query;
42
+ return _regenerator.default.wrap(function _callee$(_context) {
43
+ while (1) {
44
+ switch (_context.prev = _context.next) {
45
+ case 0:
46
+ query = buildUsersQuery(accountIds);
47
+ _context.next = 3;
48
+ return (0, _graphqlUtils.graphqlQuery)(url, query);
49
+
50
+ case 3:
51
+ return _context.abrupt("return", _context.sent);
52
+
53
+ case 4:
54
+ case "end":
55
+ return _context.stop();
56
+ }
57
+ }
58
+ }, _callee);
59
+ }));
60
+
61
+ return function makeRequest(_x, _x2) {
62
+ return _ref.apply(this, arguments);
63
+ };
64
+ }();
65
+
66
+ var modifyResponse = function modifyResponse(users) {
67
+ return users.map(function (_ref2) {
68
+ var accountId = _ref2.accountId,
69
+ name = _ref2.name,
70
+ picture = _ref2.picture;
71
+ return {
72
+ avatarUrl: picture,
73
+ id: accountId,
74
+ name: name,
75
+ type: 'user'
76
+ };
77
+ });
78
+ };
79
+
80
+ var getHydratedUsers = function getHydratedUsers(baseUrl, userIds) {
81
+ var url = (0, _config.getConfig)().getGraphQLUrl(baseUrl);
82
+ return new Promise(function (resolve) {
83
+ makeRequest(url, userIds).then(function (data) {
84
+ resolve(modifyResponse(data.users));
85
+ }).catch(function () {
86
+ // on network error, return original list with label 'Unknown'
87
+ resolve(userIds.map(function (id) {
88
+ return _objectSpread(_objectSpread({}, _constants.UNKNOWN_USER), {}, {
89
+ id: id
90
+ });
91
+ }));
92
+ });
93
+ });
94
+ };
95
+
96
+ var _default = getHydratedUsers;
97
+ exports.default = _default;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transformUsers = void 0;
7
+
8
+ var _userPicker = require("@atlaskit/user-picker");
9
+
10
+ var _i18n = require("../i18n");
11
+
12
+ var EntityType;
13
+
14
+ (function (EntityType) {
15
+ EntityType["USER"] = "USER";
16
+ EntityType["TEAM"] = "TEAM";
17
+ EntityType["GROUP"] = "GROUP";
18
+ })(EntityType || (EntityType = {}));
19
+
20
+ var getLozenzeProperties = function getLozenzeProperties(entity, intl) {
21
+ var _entity$attributes, _entity$attributes2;
22
+
23
+ if ((_entity$attributes = entity.attributes) !== null && _entity$attributes !== void 0 && _entity$attributes.workspaceMember) {
24
+ return intl.formatMessage(_i18n.messages.memberLozengeText);
25
+ }
26
+
27
+ if ((_entity$attributes2 = entity.attributes) !== null && _entity$attributes2 !== void 0 && _entity$attributes2.isConfluenceExternalCollaborator) {
28
+ var lozengeTooltipMessage = entity.entityType === EntityType.GROUP ? _i18n.messages.guestGroupLozengeTooltip : _i18n.messages.guestUserLozengeTooltip;
29
+ return {
30
+ text: intl.formatMessage(_i18n.messages.guestLozengeText),
31
+ tooltip: intl.formatMessage(lozengeTooltipMessage),
32
+ appearance: 'new'
33
+ };
34
+ }
35
+
36
+ return undefined;
37
+ };
38
+
39
+ var transformUser = function transformUser(item, intl) {
40
+ var type = item.entityType;
41
+
42
+ if (type === EntityType.USER) {
43
+ var user = item;
44
+ var lozenge = getLozenzeProperties(user, intl);
45
+ return {
46
+ id: user.id,
47
+ type: _userPicker.UserType,
48
+ avatarUrl: user.avatarUrl,
49
+ name: user.name,
50
+ email: user.email,
51
+ lozenge: lozenge
52
+ };
53
+ }
54
+
55
+ if (type === EntityType.TEAM) {
56
+ var team = item;
57
+ return {
58
+ id: team.id,
59
+ type: _userPicker.TeamType,
60
+ description: team.description || '',
61
+ name: team.displayName || '',
62
+ memberCount: team.memberCount,
63
+ includesYou: team.includesYou,
64
+ avatarUrl: team.largeAvatarImageUrl || team.smallAvatarImageUrl
65
+ };
66
+ }
67
+
68
+ if (type === EntityType.GROUP) {
69
+ var group = item;
70
+
71
+ var _lozenge = getLozenzeProperties(group, intl);
72
+
73
+ return {
74
+ id: group.id,
75
+ type: _userPicker.GroupType,
76
+ name: group.name || '',
77
+ lozenge: _lozenge
78
+ };
79
+ }
80
+
81
+ return;
82
+ };
83
+
84
+ var transformUsers = function transformUsers(serverResponse, intl) {
85
+ return (serverResponse.recommendedUsers || []).map(function (item) {
86
+ return transformUser(item, intl);
87
+ }).filter(function (user) {
88
+ return !!user;
89
+ }).map(function (user) {
90
+ return user;
91
+ });
92
+ };
93
+
94
+ exports.transformUsers = transformUsers;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EntityType = void 0;
7
+ var EntityType;
8
+ exports.EntityType = EntityType;
9
+
10
+ (function (EntityType) {
11
+ EntityType["USER"] = "USER";
12
+ EntityType["TEAM"] = "TEAM";
13
+ EntityType["GROUP"] = "GROUP";
14
+ })(EntityType || (exports.EntityType = EntityType = {}));
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useUFOConcurrentExperience = exports.smartUserPickerRenderedUfoExperience = void 0;
7
+
8
+ var _ufo = require("@atlaskit/ufo");
9
+
10
+ var _react = require("react");
11
+
12
+ var COMPONENT_NAME = 'smart-user-picker';
13
+ var smartUserPickerRenderedUfoExperience = new _ufo.ConcurrentExperience('smart-user-picker-rendered', {
14
+ platform: {
15
+ component: COMPONENT_NAME
16
+ },
17
+ type: _ufo.ExperienceTypes.Load,
18
+ performanceType: _ufo.ExperiencePerformanceTypes.PageSegmentLoad
19
+ });
20
+ exports.smartUserPickerRenderedUfoExperience = smartUserPickerRenderedUfoExperience;
21
+
22
+ var useUFOConcurrentExperience = function useUFOConcurrentExperience(experience, id) {
23
+ var experienceForId = experience.getInstance(id); // Equivalent to componentWillMount - replace with @atlaskit/ufo's
24
+ // useUFOComponentExperience when it supports ConcurrentExperience.
25
+
26
+ (0, _react.useState)(function () {
27
+ experienceForId.start();
28
+ }); // Replace with @atlaskit/ufo's <ExperienceSuccess> when it supports ConcurrentExperience
29
+
30
+ (0, _react.useEffect)(function () {
31
+ experienceForId.success();
32
+ return function () {
33
+ experienceForId.abort();
34
+ }; // We only want this useEffect to run once after component mount, so no deps are needed.
35
+ // eslint-disable-next-line react-hooks/exhaustive-deps
36
+ }, []);
37
+ };
38
+
39
+ exports.useUFOConcurrentExperience = useUFOConcurrentExperience;