@atlaskit/smart-user-picker 8.1.0 → 8.2.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 +12 -0
- package/afm-cc/tsconfig.json +3 -0
- package/afm-passionfruit/tsconfig.json +35 -0
- package/afm-volt/tsconfig.json +7 -1
- package/dist/cjs/analytics.js +6 -2
- package/dist/cjs/components/SmartUserPicker.js +78 -44
- package/dist/es2019/analytics.js +5 -1
- package/dist/es2019/components/SmartUserPicker.js +25 -5
- package/dist/esm/analytics.js +5 -1
- package/dist/esm/components/SmartUserPicker.js +80 -46
- package/dist/types/analytics.d.ts +1 -0
- package/dist/types/components/SmartUserPicker.d.ts +1 -0
- package/dist/types/types.d.ts +4 -0
- package/dist/types-ts4.5/analytics.d.ts +1 -0
- package/dist/types-ts4.5/components/SmartUserPicker.d.ts +1 -0
- package/dist/types-ts4.5/types.d.ts +4 -0
- package/option/package.json +1 -1
- package/package.json +9 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlassian/smart-user-picker
|
|
2
2
|
|
|
3
|
+
## 8.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`272ab9229ad98`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/272ab9229ad98) -
|
|
8
|
+
add additional userResolvers prop to support adding additional contacts to existing user
|
|
9
|
+
recommendations
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
3
15
|
## 8.1.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/afm-cc/tsconfig.json
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../../../tsconfig.entry-points.passionfruit.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "es5",
|
|
5
|
+
"outDir": "../../../../../passionfruit/tsDist/@atlaskit__smart-user-picker/app",
|
|
6
|
+
"rootDir": "../",
|
|
7
|
+
"composite": true
|
|
8
|
+
},
|
|
9
|
+
"include": [
|
|
10
|
+
"../src/**/*.ts",
|
|
11
|
+
"../src/**/*.tsx"
|
|
12
|
+
],
|
|
13
|
+
"exclude": [
|
|
14
|
+
"../src/**/__tests__/*",
|
|
15
|
+
"../src/**/*.test.*",
|
|
16
|
+
"../src/**/test.*",
|
|
17
|
+
"../src/**/examples.*",
|
|
18
|
+
"../src/**/examples/*",
|
|
19
|
+
"../src/**/examples/**/*",
|
|
20
|
+
"../src/**/*.stories.*",
|
|
21
|
+
"../src/**/stories/*",
|
|
22
|
+
"../src/**/stories/**/*"
|
|
23
|
+
],
|
|
24
|
+
"references": [
|
|
25
|
+
{
|
|
26
|
+
"path": "../../../analytics/analytics-next/afm-passionfruit/tsconfig.json"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"path": "../../../data/ufo-external/afm-passionfruit/tsconfig.json"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"path": "../../../elements/user-picker/afm-passionfruit/tsconfig.json"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
package/afm-volt/tsconfig.json
CHANGED
|
@@ -13,7 +13,13 @@
|
|
|
13
13
|
"exclude": [
|
|
14
14
|
"../src/**/__tests__/*",
|
|
15
15
|
"../src/**/*.test.*",
|
|
16
|
-
"../src/**/test.*"
|
|
16
|
+
"../src/**/test.*",
|
|
17
|
+
"../src/**/examples.*",
|
|
18
|
+
"../src/**/examples/*",
|
|
19
|
+
"../src/**/examples/**/*",
|
|
20
|
+
"../src/**/*.stories.*",
|
|
21
|
+
"../src/**/stories/*",
|
|
22
|
+
"../src/**/stories/**/*"
|
|
17
23
|
],
|
|
18
24
|
"references": [
|
|
19
25
|
{
|
package/dist/cjs/analytics.js
CHANGED
|
@@ -4,14 +4,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.successfulRequestUsersEvent = exports.startSession = exports.requestUsersEvent = exports.preparedUsersLoadedEvent = exports.mountedWithPrefetchEvent = exports.filterUsersEvent = exports.failedRequestUsersEvent = exports.createAndFireEventInElementsChannel = void 0;
|
|
7
|
+
exports.successfulRequestUsersEvent = exports.startSession = exports.requestUsersEvent = exports.preparedUsersLoadedEvent = exports.mountedWithPrefetchEvent = exports.filterUsersEvent = exports.failedUserResolversEvent = exports.failedRequestUsersEvent = exports.createAndFireEventInElementsChannel = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
10
10
|
var _uuid = require("uuid");
|
|
11
11
|
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; }
|
|
12
12
|
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; }
|
|
13
13
|
var packageName = "@atlaskit/smart-user-picker";
|
|
14
|
-
var packageVersion = "8.0
|
|
14
|
+
var packageVersion = "8.1.0";
|
|
15
15
|
var startSession = exports.startSession = function startSession() {
|
|
16
16
|
return {
|
|
17
17
|
id: (0, _uuid.v4)(),
|
|
@@ -97,4 +97,8 @@ var successfulRequestUsersEvent = exports.successfulRequestUsersEvent = function
|
|
|
97
97
|
var failedRequestUsersEvent = exports.failedRequestUsersEvent = function failedRequestUsersEvent(props, state) {
|
|
98
98
|
var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
99
99
|
return createSmartUserPickerEvent('failed', 'usersRequest', _objectSpread(_objectSpread({}, createDefaultSmartPickerAttributes(props, state)), attributes));
|
|
100
|
+
};
|
|
101
|
+
var failedUserResolversEvent = exports.failedUserResolversEvent = function failedUserResolversEvent(props, state) {
|
|
102
|
+
var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
103
|
+
return createSmartUserPickerEvent('failed', 'userResolversRequest', _objectSpread(_objectSpread({}, createDefaultSmartPickerAttributes(props, state)), attributes));
|
|
100
104
|
};
|
|
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.SmartUserPickerWithoutAnalytics = exports.SmartUserPicker = void 0;
|
|
9
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
+
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
|
11
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
15
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -23,6 +25,7 @@ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
|
23
25
|
var _reactIntlNext = require("react-intl-next");
|
|
24
26
|
var _ufo = require("@atlaskit/ufo");
|
|
25
27
|
var _userPicker = _interopRequireWildcard(require("@atlaskit/user-picker"));
|
|
28
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
26
29
|
var _analytics = require("../analytics");
|
|
27
30
|
var _MessagesIntlProvider = _interopRequireDefault(require("./MessagesIntlProvider"));
|
|
28
31
|
var _service = require("../service");
|
|
@@ -107,12 +110,12 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
|
|
|
107
110
|
});
|
|
108
111
|
(0, _defineProperty2.default)(_this, "memoizedFilterOptions", (0, _memoizeOne.default)(_this.filterOptions));
|
|
109
112
|
(0, _defineProperty2.default)(_this, "getUsers", (0, _debounce.default)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
110
|
-
var _this$state, query, sessionId, closed, _this$props, baseUrl, childObjectId, containerId, fieldId, includeGroups, includeTeams, includeUsers, includeNonLicensedUsers, intl, maxOptions, objectId, onEmpty, onError, overrideByline, orgId, principalId, productAttributes, productKey, searchQueryFilter, siteId, transformOptions, maxNumberOfResults, startTime, recommendationsRequest, _yield$onEmpty, _query, recommendedUsers, _iterator, _step, option, elapsedTimeMilli, transformedOptions, displayedUsers, is5xxEvent, onErrorProducedError, defaultUsers, _elapsedTimeMilli;
|
|
113
|
+
var _this$state, query, sessionId, closed, _this$props, baseUrl, childObjectId, containerId, fieldId, includeGroups, includeTeams, includeUsers, includeNonLicensedUsers, intl, maxOptions, objectId, onEmpty, onError, overrideByline, orgId, principalId, productAttributes, productKey, searchQueryFilter, siteId, transformOptions, userResolvers, maxNumberOfResults, startTime, recommendationsRequest, _yield$onEmpty, _query, recommendedUsers, userRecommendationsPromise, userResolversPromises, _yield$Promise$all, _yield$Promise$all2, mainRecommendations, userResolverResults, _iterator, _step, option, elapsedTimeMilli, transformedOptions, displayedUsers, is5xxEvent, onErrorProducedError, defaultUsers, _elapsedTimeMilli;
|
|
111
114
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
112
115
|
while (1) switch (_context.prev = _context.next) {
|
|
113
116
|
case 0:
|
|
114
117
|
_this$state = _this.state, query = _this$state.query, sessionId = _this$state.sessionId, closed = _this$state.closed;
|
|
115
|
-
_this$props = _this.props, baseUrl = _this$props.baseUrl, childObjectId = _this$props.childObjectId, containerId = _this$props.containerId, fieldId = _this$props.fieldId, includeGroups = _this$props.includeGroups, includeTeams = _this$props.includeTeams, includeUsers = _this$props.includeUsers, includeNonLicensedUsers = _this$props.includeNonLicensedUsers, intl = _this$props.intl, maxOptions = _this$props.maxOptions, objectId = _this$props.objectId, onEmpty = _this$props.onEmpty, onError = _this$props.onError, overrideByline = _this$props.overrideByline, orgId = _this$props.orgId, principalId = _this$props.principalId, productAttributes = _this$props.productAttributes, productKey = _this$props.productKey, searchQueryFilter = _this$props.searchQueryFilter, siteId = _this$props.siteId, transformOptions = _this$props.transformOptions;
|
|
118
|
+
_this$props = _this.props, baseUrl = _this$props.baseUrl, childObjectId = _this$props.childObjectId, containerId = _this$props.containerId, fieldId = _this$props.fieldId, includeGroups = _this$props.includeGroups, includeTeams = _this$props.includeTeams, includeUsers = _this$props.includeUsers, includeNonLicensedUsers = _this$props.includeNonLicensedUsers, intl = _this$props.intl, maxOptions = _this$props.maxOptions, objectId = _this$props.objectId, onEmpty = _this$props.onEmpty, onError = _this$props.onError, overrideByline = _this$props.overrideByline, orgId = _this$props.orgId, principalId = _this$props.principalId, productAttributes = _this$props.productAttributes, productKey = _this$props.productKey, searchQueryFilter = _this$props.searchQueryFilter, siteId = _this$props.siteId, transformOptions = _this$props.transformOptions, userResolvers = _this$props.userResolvers;
|
|
116
119
|
maxNumberOfResults = maxOptions || 100;
|
|
117
120
|
startTime = window.performance.now();
|
|
118
121
|
recommendationsRequest = {
|
|
@@ -140,10 +143,36 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
|
|
|
140
143
|
_context.prev = 5;
|
|
141
144
|
_query = _this.state.query;
|
|
142
145
|
_this.fireEvent(_analytics.requestUsersEvent);
|
|
143
|
-
|
|
146
|
+
if (!(0, _platformFeatureFlags.fg)('twcg-444-invite-usd-improvements-m2-gate')) {
|
|
147
|
+
_context.next = 20;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
userRecommendationsPromise = (0, _service.getUserRecommendations)(recommendationsRequest, intl);
|
|
151
|
+
userResolversPromises = (userResolvers !== null && userResolvers !== void 0 ? userResolvers : []).map(function (resolver) {
|
|
152
|
+
return resolver(_query).catch(function (error) {
|
|
153
|
+
_this.fireEvent(_analytics.failedUserResolversEvent, {
|
|
154
|
+
resolverName: resolver.name,
|
|
155
|
+
error: error
|
|
156
|
+
});
|
|
157
|
+
return [];
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
_context.next = 13;
|
|
161
|
+
return Promise.all([userRecommendationsPromise].concat((0, _toConsumableArray2.default)(userResolversPromises)));
|
|
162
|
+
case 13:
|
|
163
|
+
_yield$Promise$all = _context.sent;
|
|
164
|
+
_yield$Promise$all2 = (0, _toArray2.default)(_yield$Promise$all);
|
|
165
|
+
mainRecommendations = _yield$Promise$all2[0];
|
|
166
|
+
userResolverResults = _yield$Promise$all2.slice(1);
|
|
167
|
+
recommendedUsers = [mainRecommendations].concat((0, _toConsumableArray2.default)(userResolverResults)).flat();
|
|
168
|
+
_context.next = 23;
|
|
169
|
+
break;
|
|
170
|
+
case 20:
|
|
171
|
+
_context.next = 22;
|
|
144
172
|
return (0, _service.getUserRecommendations)(recommendationsRequest, intl);
|
|
145
|
-
case
|
|
173
|
+
case 22:
|
|
146
174
|
recommendedUsers = _context.sent;
|
|
175
|
+
case 23:
|
|
147
176
|
if (overrideByline) {
|
|
148
177
|
_iterator = _createForOfIteratorHelper(recommendedUsers);
|
|
149
178
|
try {
|
|
@@ -161,71 +190,75 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
|
|
|
161
190
|
}
|
|
162
191
|
elapsedTimeMilli = window.performance.now() - startTime;
|
|
163
192
|
if (!transformOptions) {
|
|
164
|
-
_context.next =
|
|
193
|
+
_context.next = 31;
|
|
165
194
|
break;
|
|
166
195
|
}
|
|
167
|
-
_context.next =
|
|
196
|
+
_context.next = 28;
|
|
168
197
|
return transformOptions(recommendedUsers, _query);
|
|
169
|
-
case
|
|
198
|
+
case 28:
|
|
170
199
|
_context.t0 = _context.sent;
|
|
171
|
-
_context.next =
|
|
200
|
+
_context.next = 32;
|
|
172
201
|
break;
|
|
173
|
-
case
|
|
202
|
+
case 31:
|
|
174
203
|
_context.t0 = recommendedUsers;
|
|
175
|
-
case
|
|
204
|
+
case 32:
|
|
176
205
|
transformedOptions = _context.t0;
|
|
177
206
|
if (!(transformedOptions.length === 0 && onEmpty)) {
|
|
178
|
-
_context.next =
|
|
207
|
+
_context.next = 48;
|
|
179
208
|
break;
|
|
180
209
|
}
|
|
181
|
-
_context.next =
|
|
210
|
+
_context.next = 36;
|
|
182
211
|
return onEmpty(_query);
|
|
183
|
-
case
|
|
212
|
+
case 36:
|
|
184
213
|
_context.t3 = _yield$onEmpty = _context.sent;
|
|
185
214
|
_context.t2 = _context.t3 !== null;
|
|
186
215
|
if (!_context.t2) {
|
|
187
|
-
_context.next =
|
|
216
|
+
_context.next = 40;
|
|
188
217
|
break;
|
|
189
218
|
}
|
|
190
219
|
_context.t2 = _yield$onEmpty !== void 0;
|
|
191
|
-
case
|
|
220
|
+
case 40:
|
|
192
221
|
if (!_context.t2) {
|
|
193
|
-
_context.next =
|
|
222
|
+
_context.next = 44;
|
|
194
223
|
break;
|
|
195
224
|
}
|
|
196
225
|
_context.t4 = _yield$onEmpty;
|
|
197
|
-
_context.next =
|
|
226
|
+
_context.next = 45;
|
|
198
227
|
break;
|
|
199
|
-
case
|
|
228
|
+
case 44:
|
|
200
229
|
_context.t4 = [];
|
|
201
|
-
case
|
|
230
|
+
case 45:
|
|
202
231
|
_context.t1 = _context.t4;
|
|
203
|
-
_context.next =
|
|
232
|
+
_context.next = 49;
|
|
204
233
|
break;
|
|
205
|
-
case
|
|
234
|
+
case 48:
|
|
206
235
|
_context.t1 = transformedOptions;
|
|
207
|
-
case
|
|
236
|
+
case 49:
|
|
208
237
|
displayedUsers = _context.t1;
|
|
209
238
|
_this.setState(function (state) {
|
|
210
239
|
var applicable = state.query === _query;
|
|
211
240
|
var users = applicable ? displayedUsers : state.users;
|
|
212
241
|
var loading = !applicable;
|
|
213
|
-
_this.fireEvent(_analytics.successfulRequestUsersEvent, {
|
|
242
|
+
_this.fireEvent(_analytics.successfulRequestUsersEvent, _objectSpread({
|
|
214
243
|
users: getUsersForAnalytics(recommendedUsers),
|
|
215
244
|
elapsedTimeMilli: elapsedTimeMilli,
|
|
216
245
|
displayedUsers: getUsersForAnalytics(displayedUsers),
|
|
217
246
|
productAttributes: productAttributes,
|
|
218
247
|
applicable: applicable
|
|
219
|
-
})
|
|
248
|
+
}, (0, _platformFeatureFlags.fg)('twcg-444-invite-usd-improvements-m2-gate') && {
|
|
249
|
+
userResolvers: Array.isArray(userResolvers) ? userResolvers.map(function (resolver) {
|
|
250
|
+
return resolver.name;
|
|
251
|
+
}) : []
|
|
252
|
+
}));
|
|
220
253
|
return {
|
|
221
254
|
users: users,
|
|
222
255
|
loading: loading
|
|
223
256
|
};
|
|
224
257
|
});
|
|
225
|
-
_context.next =
|
|
258
|
+
_context.next = 82;
|
|
226
259
|
break;
|
|
227
|
-
case
|
|
228
|
-
_context.prev =
|
|
260
|
+
case 53:
|
|
261
|
+
_context.prev = 53;
|
|
229
262
|
_context.t5 = _context["catch"](5);
|
|
230
263
|
is5xxEvent = checkIf500Event(_context.t5.statusCode);
|
|
231
264
|
if (!closed && !onError && is5xxEvent) {
|
|
@@ -238,35 +271,35 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
|
|
|
238
271
|
});
|
|
239
272
|
onErrorProducedError = false;
|
|
240
273
|
defaultUsers = [];
|
|
241
|
-
_context.prev =
|
|
274
|
+
_context.prev = 60;
|
|
242
275
|
if (!onError) {
|
|
243
|
-
_context.next =
|
|
276
|
+
_context.next = 70;
|
|
244
277
|
break;
|
|
245
278
|
}
|
|
246
|
-
_context.next =
|
|
279
|
+
_context.next = 64;
|
|
247
280
|
return onError(_context.t5, recommendationsRequest);
|
|
248
|
-
case
|
|
281
|
+
case 64:
|
|
249
282
|
_context.t7 = _context.sent;
|
|
250
283
|
if (_context.t7) {
|
|
251
|
-
_context.next =
|
|
284
|
+
_context.next = 67;
|
|
252
285
|
break;
|
|
253
286
|
}
|
|
254
287
|
_context.t7 = [];
|
|
255
|
-
case
|
|
288
|
+
case 67:
|
|
256
289
|
_context.t6 = _context.t7;
|
|
257
|
-
_context.next =
|
|
290
|
+
_context.next = 71;
|
|
258
291
|
break;
|
|
259
|
-
case
|
|
292
|
+
case 70:
|
|
260
293
|
_context.t6 = [];
|
|
261
|
-
case
|
|
294
|
+
case 71:
|
|
262
295
|
defaultUsers = _context.t6;
|
|
263
|
-
_context.next =
|
|
296
|
+
_context.next = 77;
|
|
264
297
|
break;
|
|
265
|
-
case
|
|
266
|
-
_context.prev =
|
|
267
|
-
_context.t8 = _context["catch"](
|
|
298
|
+
case 74:
|
|
299
|
+
_context.prev = 74;
|
|
300
|
+
_context.t8 = _context["catch"](60);
|
|
268
301
|
onErrorProducedError = true;
|
|
269
|
-
case
|
|
302
|
+
case 77:
|
|
270
303
|
if (onErrorProducedError && is5xxEvent) {
|
|
271
304
|
// Log error from fallback data source `onError` to UFO
|
|
272
305
|
_this.optionsShownUfoExperienceInstance.failure(ufoEndStateConfig(_this.props.fieldId));
|
|
@@ -283,11 +316,11 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
|
|
|
283
316
|
elapsedTimeMilli: _elapsedTimeMilli,
|
|
284
317
|
productAttributes: productAttributes
|
|
285
318
|
});
|
|
286
|
-
case
|
|
319
|
+
case 82:
|
|
287
320
|
case "end":
|
|
288
321
|
return _context.stop();
|
|
289
322
|
}
|
|
290
|
-
}, _callee, null, [[5,
|
|
323
|
+
}, _callee, null, [[5, 53], [60, 74]]);
|
|
291
324
|
})), (_this$props$debounceT = _this.props.debounceTime) !== null && _this$props$debounceT !== void 0 ? _this$props$debounceT : 0));
|
|
292
325
|
(0, _defineProperty2.default)(_this, "onInputChange", function (newQuery, sessionId) {
|
|
293
326
|
var query = newQuery || '';
|
|
@@ -474,6 +507,7 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
|
|
|
474
507
|
includeNonLicensedUsers: false,
|
|
475
508
|
prefetch: false,
|
|
476
509
|
principalId: 'Context',
|
|
477
|
-
debounceTime: DEFAULT_DEBOUNCE_TIME_MS
|
|
510
|
+
debounceTime: DEFAULT_DEBOUNCE_TIME_MS,
|
|
511
|
+
userResolvers: []
|
|
478
512
|
});
|
|
479
513
|
var SmartUserPicker = exports.SmartUserPicker = (0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(SmartUserPickerWithoutAnalytics));
|
package/dist/es2019/analytics.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createAndFireEvent } from '@atlaskit/analytics-next';
|
|
2
2
|
import { v4 as uuid } from 'uuid';
|
|
3
3
|
const packageName = "@atlaskit/smart-user-picker";
|
|
4
|
-
const packageVersion = "8.0
|
|
4
|
+
const packageVersion = "8.1.0";
|
|
5
5
|
export const startSession = () => ({
|
|
6
6
|
id: uuid(),
|
|
7
7
|
start: Date.now(),
|
|
@@ -85,4 +85,8 @@ export const successfulRequestUsersEvent = (props, state, attributes = {}) => cr
|
|
|
85
85
|
export const failedRequestUsersEvent = (props, state, attributes = {}) => createSmartUserPickerEvent('failed', 'usersRequest', {
|
|
86
86
|
...createDefaultSmartPickerAttributes(props, state),
|
|
87
87
|
...attributes
|
|
88
|
+
});
|
|
89
|
+
export const failedUserResolversEvent = (props, state, attributes = {}) => createSmartUserPickerEvent('failed', 'userResolversRequest', {
|
|
90
|
+
...createDefaultSmartPickerAttributes(props, state),
|
|
91
|
+
...attributes
|
|
88
92
|
});
|
|
@@ -8,7 +8,8 @@ import memoizeOne from 'memoize-one';
|
|
|
8
8
|
import { injectIntl } from 'react-intl-next';
|
|
9
9
|
import { UFOExperienceState } from '@atlaskit/ufo';
|
|
10
10
|
import UserPicker, { isExternalUser, isTeam, isUser } from '@atlaskit/user-picker';
|
|
11
|
-
import {
|
|
11
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
|
+
import { requestUsersEvent, filterUsersEvent, preparedUsersLoadedEvent, successfulRequestUsersEvent, failedRequestUsersEvent, mountedWithPrefetchEvent, createAndFireEventInElementsChannel, failedUserResolversEvent } from '../analytics';
|
|
12
13
|
import MessagesIntlProvider from './MessagesIntlProvider';
|
|
13
14
|
import { getUserRecommendations, hydrateDefaultValues } from '../service';
|
|
14
15
|
import { smartUserPickerOptionsShownUfoExperience } from '../ufoExperiences';
|
|
@@ -98,7 +99,8 @@ export class SmartUserPickerWithoutAnalytics extends React.Component {
|
|
|
98
99
|
productKey,
|
|
99
100
|
searchQueryFilter,
|
|
100
101
|
siteId,
|
|
101
|
-
transformOptions
|
|
102
|
+
transformOptions,
|
|
103
|
+
userResolvers
|
|
102
104
|
} = this.props;
|
|
103
105
|
const maxNumberOfResults = maxOptions || 100;
|
|
104
106
|
const startTime = window.performance.now();
|
|
@@ -130,7 +132,21 @@ export class SmartUserPickerWithoutAnalytics extends React.Component {
|
|
|
130
132
|
query
|
|
131
133
|
} = this.state;
|
|
132
134
|
this.fireEvent(requestUsersEvent);
|
|
133
|
-
|
|
135
|
+
let recommendedUsers;
|
|
136
|
+
if (fg('twcg-444-invite-usd-improvements-m2-gate')) {
|
|
137
|
+
const userRecommendationsPromise = getUserRecommendations(recommendationsRequest, intl);
|
|
138
|
+
const userResolversPromises = (userResolvers !== null && userResolvers !== void 0 ? userResolvers : []).map(resolver => resolver(query).catch(error => {
|
|
139
|
+
this.fireEvent(failedUserResolversEvent, {
|
|
140
|
+
resolverName: resolver.name,
|
|
141
|
+
error
|
|
142
|
+
});
|
|
143
|
+
return [];
|
|
144
|
+
}));
|
|
145
|
+
const [mainRecommendations, ...userResolverResults] = await Promise.all([userRecommendationsPromise, ...userResolversPromises]);
|
|
146
|
+
recommendedUsers = [mainRecommendations, ...userResolverResults].flat();
|
|
147
|
+
} else {
|
|
148
|
+
recommendedUsers = await getUserRecommendations(recommendationsRequest, intl);
|
|
149
|
+
}
|
|
134
150
|
if (overrideByline) {
|
|
135
151
|
for (let option of recommendedUsers) {
|
|
136
152
|
if (isUser(option) || isExternalUser(option) || isTeam(option)) {
|
|
@@ -150,7 +166,10 @@ export class SmartUserPickerWithoutAnalytics extends React.Component {
|
|
|
150
166
|
elapsedTimeMilli,
|
|
151
167
|
displayedUsers: getUsersForAnalytics(displayedUsers),
|
|
152
168
|
productAttributes,
|
|
153
|
-
applicable
|
|
169
|
+
applicable,
|
|
170
|
+
...(fg('twcg-444-invite-usd-improvements-m2-gate') && {
|
|
171
|
+
userResolvers: Array.isArray(userResolvers) ? userResolvers.map(resolver => resolver.name) : []
|
|
172
|
+
})
|
|
154
173
|
});
|
|
155
174
|
return {
|
|
156
175
|
users,
|
|
@@ -349,6 +368,7 @@ _defineProperty(SmartUserPickerWithoutAnalytics, "defaultProps", {
|
|
|
349
368
|
includeNonLicensedUsers: false,
|
|
350
369
|
prefetch: false,
|
|
351
370
|
principalId: 'Context',
|
|
352
|
-
debounceTime: DEFAULT_DEBOUNCE_TIME_MS
|
|
371
|
+
debounceTime: DEFAULT_DEBOUNCE_TIME_MS,
|
|
372
|
+
userResolvers: []
|
|
353
373
|
});
|
|
354
374
|
export const SmartUserPicker = withAnalyticsEvents()(injectIntl(SmartUserPickerWithoutAnalytics));
|
package/dist/esm/analytics.js
CHANGED
|
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
import { createAndFireEvent } from '@atlaskit/analytics-next';
|
|
5
5
|
import { v4 as uuid } from 'uuid';
|
|
6
6
|
var packageName = "@atlaskit/smart-user-picker";
|
|
7
|
-
var packageVersion = "8.0
|
|
7
|
+
var packageVersion = "8.1.0";
|
|
8
8
|
export var startSession = function startSession() {
|
|
9
9
|
return {
|
|
10
10
|
id: uuid(),
|
|
@@ -90,4 +90,8 @@ export var successfulRequestUsersEvent = function successfulRequestUsersEvent(pr
|
|
|
90
90
|
export var failedRequestUsersEvent = function failedRequestUsersEvent(props, state) {
|
|
91
91
|
var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
92
92
|
return createSmartUserPickerEvent('failed', 'usersRequest', _objectSpread(_objectSpread({}, createDefaultSmartPickerAttributes(props, state)), attributes));
|
|
93
|
+
};
|
|
94
|
+
export var failedUserResolversEvent = function failedUserResolversEvent(props, state) {
|
|
95
|
+
var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
96
|
+
return createSmartUserPickerEvent('failed', 'userResolversRequest', _objectSpread(_objectSpread({}, createDefaultSmartPickerAttributes(props, state)), attributes));
|
|
93
97
|
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
+
import _toArray from "@babel/runtime/helpers/toArray";
|
|
2
4
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
5
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
6
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -6,9 +8,9 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
6
8
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
9
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
8
10
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
11
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
9
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; }
|
|
10
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) { _defineProperty(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; }
|
|
11
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
12
14
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
13
15
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
16
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -22,7 +24,8 @@ import memoizeOne from 'memoize-one';
|
|
|
22
24
|
import { injectIntl } from 'react-intl-next';
|
|
23
25
|
import { UFOExperienceState } from '@atlaskit/ufo';
|
|
24
26
|
import UserPicker, { isExternalUser, isTeam, isUser } from '@atlaskit/user-picker';
|
|
25
|
-
import {
|
|
27
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
28
|
+
import { requestUsersEvent, filterUsersEvent, preparedUsersLoadedEvent, successfulRequestUsersEvent, failedRequestUsersEvent, mountedWithPrefetchEvent, createAndFireEventInElementsChannel, failedUserResolversEvent } from '../analytics';
|
|
26
29
|
import MessagesIntlProvider from './MessagesIntlProvider';
|
|
27
30
|
import { getUserRecommendations, hydrateDefaultValues } from '../service';
|
|
28
31
|
import { smartUserPickerOptionsShownUfoExperience } from '../ufoExperiences';
|
|
@@ -98,12 +101,12 @@ export var SmartUserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Compo
|
|
|
98
101
|
});
|
|
99
102
|
_defineProperty(_this, "memoizedFilterOptions", memoizeOne(_this.filterOptions));
|
|
100
103
|
_defineProperty(_this, "getUsers", debounce( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
101
|
-
var _this$state, query, sessionId, closed, _this$props, baseUrl, childObjectId, containerId, fieldId, includeGroups, includeTeams, includeUsers, includeNonLicensedUsers, intl, maxOptions, objectId, onEmpty, onError, overrideByline, orgId, principalId, productAttributes, productKey, searchQueryFilter, siteId, transformOptions, maxNumberOfResults, startTime, recommendationsRequest, _yield$onEmpty, _query, recommendedUsers, _iterator, _step, option, elapsedTimeMilli, transformedOptions, displayedUsers, is5xxEvent, onErrorProducedError, defaultUsers, _elapsedTimeMilli;
|
|
104
|
+
var _this$state, query, sessionId, closed, _this$props, baseUrl, childObjectId, containerId, fieldId, includeGroups, includeTeams, includeUsers, includeNonLicensedUsers, intl, maxOptions, objectId, onEmpty, onError, overrideByline, orgId, principalId, productAttributes, productKey, searchQueryFilter, siteId, transformOptions, userResolvers, maxNumberOfResults, startTime, recommendationsRequest, _yield$onEmpty, _query, recommendedUsers, userRecommendationsPromise, userResolversPromises, _yield$Promise$all, _yield$Promise$all2, mainRecommendations, userResolverResults, _iterator, _step, option, elapsedTimeMilli, transformedOptions, displayedUsers, is5xxEvent, onErrorProducedError, defaultUsers, _elapsedTimeMilli;
|
|
102
105
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
103
106
|
while (1) switch (_context.prev = _context.next) {
|
|
104
107
|
case 0:
|
|
105
108
|
_this$state = _this.state, query = _this$state.query, sessionId = _this$state.sessionId, closed = _this$state.closed;
|
|
106
|
-
_this$props = _this.props, baseUrl = _this$props.baseUrl, childObjectId = _this$props.childObjectId, containerId = _this$props.containerId, fieldId = _this$props.fieldId, includeGroups = _this$props.includeGroups, includeTeams = _this$props.includeTeams, includeUsers = _this$props.includeUsers, includeNonLicensedUsers = _this$props.includeNonLicensedUsers, intl = _this$props.intl, maxOptions = _this$props.maxOptions, objectId = _this$props.objectId, onEmpty = _this$props.onEmpty, onError = _this$props.onError, overrideByline = _this$props.overrideByline, orgId = _this$props.orgId, principalId = _this$props.principalId, productAttributes = _this$props.productAttributes, productKey = _this$props.productKey, searchQueryFilter = _this$props.searchQueryFilter, siteId = _this$props.siteId, transformOptions = _this$props.transformOptions;
|
|
109
|
+
_this$props = _this.props, baseUrl = _this$props.baseUrl, childObjectId = _this$props.childObjectId, containerId = _this$props.containerId, fieldId = _this$props.fieldId, includeGroups = _this$props.includeGroups, includeTeams = _this$props.includeTeams, includeUsers = _this$props.includeUsers, includeNonLicensedUsers = _this$props.includeNonLicensedUsers, intl = _this$props.intl, maxOptions = _this$props.maxOptions, objectId = _this$props.objectId, onEmpty = _this$props.onEmpty, onError = _this$props.onError, overrideByline = _this$props.overrideByline, orgId = _this$props.orgId, principalId = _this$props.principalId, productAttributes = _this$props.productAttributes, productKey = _this$props.productKey, searchQueryFilter = _this$props.searchQueryFilter, siteId = _this$props.siteId, transformOptions = _this$props.transformOptions, userResolvers = _this$props.userResolvers;
|
|
107
110
|
maxNumberOfResults = maxOptions || 100;
|
|
108
111
|
startTime = window.performance.now();
|
|
109
112
|
recommendationsRequest = {
|
|
@@ -131,10 +134,36 @@ export var SmartUserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Compo
|
|
|
131
134
|
_context.prev = 5;
|
|
132
135
|
_query = _this.state.query;
|
|
133
136
|
_this.fireEvent(requestUsersEvent);
|
|
134
|
-
|
|
137
|
+
if (!fg('twcg-444-invite-usd-improvements-m2-gate')) {
|
|
138
|
+
_context.next = 20;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
userRecommendationsPromise = getUserRecommendations(recommendationsRequest, intl);
|
|
142
|
+
userResolversPromises = (userResolvers !== null && userResolvers !== void 0 ? userResolvers : []).map(function (resolver) {
|
|
143
|
+
return resolver(_query).catch(function (error) {
|
|
144
|
+
_this.fireEvent(failedUserResolversEvent, {
|
|
145
|
+
resolverName: resolver.name,
|
|
146
|
+
error: error
|
|
147
|
+
});
|
|
148
|
+
return [];
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
_context.next = 13;
|
|
152
|
+
return Promise.all([userRecommendationsPromise].concat(_toConsumableArray(userResolversPromises)));
|
|
153
|
+
case 13:
|
|
154
|
+
_yield$Promise$all = _context.sent;
|
|
155
|
+
_yield$Promise$all2 = _toArray(_yield$Promise$all);
|
|
156
|
+
mainRecommendations = _yield$Promise$all2[0];
|
|
157
|
+
userResolverResults = _yield$Promise$all2.slice(1);
|
|
158
|
+
recommendedUsers = [mainRecommendations].concat(_toConsumableArray(userResolverResults)).flat();
|
|
159
|
+
_context.next = 23;
|
|
160
|
+
break;
|
|
161
|
+
case 20:
|
|
162
|
+
_context.next = 22;
|
|
135
163
|
return getUserRecommendations(recommendationsRequest, intl);
|
|
136
|
-
case
|
|
164
|
+
case 22:
|
|
137
165
|
recommendedUsers = _context.sent;
|
|
166
|
+
case 23:
|
|
138
167
|
if (overrideByline) {
|
|
139
168
|
_iterator = _createForOfIteratorHelper(recommendedUsers);
|
|
140
169
|
try {
|
|
@@ -152,71 +181,75 @@ export var SmartUserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Compo
|
|
|
152
181
|
}
|
|
153
182
|
elapsedTimeMilli = window.performance.now() - startTime;
|
|
154
183
|
if (!transformOptions) {
|
|
155
|
-
_context.next =
|
|
184
|
+
_context.next = 31;
|
|
156
185
|
break;
|
|
157
186
|
}
|
|
158
|
-
_context.next =
|
|
187
|
+
_context.next = 28;
|
|
159
188
|
return transformOptions(recommendedUsers, _query);
|
|
160
|
-
case
|
|
189
|
+
case 28:
|
|
161
190
|
_context.t0 = _context.sent;
|
|
162
|
-
_context.next =
|
|
191
|
+
_context.next = 32;
|
|
163
192
|
break;
|
|
164
|
-
case
|
|
193
|
+
case 31:
|
|
165
194
|
_context.t0 = recommendedUsers;
|
|
166
|
-
case
|
|
195
|
+
case 32:
|
|
167
196
|
transformedOptions = _context.t0;
|
|
168
197
|
if (!(transformedOptions.length === 0 && onEmpty)) {
|
|
169
|
-
_context.next =
|
|
198
|
+
_context.next = 48;
|
|
170
199
|
break;
|
|
171
200
|
}
|
|
172
|
-
_context.next =
|
|
201
|
+
_context.next = 36;
|
|
173
202
|
return onEmpty(_query);
|
|
174
|
-
case
|
|
203
|
+
case 36:
|
|
175
204
|
_context.t3 = _yield$onEmpty = _context.sent;
|
|
176
205
|
_context.t2 = _context.t3 !== null;
|
|
177
206
|
if (!_context.t2) {
|
|
178
|
-
_context.next =
|
|
207
|
+
_context.next = 40;
|
|
179
208
|
break;
|
|
180
209
|
}
|
|
181
210
|
_context.t2 = _yield$onEmpty !== void 0;
|
|
182
|
-
case
|
|
211
|
+
case 40:
|
|
183
212
|
if (!_context.t2) {
|
|
184
|
-
_context.next =
|
|
213
|
+
_context.next = 44;
|
|
185
214
|
break;
|
|
186
215
|
}
|
|
187
216
|
_context.t4 = _yield$onEmpty;
|
|
188
|
-
_context.next =
|
|
217
|
+
_context.next = 45;
|
|
189
218
|
break;
|
|
190
|
-
case
|
|
219
|
+
case 44:
|
|
191
220
|
_context.t4 = [];
|
|
192
|
-
case
|
|
221
|
+
case 45:
|
|
193
222
|
_context.t1 = _context.t4;
|
|
194
|
-
_context.next =
|
|
223
|
+
_context.next = 49;
|
|
195
224
|
break;
|
|
196
|
-
case
|
|
225
|
+
case 48:
|
|
197
226
|
_context.t1 = transformedOptions;
|
|
198
|
-
case
|
|
227
|
+
case 49:
|
|
199
228
|
displayedUsers = _context.t1;
|
|
200
229
|
_this.setState(function (state) {
|
|
201
230
|
var applicable = state.query === _query;
|
|
202
231
|
var users = applicable ? displayedUsers : state.users;
|
|
203
232
|
var loading = !applicable;
|
|
204
|
-
_this.fireEvent(successfulRequestUsersEvent, {
|
|
233
|
+
_this.fireEvent(successfulRequestUsersEvent, _objectSpread({
|
|
205
234
|
users: getUsersForAnalytics(recommendedUsers),
|
|
206
235
|
elapsedTimeMilli: elapsedTimeMilli,
|
|
207
236
|
displayedUsers: getUsersForAnalytics(displayedUsers),
|
|
208
237
|
productAttributes: productAttributes,
|
|
209
238
|
applicable: applicable
|
|
210
|
-
})
|
|
239
|
+
}, fg('twcg-444-invite-usd-improvements-m2-gate') && {
|
|
240
|
+
userResolvers: Array.isArray(userResolvers) ? userResolvers.map(function (resolver) {
|
|
241
|
+
return resolver.name;
|
|
242
|
+
}) : []
|
|
243
|
+
}));
|
|
211
244
|
return {
|
|
212
245
|
users: users,
|
|
213
246
|
loading: loading
|
|
214
247
|
};
|
|
215
248
|
});
|
|
216
|
-
_context.next =
|
|
249
|
+
_context.next = 82;
|
|
217
250
|
break;
|
|
218
|
-
case
|
|
219
|
-
_context.prev =
|
|
251
|
+
case 53:
|
|
252
|
+
_context.prev = 53;
|
|
220
253
|
_context.t5 = _context["catch"](5);
|
|
221
254
|
is5xxEvent = checkIf500Event(_context.t5.statusCode);
|
|
222
255
|
if (!closed && !onError && is5xxEvent) {
|
|
@@ -229,35 +262,35 @@ export var SmartUserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Compo
|
|
|
229
262
|
});
|
|
230
263
|
onErrorProducedError = false;
|
|
231
264
|
defaultUsers = [];
|
|
232
|
-
_context.prev =
|
|
265
|
+
_context.prev = 60;
|
|
233
266
|
if (!onError) {
|
|
234
|
-
_context.next =
|
|
267
|
+
_context.next = 70;
|
|
235
268
|
break;
|
|
236
269
|
}
|
|
237
|
-
_context.next =
|
|
270
|
+
_context.next = 64;
|
|
238
271
|
return onError(_context.t5, recommendationsRequest);
|
|
239
|
-
case
|
|
272
|
+
case 64:
|
|
240
273
|
_context.t7 = _context.sent;
|
|
241
274
|
if (_context.t7) {
|
|
242
|
-
_context.next =
|
|
275
|
+
_context.next = 67;
|
|
243
276
|
break;
|
|
244
277
|
}
|
|
245
278
|
_context.t7 = [];
|
|
246
|
-
case
|
|
279
|
+
case 67:
|
|
247
280
|
_context.t6 = _context.t7;
|
|
248
|
-
_context.next =
|
|
281
|
+
_context.next = 71;
|
|
249
282
|
break;
|
|
250
|
-
case
|
|
283
|
+
case 70:
|
|
251
284
|
_context.t6 = [];
|
|
252
|
-
case
|
|
285
|
+
case 71:
|
|
253
286
|
defaultUsers = _context.t6;
|
|
254
|
-
_context.next =
|
|
287
|
+
_context.next = 77;
|
|
255
288
|
break;
|
|
256
|
-
case
|
|
257
|
-
_context.prev =
|
|
258
|
-
_context.t8 = _context["catch"](
|
|
289
|
+
case 74:
|
|
290
|
+
_context.prev = 74;
|
|
291
|
+
_context.t8 = _context["catch"](60);
|
|
259
292
|
onErrorProducedError = true;
|
|
260
|
-
case
|
|
293
|
+
case 77:
|
|
261
294
|
if (onErrorProducedError && is5xxEvent) {
|
|
262
295
|
// Log error from fallback data source `onError` to UFO
|
|
263
296
|
_this.optionsShownUfoExperienceInstance.failure(ufoEndStateConfig(_this.props.fieldId));
|
|
@@ -274,11 +307,11 @@ export var SmartUserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Compo
|
|
|
274
307
|
elapsedTimeMilli: _elapsedTimeMilli,
|
|
275
308
|
productAttributes: productAttributes
|
|
276
309
|
});
|
|
277
|
-
case
|
|
310
|
+
case 82:
|
|
278
311
|
case "end":
|
|
279
312
|
return _context.stop();
|
|
280
313
|
}
|
|
281
|
-
}, _callee, null, [[5,
|
|
314
|
+
}, _callee, null, [[5, 53], [60, 74]]);
|
|
282
315
|
})), (_this$props$debounceT = _this.props.debounceTime) !== null && _this$props$debounceT !== void 0 ? _this$props$debounceT : 0));
|
|
283
316
|
_defineProperty(_this, "onInputChange", function (newQuery, sessionId) {
|
|
284
317
|
var query = newQuery || '';
|
|
@@ -467,6 +500,7 @@ _defineProperty(SmartUserPickerWithoutAnalytics, "defaultProps", {
|
|
|
467
500
|
includeNonLicensedUsers: false,
|
|
468
501
|
prefetch: false,
|
|
469
502
|
principalId: 'Context',
|
|
470
|
-
debounceTime: DEFAULT_DEBOUNCE_TIME_MS
|
|
503
|
+
debounceTime: DEFAULT_DEBOUNCE_TIME_MS,
|
|
504
|
+
userResolvers: []
|
|
471
505
|
});
|
|
472
506
|
export var SmartUserPicker = withAnalyticsEvents()(injectIntl(SmartUserPickerWithoutAnalytics));
|
|
@@ -19,3 +19,4 @@ export declare const filterUsersEvent: SmartEventCreator;
|
|
|
19
19
|
export declare const requestUsersEvent: SmartEventCreator;
|
|
20
20
|
export declare const successfulRequestUsersEvent: SmartEventCreator;
|
|
21
21
|
export declare const failedRequestUsersEvent: SmartEventCreator;
|
|
22
|
+
export declare const failedUserResolversEvent: SmartEventCreator;
|
|
@@ -15,6 +15,7 @@ export declare class SmartUserPickerWithoutAnalytics extends React.Component<Pro
|
|
|
15
15
|
prefetch: boolean;
|
|
16
16
|
principalId: string;
|
|
17
17
|
debounceTime: number;
|
|
18
|
+
userResolvers: never[];
|
|
18
19
|
};
|
|
19
20
|
constructor(props: Props & WrappedComponentProps);
|
|
20
21
|
componentDidMount(): Promise<void>;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -196,6 +196,10 @@ export interface SmartProps {
|
|
|
196
196
|
* Called after options are loaded.
|
|
197
197
|
*/
|
|
198
198
|
transformOptions?: TransformOptions;
|
|
199
|
+
/**
|
|
200
|
+
* Optional callback to provide additional user resolvers, such as for fetching and adding users from third party sources
|
|
201
|
+
*/
|
|
202
|
+
userResolvers?: Array<(query: string) => Promise<OptionData[]>>;
|
|
199
203
|
}
|
|
200
204
|
export interface Props extends SmartProps, UserPickerProps, WithAnalyticsEventsProps {
|
|
201
205
|
/**
|
|
@@ -19,3 +19,4 @@ export declare const filterUsersEvent: SmartEventCreator;
|
|
|
19
19
|
export declare const requestUsersEvent: SmartEventCreator;
|
|
20
20
|
export declare const successfulRequestUsersEvent: SmartEventCreator;
|
|
21
21
|
export declare const failedRequestUsersEvent: SmartEventCreator;
|
|
22
|
+
export declare const failedUserResolversEvent: SmartEventCreator;
|
|
@@ -15,6 +15,7 @@ export declare class SmartUserPickerWithoutAnalytics extends React.Component<Pro
|
|
|
15
15
|
prefetch: boolean;
|
|
16
16
|
principalId: string;
|
|
17
17
|
debounceTime: number;
|
|
18
|
+
userResolvers: never[];
|
|
18
19
|
};
|
|
19
20
|
constructor(props: Props & WrappedComponentProps);
|
|
20
21
|
componentDidMount(): Promise<void>;
|
|
@@ -196,6 +196,10 @@ export interface SmartProps {
|
|
|
196
196
|
* Called after options are loaded.
|
|
197
197
|
*/
|
|
198
198
|
transformOptions?: TransformOptions;
|
|
199
|
+
/**
|
|
200
|
+
* Optional callback to provide additional user resolvers, such as for fetching and adding users from third party sources
|
|
201
|
+
*/
|
|
202
|
+
userResolvers?: Array<(query: string) => Promise<OptionData[]>>;
|
|
199
203
|
}
|
|
200
204
|
export interface Props extends SmartProps, UserPickerProps, WithAnalyticsEventsProps {
|
|
201
205
|
/**
|
package/option/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-user-picker",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.2.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -39,8 +39,9 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@atlaskit/analytics-next": "^11.1.0",
|
|
42
|
+
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
42
43
|
"@atlaskit/ufo": "^0.4.0",
|
|
43
|
-
"@atlaskit/user-picker": "^11.
|
|
44
|
+
"@atlaskit/user-picker": "^11.6.0",
|
|
44
45
|
"@babel/runtime": "^7.0.0",
|
|
45
46
|
"lodash": "^4.17.21",
|
|
46
47
|
"memoize-one": "^6.0.0",
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@atlaskit/select": "^21.2.0",
|
|
56
|
-
"@atlaskit/util-data-test": "^18.
|
|
57
|
+
"@atlaskit/util-data-test": "^18.1.0",
|
|
57
58
|
"@testing-library/dom": "^10.1.0",
|
|
58
59
|
"@testing-library/react": "^13.4.0",
|
|
59
60
|
"@testing-library/user-event": "^14.4.3",
|
|
@@ -61,5 +62,10 @@
|
|
|
61
62
|
"fetch-mock": "^8.0.0",
|
|
62
63
|
"graphql-tag": "^2.10.1",
|
|
63
64
|
"mock-apollo-client": "^0.1.0"
|
|
65
|
+
},
|
|
66
|
+
"platform-feature-flags": {
|
|
67
|
+
"twcg-444-invite-usd-improvements-m2-gate": {
|
|
68
|
+
"type": "boolean"
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
71
|
}
|