@atlaskit/smart-user-picker 8.2.0 → 8.3.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 (173) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/afm-cc/tsconfig.json +3 -3
  3. package/afm-dev-agents/tsconfig.json +3 -0
  4. package/afm-jira/tsconfig.json +3 -0
  5. package/afm-passionfruit/tsconfig.json +3 -0
  6. package/afm-post-office/tsconfig.json +3 -0
  7. package/afm-rovo-extension/tsconfig.json +3 -0
  8. package/afm-townsquare/tsconfig.json +3 -0
  9. package/dist/cjs/analytics.js +1 -1
  10. package/dist/cjs/components/SmartUserPicker.js +119 -58
  11. package/dist/cjs/i18n/cs.js +3 -12
  12. package/dist/cjs/i18n/da.js +3 -12
  13. package/dist/cjs/i18n/de.js +3 -12
  14. package/dist/cjs/i18n/en.js +3 -12
  15. package/dist/cjs/i18n/en_GB.js +3 -12
  16. package/dist/cjs/i18n/en_ZZ.js +3 -12
  17. package/dist/cjs/i18n/es.js +3 -12
  18. package/dist/cjs/i18n/fi.js +3 -12
  19. package/dist/cjs/i18n/fr.js +3 -12
  20. package/dist/cjs/i18n/hr.js +3 -12
  21. package/dist/cjs/i18n/hu.js +3 -12
  22. package/dist/cjs/i18n/it.js +3 -12
  23. package/dist/cjs/i18n/ja.js +3 -12
  24. package/dist/cjs/i18n/ko.js +3 -12
  25. package/dist/cjs/i18n/nb.js +3 -12
  26. package/dist/cjs/i18n/nl.js +3 -12
  27. package/dist/cjs/i18n/pl.js +3 -12
  28. package/dist/cjs/i18n/pt_BR.js +3 -12
  29. package/dist/cjs/i18n/ru.js +3 -12
  30. package/dist/cjs/i18n/sl.js +3 -12
  31. package/dist/cjs/i18n/sr_RS.js +3 -12
  32. package/dist/cjs/i18n/sr_YR.js +3 -12
  33. package/dist/cjs/i18n/sv.js +3 -12
  34. package/dist/cjs/i18n/th.js +3 -12
  35. package/dist/cjs/i18n/tr.js +3 -12
  36. package/dist/cjs/i18n/uk.js +3 -12
  37. package/dist/cjs/i18n/vi.js +3 -12
  38. package/dist/cjs/i18n/zh.js +3 -12
  39. package/dist/cjs/i18n/zh_TW.js +3 -12
  40. package/dist/cjs/service/recommendation-client.js +1 -1
  41. package/dist/cjs/service/users-transformer.js +1 -0
  42. package/dist/cjs/types.js +8 -1
  43. package/dist/es2019/analytics.js +1 -1
  44. package/dist/es2019/components/SmartUserPicker.js +65 -9
  45. package/dist/es2019/i18n/cs.js +3 -12
  46. package/dist/es2019/i18n/da.js +3 -12
  47. package/dist/es2019/i18n/de.js +3 -12
  48. package/dist/es2019/i18n/en.js +3 -12
  49. package/dist/es2019/i18n/en_GB.js +3 -12
  50. package/dist/es2019/i18n/en_ZZ.js +3 -12
  51. package/dist/es2019/i18n/es.js +3 -12
  52. package/dist/es2019/i18n/fi.js +3 -12
  53. package/dist/es2019/i18n/fr.js +3 -12
  54. package/dist/es2019/i18n/hr.js +3 -12
  55. package/dist/es2019/i18n/hu.js +3 -12
  56. package/dist/es2019/i18n/it.js +3 -12
  57. package/dist/es2019/i18n/ja.js +3 -12
  58. package/dist/es2019/i18n/ko.js +3 -12
  59. package/dist/es2019/i18n/nb.js +3 -12
  60. package/dist/es2019/i18n/nl.js +3 -12
  61. package/dist/es2019/i18n/pl.js +3 -12
  62. package/dist/es2019/i18n/pt_BR.js +3 -12
  63. package/dist/es2019/i18n/ru.js +3 -12
  64. package/dist/es2019/i18n/sl.js +3 -12
  65. package/dist/es2019/i18n/sr_RS.js +3 -12
  66. package/dist/es2019/i18n/sr_YR.js +3 -12
  67. package/dist/es2019/i18n/sv.js +3 -12
  68. package/dist/es2019/i18n/th.js +3 -12
  69. package/dist/es2019/i18n/tr.js +3 -12
  70. package/dist/es2019/i18n/uk.js +3 -12
  71. package/dist/es2019/i18n/vi.js +3 -12
  72. package/dist/es2019/i18n/zh.js +3 -12
  73. package/dist/es2019/i18n/zh_TW.js +3 -12
  74. package/dist/es2019/service/recommendation-client.js +1 -1
  75. package/dist/es2019/service/users-transformer.js +1 -0
  76. package/dist/es2019/types.js +7 -0
  77. package/dist/esm/analytics.js +1 -1
  78. package/dist/esm/components/SmartUserPicker.js +119 -58
  79. package/dist/esm/i18n/cs.js +3 -12
  80. package/dist/esm/i18n/da.js +3 -12
  81. package/dist/esm/i18n/de.js +3 -12
  82. package/dist/esm/i18n/en.js +3 -12
  83. package/dist/esm/i18n/en_GB.js +3 -12
  84. package/dist/esm/i18n/en_ZZ.js +3 -12
  85. package/dist/esm/i18n/es.js +3 -12
  86. package/dist/esm/i18n/fi.js +3 -12
  87. package/dist/esm/i18n/fr.js +3 -12
  88. package/dist/esm/i18n/hr.js +3 -12
  89. package/dist/esm/i18n/hu.js +3 -12
  90. package/dist/esm/i18n/it.js +3 -12
  91. package/dist/esm/i18n/ja.js +3 -12
  92. package/dist/esm/i18n/ko.js +3 -12
  93. package/dist/esm/i18n/nb.js +3 -12
  94. package/dist/esm/i18n/nl.js +3 -12
  95. package/dist/esm/i18n/pl.js +3 -12
  96. package/dist/esm/i18n/pt_BR.js +3 -12
  97. package/dist/esm/i18n/ru.js +3 -12
  98. package/dist/esm/i18n/sl.js +3 -12
  99. package/dist/esm/i18n/sr_RS.js +3 -12
  100. package/dist/esm/i18n/sr_YR.js +3 -12
  101. package/dist/esm/i18n/sv.js +3 -12
  102. package/dist/esm/i18n/th.js +3 -12
  103. package/dist/esm/i18n/tr.js +3 -12
  104. package/dist/esm/i18n/uk.js +3 -12
  105. package/dist/esm/i18n/vi.js +3 -12
  106. package/dist/esm/i18n/zh.js +3 -12
  107. package/dist/esm/i18n/zh_TW.js +3 -12
  108. package/dist/esm/service/recommendation-client.js +1 -1
  109. package/dist/esm/service/users-transformer.js +1 -0
  110. package/dist/esm/types.js +7 -0
  111. package/dist/types/components/SmartUserPicker.d.ts +4 -0
  112. package/dist/types/i18n/cs.d.ts +2 -12
  113. package/dist/types/i18n/da.d.ts +2 -12
  114. package/dist/types/i18n/de.d.ts +2 -12
  115. package/dist/types/i18n/en.d.ts +2 -12
  116. package/dist/types/i18n/en_GB.d.ts +2 -12
  117. package/dist/types/i18n/en_ZZ.d.ts +2 -12
  118. package/dist/types/i18n/es.d.ts +2 -12
  119. package/dist/types/i18n/fi.d.ts +2 -12
  120. package/dist/types/i18n/fr.d.ts +2 -12
  121. package/dist/types/i18n/hr.d.ts +2 -12
  122. package/dist/types/i18n/hu.d.ts +2 -12
  123. package/dist/types/i18n/it.d.ts +2 -12
  124. package/dist/types/i18n/ja.d.ts +2 -12
  125. package/dist/types/i18n/ko.d.ts +2 -12
  126. package/dist/types/i18n/nb.d.ts +2 -12
  127. package/dist/types/i18n/nl.d.ts +2 -12
  128. package/dist/types/i18n/pl.d.ts +2 -12
  129. package/dist/types/i18n/pt_BR.d.ts +2 -12
  130. package/dist/types/i18n/ru.d.ts +2 -12
  131. package/dist/types/i18n/sl.d.ts +2 -12
  132. package/dist/types/i18n/sr_RS.d.ts +2 -12
  133. package/dist/types/i18n/sr_YR.d.ts +2 -12
  134. package/dist/types/i18n/sv.d.ts +2 -12
  135. package/dist/types/i18n/th.d.ts +2 -12
  136. package/dist/types/i18n/tr.d.ts +2 -12
  137. package/dist/types/i18n/uk.d.ts +2 -12
  138. package/dist/types/i18n/vi.d.ts +2 -12
  139. package/dist/types/i18n/zh.d.ts +2 -12
  140. package/dist/types/i18n/zh_TW.d.ts +2 -12
  141. package/dist/types/types.d.ts +29 -0
  142. package/dist/types-ts4.5/components/SmartUserPicker.d.ts +4 -0
  143. package/dist/types-ts4.5/i18n/cs.d.ts +2 -12
  144. package/dist/types-ts4.5/i18n/da.d.ts +2 -12
  145. package/dist/types-ts4.5/i18n/de.d.ts +2 -12
  146. package/dist/types-ts4.5/i18n/en.d.ts +2 -12
  147. package/dist/types-ts4.5/i18n/en_GB.d.ts +2 -12
  148. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +2 -12
  149. package/dist/types-ts4.5/i18n/es.d.ts +2 -12
  150. package/dist/types-ts4.5/i18n/fi.d.ts +2 -12
  151. package/dist/types-ts4.5/i18n/fr.d.ts +2 -12
  152. package/dist/types-ts4.5/i18n/hr.d.ts +2 -12
  153. package/dist/types-ts4.5/i18n/hu.d.ts +2 -12
  154. package/dist/types-ts4.5/i18n/it.d.ts +2 -12
  155. package/dist/types-ts4.5/i18n/ja.d.ts +2 -12
  156. package/dist/types-ts4.5/i18n/ko.d.ts +2 -12
  157. package/dist/types-ts4.5/i18n/nb.d.ts +2 -12
  158. package/dist/types-ts4.5/i18n/nl.d.ts +2 -12
  159. package/dist/types-ts4.5/i18n/pl.d.ts +2 -12
  160. package/dist/types-ts4.5/i18n/pt_BR.d.ts +2 -12
  161. package/dist/types-ts4.5/i18n/ru.d.ts +2 -12
  162. package/dist/types-ts4.5/i18n/sl.d.ts +2 -12
  163. package/dist/types-ts4.5/i18n/sr_RS.d.ts +2 -12
  164. package/dist/types-ts4.5/i18n/sr_YR.d.ts +2 -12
  165. package/dist/types-ts4.5/i18n/sv.d.ts +2 -12
  166. package/dist/types-ts4.5/i18n/th.d.ts +2 -12
  167. package/dist/types-ts4.5/i18n/tr.d.ts +2 -12
  168. package/dist/types-ts4.5/i18n/uk.d.ts +2 -12
  169. package/dist/types-ts4.5/i18n/vi.d.ts +2 -12
  170. package/dist/types-ts4.5/i18n/zh.d.ts +2 -12
  171. package/dist/types-ts4.5/i18n/zh_TW.d.ts +2 -12
  172. package/dist/types-ts4.5/types.d.ts +29 -0
  173. package/package.json +5 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atlassian/smart-user-picker
2
2
 
3
+ ## 8.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`be2f98085fa9f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/be2f98085fa9f) -
8
+ [ux] Introduce additional email props to smart user picker (displayEmailInByline,
9
+ enableEmailSearch, allowEmailSelectionWhenEmailMatched) and one type adjustment to user picker
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 8.2.1
16
+
17
+ ### Patch Changes
18
+
19
+ - [`411addc8f1770`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/411addc8f1770) -
20
+ Migrate elements, search, smart-experiences, web-platform, forge, jql and bitbucket pkgs to use
21
+ i18n NPM pkgs from Traduki
22
+ - Updated dependencies
23
+
3
24
  ## 8.2.0
4
25
 
5
26
  ### Minor Changes
@@ -2,9 +2,9 @@
2
2
  "extends": "../../../../tsconfig.entry-points.confluence.json",
3
3
  "compilerOptions": {
4
4
  "target": "es5",
5
- "composite": true,
6
5
  "outDir": "../../../../../confluence/tsDist/@atlaskit__smart-user-picker",
7
- "rootDir": "../"
6
+ "rootDir": "../",
7
+ "composite": true
8
8
  },
9
9
  "include": [
10
10
  "../src/**/*.ts",
@@ -35,4 +35,4 @@
35
35
  "path": "../../../elements/user-picker/afm-cc/tsconfig.json"
36
36
  }
37
37
  ]
38
- }
38
+ }
@@ -25,6 +25,9 @@
25
25
  {
26
26
  "path": "../../../analytics/analytics-next/afm-dev-agents/tsconfig.json"
27
27
  },
28
+ {
29
+ "path": "../../../platform/feature-flags/afm-dev-agents/tsconfig.json"
30
+ },
28
31
  {
29
32
  "path": "../../../data/ufo-external/afm-dev-agents/tsconfig.json"
30
33
  },
@@ -25,6 +25,9 @@
25
25
  {
26
26
  "path": "../../../analytics/analytics-next/afm-jira/tsconfig.json"
27
27
  },
28
+ {
29
+ "path": "../../../platform/feature-flags/afm-jira/tsconfig.json"
30
+ },
28
31
  {
29
32
  "path": "../../../data/ufo-external/afm-jira/tsconfig.json"
30
33
  },
@@ -25,6 +25,9 @@
25
25
  {
26
26
  "path": "../../../analytics/analytics-next/afm-passionfruit/tsconfig.json"
27
27
  },
28
+ {
29
+ "path": "../../../platform/feature-flags/afm-passionfruit/tsconfig.json"
30
+ },
28
31
  {
29
32
  "path": "../../../data/ufo-external/afm-passionfruit/tsconfig.json"
30
33
  },
@@ -25,6 +25,9 @@
25
25
  {
26
26
  "path": "../../../analytics/analytics-next/afm-post-office/tsconfig.json"
27
27
  },
28
+ {
29
+ "path": "../../../platform/feature-flags/afm-post-office/tsconfig.json"
30
+ },
28
31
  {
29
32
  "path": "../../../data/ufo-external/afm-post-office/tsconfig.json"
30
33
  },
@@ -25,6 +25,9 @@
25
25
  {
26
26
  "path": "../../../analytics/analytics-next/afm-rovo-extension/tsconfig.json"
27
27
  },
28
+ {
29
+ "path": "../../../platform/feature-flags/afm-rovo-extension/tsconfig.json"
30
+ },
28
31
  {
29
32
  "path": "../../../data/ufo-external/afm-rovo-extension/tsconfig.json"
30
33
  },
@@ -25,6 +25,9 @@
25
25
  {
26
26
  "path": "../../../analytics/analytics-next/afm-townsquare/tsconfig.json"
27
27
  },
28
+ {
29
+ "path": "../../../platform/feature-flags/afm-townsquare/tsconfig.json"
30
+ },
28
31
  {
29
32
  "path": "../../../data/ufo-external/afm-townsquare/tsconfig.json"
30
33
  },
@@ -11,7 +11,7 @@ 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.1.0";
14
+ var packageVersion = "8.2.1";
15
15
  var startSession = exports.startSession = function startSession() {
16
16
  return {
17
17
  id: (0, _uuid.v4)(),
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.SmartUserPickerWithoutAnalytics = exports.SmartUserPicker = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
13
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
13
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
@@ -28,8 +29,10 @@ var _userPicker = _interopRequireWildcard(require("@atlaskit/user-picker"));
28
29
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
29
30
  var _analytics = require("../analytics");
30
31
  var _MessagesIntlProvider = _interopRequireDefault(require("./MessagesIntlProvider"));
32
+ var _types = require("../types");
31
33
  var _service = require("../service");
32
34
  var _ufoExperiences = require("../ufoExperiences");
35
+ var _excluded = ["allowEmail", "enableEmailSearch", "allowEmailSelectionWhenEmailMatched"];
33
36
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
34
37
  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; }
35
38
  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; }
@@ -71,6 +74,9 @@ var getUsersForAnalytics = function getUsersForAnalytics(users) {
71
74
  var checkIf500Event = function checkIf500Event(statusCode) {
72
75
  return 500 <= statusCode && statusCode < 600;
73
76
  };
77
+ var isEmailQuery = function isEmailQuery(query) {
78
+ return (0, _userPicker.isValidEmail)(query.trim()) === 'VALID';
79
+ };
74
80
  var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics = /*#__PURE__*/function (_React$Component) {
75
81
  function SmartUserPickerWithoutAnalytics(props) {
76
82
  var _this$props$debounceT;
@@ -85,6 +91,8 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
85
91
  defaultValue: [],
86
92
  bootstrapOptions: []
87
93
  });
94
+ // Track if the last search was an email search that found matches
95
+ (0, _defineProperty2.default)(_this, "lastEmailSearchFoundMatches", false);
88
96
  (0, _defineProperty2.default)(_this, "abortOptionsShownUfoExperience", function () {
89
97
  if (_this.optionsShownUfoExperienceInstance.state.id === _ufo.UFOExperienceState.STARTED.id) {
90
98
  // There may be an existing UFO timing running from previous key entry or focus,
@@ -110,14 +118,15 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
110
118
  });
111
119
  (0, _defineProperty2.default)(_this, "memoizedFilterOptions", (0, _memoizeOne.default)(_this.filterOptions));
112
120
  (0, _defineProperty2.default)(_this, "getUsers", (0, _debounce.default)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
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;
121
+ var _this$state, query, sessionId, closed, _this$props, baseUrl, childObjectId, containerId, fieldId, includeGroups, includeTeams, includeUsers, includeNonLicensedUsers, intl, maxOptions, objectId, onEmpty, onError, overrideByline, displayEmailInByline, orgId, principalId, productAttributes, productKey, searchQueryFilter, siteId, transformOptions, userResolvers, enableEmailSearch, maxNumberOfResults, startTime, isEmail, recommendationsRequest, _yield$onEmpty, _query, recommendedUsers, userRecommendationsPromise, userResolversPromises, _yield$Promise$all, _yield$Promise$all2, mainRecommendations, userResolverResults, _iterator, _step, option, _iterator2, _step2, _option, elapsedTimeMilli, transformedOptions, displayedUsers, is5xxEvent, onErrorProducedError, defaultUsers, _elapsedTimeMilli;
114
122
  return _regenerator.default.wrap(function _callee$(_context) {
115
123
  while (1) switch (_context.prev = _context.next) {
116
124
  case 0:
117
125
  _this$state = _this.state, query = _this$state.query, sessionId = _this$state.sessionId, closed = _this$state.closed;
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;
126
+ _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, displayEmailInByline = _this$props.displayEmailInByline, 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, enableEmailSearch = _this$props.enableEmailSearch;
119
127
  maxNumberOfResults = maxOptions || 100;
120
- startTime = window.performance.now();
128
+ startTime = window.performance.now(); // Check if this is an email search
129
+ isEmail = enableEmailSearch && isEmailQuery(query);
121
130
  recommendationsRequest = {
122
131
  baseUrl: baseUrl,
123
132
  context: {
@@ -133,18 +142,27 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
133
142
  productAttributes: productAttributes
134
143
  },
135
144
  includeUsers: includeUsers,
136
- includeGroups: includeGroups,
137
- includeTeams: includeTeams,
145
+ // For email searches, disable groups and teams
146
+ includeGroups: isEmail ? false : includeGroups,
147
+ includeTeams: isEmail ? false : includeTeams,
138
148
  includeNonLicensedUsers: includeNonLicensedUsers,
139
149
  maxNumberOfResults: maxNumberOfResults,
140
- query: query,
141
- searchQueryFilter: searchQueryFilter
150
+ // For email searches, leverage customQuery instead of queryString
151
+ query: isEmail ? '' : query,
152
+ customQuery: isEmail ? "(email:\"".concat(query.trim(), "\")") : '',
153
+ /*
154
+ For email-based searches, we have decided to filter out apps.
155
+ Also - because the other 2 filters ((NOT not_mentionable:true) AND (account_status:active)) are included
156
+ when filter is empty, they have been added here to maintain consistency.
157
+ Further ref: https://developer.atlassian.com/platform/user-recommendations/guides/frequently-asked-questions/#filter-behavior
158
+ */
159
+ searchQueryFilter: isEmail && !searchQueryFilter ? '(NOT not_mentionable:true) AND (account_status:active) AND (NOT account_type:app)' : searchQueryFilter
142
160
  };
143
- _context.prev = 5;
161
+ _context.prev = 6;
144
162
  _query = _this.state.query;
145
163
  _this.fireEvent(_analytics.requestUsersEvent);
146
164
  if (!(0, _platformFeatureFlags.fg)('twcg-444-invite-usd-improvements-m2-gate')) {
147
- _context.next = 20;
165
+ _context.next = 21;
148
166
  break;
149
167
  }
150
168
  userRecommendationsPromise = (0, _service.getUserRecommendations)(recommendationsRequest, intl);
@@ -157,22 +175,22 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
157
175
  return [];
158
176
  });
159
177
  });
160
- _context.next = 13;
178
+ _context.next = 14;
161
179
  return Promise.all([userRecommendationsPromise].concat((0, _toConsumableArray2.default)(userResolversPromises)));
162
- case 13:
180
+ case 14:
163
181
  _yield$Promise$all = _context.sent;
164
182
  _yield$Promise$all2 = (0, _toArray2.default)(_yield$Promise$all);
165
183
  mainRecommendations = _yield$Promise$all2[0];
166
184
  userResolverResults = _yield$Promise$all2.slice(1);
167
185
  recommendedUsers = [mainRecommendations].concat((0, _toConsumableArray2.default)(userResolverResults)).flat();
168
- _context.next = 23;
186
+ _context.next = 24;
169
187
  break;
170
- case 20:
171
- _context.next = 22;
188
+ case 21:
189
+ _context.next = 23;
172
190
  return (0, _service.getUserRecommendations)(recommendationsRequest, intl);
173
- case 22:
174
- recommendedUsers = _context.sent;
175
191
  case 23:
192
+ recommendedUsers = _context.sent;
193
+ case 24:
176
194
  if (overrideByline) {
177
195
  _iterator = _createForOfIteratorHelper(recommendedUsers);
178
196
  try {
@@ -188,52 +206,79 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
188
206
  _iterator.f();
189
207
  }
190
208
  }
209
+ if (displayEmailInByline) {
210
+ _iterator2 = _createForOfIteratorHelper(recommendedUsers);
211
+ try {
212
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
213
+ _option = _step2.value;
214
+ if ((0, _userPicker.isUser)(_option) || (0, _userPicker.isExternalUser)(_option)) {
215
+ if (_option.userType === _types.UserEntityType.DEFAULT || _option.userType === _types.UserEntityType.CUSTOMER) {
216
+ // Respect existing byline if present
217
+ if (_option.email && !_option.byline) {
218
+ _option.byline = _option.email;
219
+ }
220
+ }
221
+ }
222
+ }
223
+ } catch (err) {
224
+ _iterator2.e(err);
225
+ } finally {
226
+ _iterator2.f();
227
+ }
228
+ }
229
+
230
+ // Track if email search found matches for conditional allowEmail logic
231
+ if (isEmail) {
232
+ _this.lastEmailSearchFoundMatches = recommendedUsers.length > 0;
233
+ } else {
234
+ _this.lastEmailSearchFoundMatches = false;
235
+ }
191
236
  elapsedTimeMilli = window.performance.now() - startTime;
192
237
  if (!transformOptions) {
193
- _context.next = 31;
238
+ _context.next = 34;
194
239
  break;
195
240
  }
196
- _context.next = 28;
241
+ _context.next = 31;
197
242
  return transformOptions(recommendedUsers, _query);
198
- case 28:
243
+ case 31:
199
244
  _context.t0 = _context.sent;
200
- _context.next = 32;
245
+ _context.next = 35;
201
246
  break;
202
- case 31:
247
+ case 34:
203
248
  _context.t0 = recommendedUsers;
204
- case 32:
249
+ case 35:
205
250
  transformedOptions = _context.t0;
206
251
  if (!(transformedOptions.length === 0 && onEmpty)) {
207
- _context.next = 48;
252
+ _context.next = 51;
208
253
  break;
209
254
  }
210
- _context.next = 36;
255
+ _context.next = 39;
211
256
  return onEmpty(_query);
212
- case 36:
257
+ case 39:
213
258
  _context.t3 = _yield$onEmpty = _context.sent;
214
259
  _context.t2 = _context.t3 !== null;
215
260
  if (!_context.t2) {
216
- _context.next = 40;
261
+ _context.next = 43;
217
262
  break;
218
263
  }
219
264
  _context.t2 = _yield$onEmpty !== void 0;
220
- case 40:
265
+ case 43:
221
266
  if (!_context.t2) {
222
- _context.next = 44;
267
+ _context.next = 47;
223
268
  break;
224
269
  }
225
270
  _context.t4 = _yield$onEmpty;
226
- _context.next = 45;
271
+ _context.next = 48;
227
272
  break;
228
- case 44:
273
+ case 47:
229
274
  _context.t4 = [];
230
- case 45:
275
+ case 48:
231
276
  _context.t1 = _context.t4;
232
- _context.next = 49;
277
+ _context.next = 52;
233
278
  break;
234
- case 48:
279
+ case 51:
235
280
  _context.t1 = transformedOptions;
236
- case 49:
281
+ case 52:
237
282
  displayedUsers = _context.t1;
238
283
  _this.setState(function (state) {
239
284
  var applicable = state.query === _query;
@@ -255,11 +300,11 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
255
300
  loading: loading
256
301
  };
257
302
  });
258
- _context.next = 82;
303
+ _context.next = 85;
259
304
  break;
260
- case 53:
261
- _context.prev = 53;
262
- _context.t5 = _context["catch"](5);
305
+ case 56:
306
+ _context.prev = 56;
307
+ _context.t5 = _context["catch"](6);
263
308
  is5xxEvent = checkIf500Event(_context.t5.statusCode);
264
309
  if (!closed && !onError && is5xxEvent) {
265
310
  // If the user lookup fails while the menu is open, and the consumer is not providing a
@@ -271,35 +316,35 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
271
316
  });
272
317
  onErrorProducedError = false;
273
318
  defaultUsers = [];
274
- _context.prev = 60;
319
+ _context.prev = 63;
275
320
  if (!onError) {
276
- _context.next = 70;
321
+ _context.next = 73;
277
322
  break;
278
323
  }
279
- _context.next = 64;
324
+ _context.next = 67;
280
325
  return onError(_context.t5, recommendationsRequest);
281
- case 64:
326
+ case 67:
282
327
  _context.t7 = _context.sent;
283
328
  if (_context.t7) {
284
- _context.next = 67;
329
+ _context.next = 70;
285
330
  break;
286
331
  }
287
332
  _context.t7 = [];
288
- case 67:
333
+ case 70:
289
334
  _context.t6 = _context.t7;
290
- _context.next = 71;
335
+ _context.next = 74;
291
336
  break;
292
- case 70:
337
+ case 73:
293
338
  _context.t6 = [];
294
- case 71:
339
+ case 74:
295
340
  defaultUsers = _context.t6;
296
- _context.next = 77;
341
+ _context.next = 80;
297
342
  break;
298
- case 74:
299
- _context.prev = 74;
300
- _context.t8 = _context["catch"](60);
301
- onErrorProducedError = true;
302
343
  case 77:
344
+ _context.prev = 77;
345
+ _context.t8 = _context["catch"](63);
346
+ onErrorProducedError = true;
347
+ case 80:
303
348
  if (onErrorProducedError && is5xxEvent) {
304
349
  // Log error from fallback data source `onError` to UFO
305
350
  _this.optionsShownUfoExperienceInstance.failure(ufoEndStateConfig(_this.props.fieldId));
@@ -316,11 +361,11 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
316
361
  elapsedTimeMilli: _elapsedTimeMilli,
317
362
  productAttributes: productAttributes
318
363
  });
319
- case 82:
364
+ case 85:
320
365
  case "end":
321
366
  return _context.stop();
322
367
  }
323
- }, _callee, null, [[5, 53], [60, 74]]);
368
+ }, _callee, null, [[6, 56], [63, 77]]);
324
369
  })), (_this$props$debounceT = _this.props.debounceTime) !== null && _this$props$debounceT !== void 0 ? _this$props$debounceT : 0));
325
370
  (0, _defineProperty2.default)(_this, "onInputChange", function (newQuery, sessionId) {
326
371
  var query = newQuery || '';
@@ -376,7 +421,6 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
376
421
  });
377
422
  (0, _defineProperty2.default)(_this, "onFocus", function (sessionId) {
378
423
  var state = {
379
- query: '',
380
424
  closed: false
381
425
  };
382
426
  _this.startOptionsShownUfoExperience();
@@ -488,7 +532,21 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
488
532
  }, {
489
533
  key: "render",
490
534
  value: function render() {
491
- return /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, /*#__PURE__*/_react.default.createElement(_userPicker.default, (0, _extends2.default)({}, this.props, {
535
+ var _this$props2 = this.props,
536
+ allowEmail = _this$props2.allowEmail,
537
+ enableEmailSearch = _this$props2.enableEmailSearch,
538
+ allowEmailSelectionWhenEmailMatched = _this$props2.allowEmailSelectionWhenEmailMatched,
539
+ restProps = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
540
+
541
+ // Determine whether to allow email selection based on allowEmailSelectionWhenEmailMatched, if needed
542
+ var shouldAllowEmail = allowEmail;
543
+ if (allowEmail && enableEmailSearch && !allowEmailSelectionWhenEmailMatched) {
544
+ // Only allow email selection if we're in an email search that found no matches
545
+ var isCurrentQueryEmail = isEmailQuery(this.state.query);
546
+ shouldAllowEmail = !isCurrentQueryEmail || !this.lastEmailSearchFoundMatches;
547
+ }
548
+ return /*#__PURE__*/_react.default.createElement(_MessagesIntlProvider.default, null, /*#__PURE__*/_react.default.createElement(_userPicker.default, (0, _extends2.default)({}, restProps, {
549
+ allowEmail: shouldAllowEmail,
492
550
  onInputChange: this.onInputChange,
493
551
  onBlur: this.onBlur,
494
552
  onFocus: this.onFocus,
@@ -505,9 +563,12 @@ var SmartUserPickerWithoutAnalytics = exports.SmartUserPickerWithoutAnalytics =
505
563
  includeGroups: false,
506
564
  includeTeams: false,
507
565
  includeNonLicensedUsers: false,
566
+ displayEmailInByline: false,
508
567
  prefetch: false,
509
568
  principalId: 'Context',
510
569
  debounceTime: DEFAULT_DEBOUNCE_TIME_MS,
511
- userResolvers: []
570
+ userResolvers: [],
571
+ enableEmailSearch: false,
572
+ allowEmailSelectionWhenEmailMatched: true
512
573
  });
513
574
  var SmartUserPicker = exports.SmartUserPicker = (0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(SmartUserPickerWithoutAnalytics));
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
8
+ var _cs = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-smart-experiences-smart-user-picker/i18n/cs"));
7
9
  /* prettier-ignore */
8
10
  /**
9
11
  * NOTE:
@@ -11,15 +13,4 @@ exports.default = void 0;
11
13
  * This file is automatically generated by Traduki 2.0.
12
14
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
15
  */
14
- //Czech
15
- var _default = exports.default = {
16
- 'fabric.elements.user-picker.external.sourced.from': 'Nalezen v:',
17
- 'fabric.elements.user-picker.github.provider': 'GitHub',
18
- 'fabric.elements.user-picker.google.provider': 'Google',
19
- 'fabric.elements.user-picker.guest.lozenge.text': 'HOST',
20
- 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Skupiny hostů mají přístup pouze k určitým prostorům a mají omezený přístup k uživatelským údajům.',
21
- 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Hosté mají přístup pouze k určitým prostorům a mají omezený přístup k uživatelským údajům.',
22
- 'fabric.elements.user-picker.member.lozenge.text': 'ČLEN',
23
- 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
24
- 'fabric.elements.user-picker.slack.provider': 'Slack'
25
- };
16
+ var _default = exports.default = _cs.default;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
8
+ var _da = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-smart-experiences-smart-user-picker/i18n/da"));
7
9
  /* prettier-ignore */
8
10
  /**
9
11
  * NOTE:
@@ -11,15 +13,4 @@ exports.default = void 0;
11
13
  * This file is automatically generated by Traduki 2.0.
12
14
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
15
  */
14
- //Danish (Denmark)
15
- var _default = exports.default = {
16
- 'fabric.elements.user-picker.external.sourced.from': 'Fundet i:',
17
- 'fabric.elements.user-picker.github.provider': 'GitHub',
18
- 'fabric.elements.user-picker.google.provider': 'Google',
19
- 'fabric.elements.user-picker.guest.lozenge.text': 'GÆST',
20
- 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Gæstegrupper har kun adgang til bestemte områder og har begrænset adgang til brugeroplysninger.',
21
- 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Gæster har kun adgang til bestemte områder og har begrænset adgang til brugeroplysninger.',
22
- 'fabric.elements.user-picker.member.lozenge.text': 'Medlem',
23
- 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
24
- 'fabric.elements.user-picker.slack.provider': 'Slack'
25
- };
16
+ var _default = exports.default = _da.default;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
8
+ var _de = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-smart-experiences-smart-user-picker/i18n/de"));
7
9
  /* prettier-ignore */
8
10
  /**
9
11
  * NOTE:
@@ -11,15 +13,4 @@ exports.default = void 0;
11
13
  * This file is automatically generated by Traduki 2.0.
12
14
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
15
  */
14
- //German (Germany)
15
- var _default = exports.default = {
16
- 'fabric.elements.user-picker.external.sourced.from': 'Gefunden in:',
17
- 'fabric.elements.user-picker.github.provider': 'GitHub',
18
- 'fabric.elements.user-picker.google.provider': 'Google',
19
- 'fabric.elements.user-picker.guest.lozenge.text': 'GAST',
20
- 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Gästegruppen können ausschließlich auf ausgewählte Bereiche zugreifen und verfügen über eingeschränkten Zugriff auf Benutzerinformationen.',
21
- 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Gäste können ausschließlich auf ausgewählte Bereiche zugreifen und verfügen über eingeschränkten Zugriff auf Benutzerinformationen.',
22
- 'fabric.elements.user-picker.member.lozenge.text': 'Mitglied',
23
- 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
24
- 'fabric.elements.user-picker.slack.provider': 'Slack'
25
- };
16
+ var _default = exports.default = _de.default;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
8
+ var _en = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-smart-experiences-smart-user-picker/i18n/en"));
7
9
  /* prettier-ignore */
8
10
  /**
9
11
  * NOTE:
@@ -11,15 +13,4 @@ exports.default = void 0;
11
13
  * This file is automatically generated by Traduki 2.0.
12
14
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
15
  */
14
- //
15
- var _default = exports.default = {
16
- 'fabric.elements.user-picker.external.sourced.from': 'Found in:',
17
- 'fabric.elements.user-picker.github.provider': 'GitHub',
18
- 'fabric.elements.user-picker.google.provider': 'Google',
19
- 'fabric.elements.user-picker.guest.lozenge.text': 'GUEST',
20
- 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Guest groups can only access certain spaces and have limited access to user info.',
21
- 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Guests can only access certain spaces and have limited access to user info.',
22
- 'fabric.elements.user-picker.member.lozenge.text': 'MEMBER',
23
- 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
24
- 'fabric.elements.user-picker.slack.provider': 'Slack'
25
- };
16
+ var _default = exports.default = _en.default;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
8
+ var _en_GB = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-smart-experiences-smart-user-picker/i18n/en_GB"));
7
9
  /* prettier-ignore */
8
10
  /**
9
11
  * NOTE:
@@ -11,15 +13,4 @@ exports.default = void 0;
11
13
  * This file is automatically generated by Traduki 2.0.
12
14
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
15
  */
14
- //English (United Kingdom)
15
- var _default = exports.default = {
16
- 'fabric.elements.user-picker.external.sourced.from': 'Found in:',
17
- 'fabric.elements.user-picker.github.provider': 'GitHub',
18
- 'fabric.elements.user-picker.google.provider': 'Google',
19
- 'fabric.elements.user-picker.guest.lozenge.text': 'GUEST',
20
- 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Guest groups can only access certain spaces and have limited access to user info.',
21
- 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Guests can only access certain spaces and have limited access to user info.',
22
- 'fabric.elements.user-picker.member.lozenge.text': 'MEMBER',
23
- 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
24
- 'fabric.elements.user-picker.slack.provider': 'Slack'
25
- };
16
+ var _default = exports.default = _en_GB.default;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
8
+ var _en_ZZ = _interopRequireDefault(require("@atlaskit/afm-i18n-platform-smart-experiences-smart-user-picker/i18n/en_ZZ"));
7
9
  /* prettier-ignore */
8
10
  /**
9
11
  * NOTE:
@@ -11,15 +13,4 @@ exports.default = void 0;
11
13
  * This file is automatically generated by Traduki 2.0.
12
14
  * DO NOT CHANGE IT BY HAND or your changes will be lost.
13
15
  */
14
- //
15
- var _default = exports.default = {
16
- 'fabric.elements.user-picker.external.sourced.from': '⁣⁢Found in:؜‍⁠⁠‌؜‍⁠؜‍⁣⁤',
17
- 'fabric.elements.user-picker.github.provider': '⁣⁢GitHub⁠؜⁠‍⁠؜⁡؜‌⁣⁤',
18
- 'fabric.elements.user-picker.google.provider': '⁣⁢Google‍‌‍‌⁠؜‍⁡‌‌‌⁠⁡‍⁣⁤',
19
- 'fabric.elements.user-picker.guest.lozenge.text': '⁣⁢GUEST⁡؜⁠⁡‍‍‍⁣⁤',
20
- 'fabric.elements.user-picker.guest.lozenge.tooltip.group': '⁣⁢Guest groups can only access certain spaces and have limited access to user info.⁠‍⁡‍⁡؜⁡⁠⁠⁠⁣⁤',
21
- 'fabric.elements.user-picker.guest.lozenge.tooltip.user': '⁣⁢Guests can only access certain spaces and have limited access to user info.‌؜⁠‌⁠‍‌‌‌؜⁡⁣⁤',
22
- 'fabric.elements.user-picker.member.lozenge.text': '⁣⁢MEMBER‍‍⁡‍‍⁣⁤',
23
- 'fabric.elements.user-picker.microsoft.provider': '⁣⁢Microsoft‍⁡؜‌؜‍⁡⁠⁡⁠⁠⁠‍‍⁡⁣⁤',
24
- 'fabric.elements.user-picker.slack.provider': '⁣⁢Slack‍‍⁠‌؜⁠⁠⁡؜⁠‍⁡⁣⁤'
25
- };
16
+ var _default = exports.default = _en_ZZ.default;