@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.
- package/CHANGELOG.md +140 -0
- package/LICENSE +13 -0
- package/build/tsconfig.json +16 -0
- package/dist/cjs/analytics.js +131 -0
- package/dist/cjs/components/MessagesIntlProvider.js +72 -0
- package/dist/cjs/components/SmartUserPicker.js +473 -0
- package/dist/cjs/components/index.js +24 -0
- package/dist/cjs/config/index.js +50 -0
- package/dist/cjs/i18n/cs.js +26 -0
- package/dist/cjs/i18n/da.js +26 -0
- package/dist/cjs/i18n/de.js +26 -0
- package/dist/cjs/i18n/en.js +14 -0
- package/dist/cjs/i18n/en_GB.js +14 -0
- package/dist/cjs/i18n/en_ZZ.js +26 -0
- package/dist/cjs/i18n/es.js +26 -0
- package/dist/cjs/i18n/et.js +16 -0
- package/dist/cjs/i18n/fi.js +26 -0
- package/dist/cjs/i18n/fr.js +26 -0
- package/dist/cjs/i18n/hu.js +26 -0
- package/dist/cjs/i18n/index.js +247 -0
- package/dist/cjs/i18n/is.js +14 -0
- package/dist/cjs/i18n/it.js +26 -0
- package/dist/cjs/i18n/ja.js +26 -0
- package/dist/cjs/i18n/ko.js +26 -0
- package/dist/cjs/i18n/languages.js +33 -0
- package/dist/cjs/i18n/nb.js +26 -0
- package/dist/cjs/i18n/nl.js +26 -0
- package/dist/cjs/i18n/pl.js +26 -0
- package/dist/cjs/i18n/pt_BR.js +26 -0
- package/dist/cjs/i18n/pt_PT.js +16 -0
- package/dist/cjs/i18n/ro.js +14 -0
- package/dist/cjs/i18n/ru.js +26 -0
- package/dist/cjs/i18n/sk.js +16 -0
- package/dist/cjs/i18n/sv.js +26 -0
- package/dist/cjs/i18n/th.js +26 -0
- package/dist/cjs/i18n/tr.js +26 -0
- package/dist/cjs/i18n/uk.js +26 -0
- package/dist/cjs/i18n/vi.js +26 -0
- package/dist/cjs/i18n/zh.js +26 -0
- package/dist/cjs/i18n/zh_TW.js +26 -0
- package/dist/cjs/i18n.js +57 -0
- package/dist/cjs/index.js +87 -0
- package/dist/cjs/service/constants.js +20 -0
- package/dist/cjs/service/default-value-hydration-client.js +278 -0
- package/dist/cjs/service/graphqlUtils.js +48 -0
- package/dist/cjs/service/index.js +23 -0
- package/dist/cjs/service/recommendation-client.js +71 -0
- package/dist/cjs/service/teams-client.js +56 -0
- package/dist/cjs/service/users-client.js +97 -0
- package/dist/cjs/service/users-transformer.js +94 -0
- package/dist/cjs/types.js +14 -0
- package/dist/cjs/ufoExperiences.js +39 -0
- package/dist/cjs/util/i18n-util.js +274 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/analytics.js +85 -0
- package/dist/es2019/components/MessagesIntlProvider.js +43 -0
- package/dist/es2019/components/SmartUserPicker.js +316 -0
- package/dist/es2019/components/index.js +11 -0
- package/dist/es2019/config/index.js +42 -0
- package/dist/es2019/i18n/cs.js +18 -0
- package/dist/es2019/i18n/da.js +18 -0
- package/dist/es2019/i18n/de.js +18 -0
- package/dist/es2019/i18n/en.js +7 -0
- package/dist/es2019/i18n/en_GB.js +7 -0
- package/dist/es2019/i18n/en_ZZ.js +18 -0
- package/dist/es2019/i18n/es.js +18 -0
- package/dist/es2019/i18n/et.js +8 -0
- package/dist/es2019/i18n/fi.js +18 -0
- package/dist/es2019/i18n/fr.js +18 -0
- package/dist/es2019/i18n/hu.js +18 -0
- package/dist/es2019/i18n/index.js +36 -0
- package/dist/es2019/i18n/is.js +7 -0
- package/dist/es2019/i18n/it.js +18 -0
- package/dist/es2019/i18n/ja.js +18 -0
- package/dist/es2019/i18n/ko.js +18 -0
- package/dist/es2019/i18n/languages.js +26 -0
- package/dist/es2019/i18n/nb.js +18 -0
- package/dist/es2019/i18n/nl.js +18 -0
- package/dist/es2019/i18n/pl.js +18 -0
- package/dist/es2019/i18n/pt_BR.js +18 -0
- package/dist/es2019/i18n/pt_PT.js +8 -0
- package/dist/es2019/i18n/ro.js +7 -0
- package/dist/es2019/i18n/ru.js +18 -0
- package/dist/es2019/i18n/sk.js +8 -0
- package/dist/es2019/i18n/sv.js +18 -0
- package/dist/es2019/i18n/th.js +18 -0
- package/dist/es2019/i18n/tr.js +18 -0
- package/dist/es2019/i18n/uk.js +18 -0
- package/dist/es2019/i18n/vi.js +18 -0
- package/dist/es2019/i18n/zh.js +18 -0
- package/dist/es2019/i18n/zh_TW.js +18 -0
- package/dist/es2019/i18n.js +48 -0
- package/dist/es2019/index.js +6 -0
- package/dist/es2019/service/constants.js +11 -0
- package/dist/es2019/service/default-value-hydration-client.js +125 -0
- package/dist/es2019/service/graphqlUtils.js +39 -0
- package/dist/es2019/service/index.js +2 -0
- package/dist/es2019/service/recommendation-client.js +52 -0
- package/dist/es2019/service/teams-client.js +37 -0
- package/dist/es2019/service/users-client.js +52 -0
- package/dist/es2019/service/users-transformer.js +73 -0
- package/dist/es2019/types.js +7 -0
- package/dist/es2019/ufoExperiences.js +26 -0
- package/dist/es2019/util/i18n-util.js +231 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/analytics.js +99 -0
- package/dist/esm/components/MessagesIntlProvider.js +50 -0
- package/dist/esm/components/SmartUserPicker.js +454 -0
- package/dist/esm/components/index.js +11 -0
- package/dist/esm/config/index.js +39 -0
- package/dist/esm/i18n/cs.js +18 -0
- package/dist/esm/i18n/da.js +18 -0
- package/dist/esm/i18n/de.js +18 -0
- package/dist/esm/i18n/en.js +7 -0
- package/dist/esm/i18n/en_GB.js +7 -0
- package/dist/esm/i18n/en_ZZ.js +18 -0
- package/dist/esm/i18n/es.js +18 -0
- package/dist/esm/i18n/et.js +8 -0
- package/dist/esm/i18n/fi.js +18 -0
- package/dist/esm/i18n/fr.js +18 -0
- package/dist/esm/i18n/hu.js +18 -0
- package/dist/esm/i18n/index.js +36 -0
- package/dist/esm/i18n/is.js +7 -0
- package/dist/esm/i18n/it.js +18 -0
- package/dist/esm/i18n/ja.js +18 -0
- package/dist/esm/i18n/ko.js +18 -0
- package/dist/esm/i18n/languages.js +26 -0
- package/dist/esm/i18n/nb.js +18 -0
- package/dist/esm/i18n/nl.js +18 -0
- package/dist/esm/i18n/pl.js +18 -0
- package/dist/esm/i18n/pt_BR.js +18 -0
- package/dist/esm/i18n/pt_PT.js +8 -0
- package/dist/esm/i18n/ro.js +7 -0
- package/dist/esm/i18n/ru.js +18 -0
- package/dist/esm/i18n/sk.js +8 -0
- package/dist/esm/i18n/sv.js +18 -0
- package/dist/esm/i18n/th.js +18 -0
- package/dist/esm/i18n/tr.js +18 -0
- package/dist/esm/i18n/uk.js +18 -0
- package/dist/esm/i18n/vi.js +18 -0
- package/dist/esm/i18n/zh.js +18 -0
- package/dist/esm/i18n/zh_TW.js +18 -0
- package/dist/esm/i18n.js +48 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/service/constants.js +11 -0
- package/dist/esm/service/default-value-hydration-client.js +261 -0
- package/dist/esm/service/graphqlUtils.js +41 -0
- package/dist/esm/service/index.js +2 -0
- package/dist/esm/service/recommendation-client.js +60 -0
- package/dist/esm/service/teams-client.js +45 -0
- package/dist/esm/service/users-client.js +83 -0
- package/dist/esm/service/users-transformer.js +83 -0
- package/dist/esm/types.js +7 -0
- package/dist/esm/ufoExperiences.js +26 -0
- package/dist/esm/util/i18n-util.js +256 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/analytics.d.ts +21 -0
- package/dist/types/components/MessagesIntlProvider.d.ts +9 -0
- package/dist/types/components/SmartUserPicker.d.ts +30 -0
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/config/index.d.ts +9 -0
- package/dist/types/i18n/cs.d.ts +18 -0
- package/dist/types/i18n/da.d.ts +18 -0
- package/dist/types/i18n/de.d.ts +18 -0
- package/dist/types/i18n/en.d.ts +7 -0
- package/dist/types/i18n/en_GB.d.ts +7 -0
- package/dist/types/i18n/en_ZZ.d.ts +18 -0
- package/dist/types/i18n/es.d.ts +18 -0
- package/dist/types/i18n/et.d.ts +8 -0
- package/dist/types/i18n/fi.d.ts +18 -0
- package/dist/types/i18n/fr.d.ts +18 -0
- package/dist/types/i18n/hu.d.ts +18 -0
- package/dist/types/i18n/index.d.ts +36 -0
- package/dist/types/i18n/is.d.ts +7 -0
- package/dist/types/i18n/it.d.ts +18 -0
- package/dist/types/i18n/ja.d.ts +18 -0
- package/dist/types/i18n/ko.d.ts +18 -0
- package/dist/types/i18n/languages.d.ts +27 -0
- package/dist/types/i18n/nb.d.ts +18 -0
- package/dist/types/i18n/nl.d.ts +18 -0
- package/dist/types/i18n/pl.d.ts +18 -0
- package/dist/types/i18n/pt_BR.d.ts +18 -0
- package/dist/types/i18n/pt_PT.d.ts +8 -0
- package/dist/types/i18n/ro.d.ts +7 -0
- package/dist/types/i18n/ru.d.ts +18 -0
- package/dist/types/i18n/sk.d.ts +8 -0
- package/dist/types/i18n/sv.d.ts +18 -0
- package/dist/types/i18n/th.d.ts +18 -0
- package/dist/types/i18n/tr.d.ts +18 -0
- package/dist/types/i18n/uk.d.ts +18 -0
- package/dist/types/i18n/vi.d.ts +18 -0
- package/dist/types/i18n/zh.d.ts +18 -0
- package/dist/types/i18n/zh_TW.d.ts +18 -0
- package/dist/types/i18n.d.ts +47 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/service/constants.d.ts +4 -0
- package/dist/types/service/default-value-hydration-client.d.ts +8 -0
- package/dist/types/service/graphqlUtils.d.ts +14 -0
- package/dist/types/service/index.d.ts +2 -0
- package/dist/types/service/recommendation-client.d.ts +5 -0
- package/dist/types/service/teams-client.d.ts +12 -0
- package/dist/types/service/users-client.d.ts +11 -0
- package/dist/types/service/users-transformer.d.ts +22 -0
- package/dist/types/types.d.ts +208 -0
- package/dist/types/ufoExperiences.d.ts +3 -0
- package/dist/types/util/i18n-util.d.ts +11 -0
- package/docs/0-intro.tsx +52 -0
- package/package.json +56 -0
- 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;
|