@atlaskit/user-picker 10.0.0 → 10.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/analytics.js +2 -53
  3. package/dist/cjs/clients/UserSourceProvider.js +11 -33
  4. package/dist/cjs/components/AddOptionAvatar.js +2 -9
  5. package/dist/cjs/components/AvatarItemOption.js +4 -29
  6. package/dist/cjs/components/BaseUserPicker.js +61 -155
  7. package/dist/cjs/components/ClearIndicator.js +4 -35
  8. package/dist/cjs/components/CustomOption/index.js +0 -7
  9. package/dist/cjs/components/CustomOption/main.js +4 -30
  10. package/dist/cjs/components/EmailOption/index.js +0 -7
  11. package/dist/cjs/components/EmailOption/main.js +2 -29
  12. package/dist/cjs/components/ExternalUserOption/ExternalAvatarItemOption.js +4 -15
  13. package/dist/cjs/components/ExternalUserOption/InfoIcon.js +4 -13
  14. package/dist/cjs/components/ExternalUserOption/SourcesTooltipContent.js +4 -20
  15. package/dist/cjs/components/ExternalUserOption/index.js +0 -7
  16. package/dist/cjs/components/ExternalUserOption/main.js +10 -48
  17. package/dist/cjs/components/ExternalUserSourcesContainer.js +5 -13
  18. package/dist/cjs/components/GroupOption/index.js +0 -7
  19. package/dist/cjs/components/GroupOption/main.js +4 -31
  20. package/dist/cjs/components/HighlightText.js +3 -27
  21. package/dist/cjs/components/Input.js +0 -23
  22. package/dist/cjs/components/MessagesIntlProvider.js +3 -20
  23. package/dist/cjs/components/MultiValue.js +21 -57
  24. package/dist/cjs/components/MultiValueContainer.js +8 -47
  25. package/dist/cjs/components/Option.js +5 -27
  26. package/dist/cjs/components/PopupControl.js +0 -22
  27. package/dist/cjs/components/PopupInput.js +0 -22
  28. package/dist/cjs/components/PopupUserPicker.js +10 -39
  29. package/dist/cjs/components/SingleValue.js +6 -17
  30. package/dist/cjs/components/SingleValueContainer.js +8 -37
  31. package/dist/cjs/components/SizeableAvatar.js +4 -20
  32. package/dist/cjs/components/TeamOption/index.js +0 -7
  33. package/dist/cjs/components/TeamOption/main.js +9 -37
  34. package/dist/cjs/components/UserOption.js +7 -34
  35. package/dist/cjs/components/UserPicker.js +14 -50
  36. package/dist/cjs/components/assets/github.js +0 -4
  37. package/dist/cjs/components/assets/google.js +0 -4
  38. package/dist/cjs/components/assets/microsoft.js +0 -4
  39. package/dist/cjs/components/assets/slack.js +0 -4
  40. package/dist/cjs/components/batch.js +0 -3
  41. package/dist/cjs/components/components.js +0 -17
  42. package/dist/cjs/components/creatable.js +2 -15
  43. package/dist/cjs/components/creatableEmailSuggestion.js +7 -18
  44. package/dist/cjs/components/emailValidation.js +0 -4
  45. package/dist/cjs/components/i18n.js +0 -2
  46. package/dist/cjs/components/popup.js +0 -3
  47. package/dist/cjs/components/styles.js +10 -26
  48. package/dist/cjs/components/utils.js +0 -53
  49. package/dist/cjs/i18n/cs.js +1 -1
  50. package/dist/cjs/i18n/da.js +1 -1
  51. package/dist/cjs/i18n/de.js +1 -1
  52. package/dist/cjs/i18n/en.js +31 -4
  53. package/dist/cjs/i18n/en_GB.js +31 -4
  54. package/dist/cjs/i18n/en_ZZ.js +1 -1
  55. package/dist/cjs/i18n/es.js +1 -1
  56. package/dist/cjs/i18n/et.js +0 -1
  57. package/dist/cjs/i18n/fi.js +1 -1
  58. package/dist/cjs/i18n/fr.js +1 -1
  59. package/dist/cjs/i18n/hu.js +1 -1
  60. package/dist/cjs/i18n/index.js +0 -31
  61. package/dist/cjs/i18n/it.js +1 -1
  62. package/dist/cjs/i18n/ja.js +1 -1
  63. package/dist/cjs/i18n/ko.js +1 -1
  64. package/dist/cjs/i18n/nb.js +1 -1
  65. package/dist/cjs/i18n/nl.js +1 -1
  66. package/dist/cjs/i18n/pl.js +1 -1
  67. package/dist/cjs/i18n/pt_BR.js +1 -1
  68. package/dist/cjs/i18n/pt_PT.js +0 -1
  69. package/dist/cjs/i18n/ru.js +1 -1
  70. package/dist/cjs/i18n/sk.js +0 -1
  71. package/dist/cjs/i18n/sv.js +1 -1
  72. package/dist/cjs/i18n/th.js +1 -1
  73. package/dist/cjs/i18n/tr.js +1 -1
  74. package/dist/cjs/i18n/uk.js +1 -1
  75. package/dist/cjs/i18n/vi.js +1 -1
  76. package/dist/cjs/i18n/zh.js +1 -1
  77. package/dist/cjs/i18n/zh_TW.js +1 -1
  78. package/dist/cjs/index.js +0 -5
  79. package/dist/cjs/util/i18n-util.js +0 -43
  80. package/dist/cjs/util/ufoExperiences.js +0 -17
  81. package/dist/cjs/version.json +1 -1
  82. package/dist/es2019/analytics.js +18 -35
  83. package/dist/es2019/clients/UserSourceProvider.js +0 -6
  84. package/dist/es2019/components/AddOptionAvatar.js +0 -2
  85. package/dist/es2019/components/AvatarItemOption.js +1 -10
  86. package/dist/es2019/components/BaseUserPicker.js +14 -83
  87. package/dist/es2019/components/ClearIndicator.js +5 -11
  88. package/dist/es2019/components/CustomOption/index.js +1 -3
  89. package/dist/es2019/components/CustomOption/main.js +0 -10
  90. package/dist/es2019/components/EmailOption/index.js +1 -3
  91. package/dist/es2019/components/EmailOption/main.js +0 -9
  92. package/dist/es2019/components/ExternalUserOption/ExternalAvatarItemOption.js +1 -4
  93. package/dist/es2019/components/ExternalUserOption/index.js +1 -3
  94. package/dist/es2019/components/ExternalUserOption/main.js +0 -15
  95. package/dist/es2019/components/ExternalUserSourcesContainer.js +0 -2
  96. package/dist/es2019/components/GroupOption/index.js +1 -3
  97. package/dist/es2019/components/GroupOption/main.js +0 -7
  98. package/dist/es2019/components/HighlightText.js +0 -11
  99. package/dist/es2019/components/Input.js +0 -5
  100. package/dist/es2019/components/MessagesIntlProvider.js +2 -4
  101. package/dist/es2019/components/MultiValue.js +3 -15
  102. package/dist/es2019/components/MultiValueContainer.js +4 -24
  103. package/dist/es2019/components/Option.js +0 -9
  104. package/dist/es2019/components/PopupControl.js +0 -4
  105. package/dist/es2019/components/PopupInput.js +0 -6
  106. package/dist/es2019/components/PopupUserPicker.js +0 -8
  107. package/dist/es2019/components/SingleValue.js +0 -1
  108. package/dist/es2019/components/SingleValueContainer.js +0 -8
  109. package/dist/es2019/components/SizeableAvatar.js +0 -1
  110. package/dist/es2019/components/TeamOption/index.js +1 -3
  111. package/dist/es2019/components/TeamOption/main.js +2 -12
  112. package/dist/es2019/components/UserOption.js +0 -9
  113. package/dist/es2019/components/UserPicker.js +6 -8
  114. package/dist/es2019/components/batch.js +0 -1
  115. package/dist/es2019/components/components.js +3 -4
  116. package/dist/es2019/components/creatable.js +2 -9
  117. package/dist/es2019/components/creatableEmailSuggestion.js +7 -12
  118. package/dist/es2019/components/emailValidation.js +0 -2
  119. package/dist/es2019/components/styles.js +30 -22
  120. package/dist/es2019/components/utils.js +2 -8
  121. package/dist/es2019/i18n/cs.js +1 -0
  122. package/dist/es2019/i18n/da.js +1 -0
  123. package/dist/es2019/i18n/de.js +1 -0
  124. package/dist/es2019/i18n/en.js +31 -4
  125. package/dist/es2019/i18n/en_GB.js +31 -4
  126. package/dist/es2019/i18n/en_ZZ.js +1 -0
  127. package/dist/es2019/i18n/es.js +1 -0
  128. package/dist/es2019/i18n/fi.js +1 -0
  129. package/dist/es2019/i18n/fr.js +1 -0
  130. package/dist/es2019/i18n/hu.js +1 -0
  131. package/dist/es2019/i18n/it.js +1 -0
  132. package/dist/es2019/i18n/ja.js +1 -0
  133. package/dist/es2019/i18n/ko.js +1 -0
  134. package/dist/es2019/i18n/nb.js +1 -0
  135. package/dist/es2019/i18n/nl.js +1 -0
  136. package/dist/es2019/i18n/pl.js +1 -0
  137. package/dist/es2019/i18n/pt_BR.js +1 -0
  138. package/dist/es2019/i18n/ru.js +1 -0
  139. package/dist/es2019/i18n/sv.js +1 -0
  140. package/dist/es2019/i18n/th.js +1 -0
  141. package/dist/es2019/i18n/tr.js +1 -0
  142. package/dist/es2019/i18n/uk.js +1 -0
  143. package/dist/es2019/i18n/vi.js +1 -0
  144. package/dist/es2019/i18n/zh.js +1 -0
  145. package/dist/es2019/i18n/zh_TW.js +1 -0
  146. package/dist/es2019/index.js +2 -1
  147. package/dist/es2019/util/i18n-util.js +30 -120
  148. package/dist/es2019/util/ufoExperiences.js +0 -3
  149. package/dist/es2019/version.json +1 -1
  150. package/dist/esm/analytics.js +2 -30
  151. package/dist/esm/clients/UserSourceProvider.js +11 -21
  152. package/dist/esm/components/AddOptionAvatar.js +1 -3
  153. package/dist/esm/components/AvatarItemOption.js +5 -18
  154. package/dist/esm/components/BaseUserPicker.js +61 -166
  155. package/dist/esm/components/ClearIndicator.js +5 -23
  156. package/dist/esm/components/CustomOption/index.js +1 -3
  157. package/dist/esm/components/CustomOption/main.js +4 -22
  158. package/dist/esm/components/EmailOption/index.js +1 -3
  159. package/dist/esm/components/EmailOption/main.js +2 -20
  160. package/dist/esm/components/ExternalUserOption/ExternalAvatarItemOption.js +5 -11
  161. package/dist/esm/components/ExternalUserOption/InfoIcon.js +3 -5
  162. package/dist/esm/components/ExternalUserOption/SourcesTooltipContent.js +3 -3
  163. package/dist/esm/components/ExternalUserOption/index.js +1 -3
  164. package/dist/esm/components/ExternalUserOption/main.js +10 -35
  165. package/dist/esm/components/ExternalUserSourcesContainer.js +5 -8
  166. package/dist/esm/components/GroupOption/index.js +1 -3
  167. package/dist/esm/components/GroupOption/main.js +4 -19
  168. package/dist/esm/components/HighlightText.js +3 -21
  169. package/dist/esm/components/Input.js +0 -14
  170. package/dist/esm/components/MessagesIntlProvider.js +3 -10
  171. package/dist/esm/components/MultiValue.js +21 -39
  172. package/dist/esm/components/MultiValueContainer.js +8 -37
  173. package/dist/esm/components/Option.js +5 -15
  174. package/dist/esm/components/PopupControl.js +0 -11
  175. package/dist/esm/components/PopupInput.js +0 -14
  176. package/dist/esm/components/PopupUserPicker.js +10 -28
  177. package/dist/esm/components/SingleValue.js +6 -8
  178. package/dist/esm/components/SingleValueContainer.js +8 -25
  179. package/dist/esm/components/SizeableAvatar.js +4 -12
  180. package/dist/esm/components/TeamOption/index.js +1 -3
  181. package/dist/esm/components/TeamOption/main.js +9 -27
  182. package/dist/esm/components/UserOption.js +7 -24
  183. package/dist/esm/components/UserPicker.js +14 -26
  184. package/dist/esm/components/batch.js +0 -2
  185. package/dist/esm/components/components.js +1 -6
  186. package/dist/esm/components/creatable.js +2 -9
  187. package/dist/esm/components/creatableEmailSuggestion.js +7 -12
  188. package/dist/esm/components/emailValidation.js +0 -2
  189. package/dist/esm/components/styles.js +10 -21
  190. package/dist/esm/components/utils.js +0 -11
  191. package/dist/esm/i18n/cs.js +1 -0
  192. package/dist/esm/i18n/da.js +1 -0
  193. package/dist/esm/i18n/de.js +1 -0
  194. package/dist/esm/i18n/en.js +31 -4
  195. package/dist/esm/i18n/en_GB.js +31 -4
  196. package/dist/esm/i18n/en_ZZ.js +1 -0
  197. package/dist/esm/i18n/es.js +1 -0
  198. package/dist/esm/i18n/fi.js +1 -0
  199. package/dist/esm/i18n/fr.js +1 -0
  200. package/dist/esm/i18n/hu.js +1 -0
  201. package/dist/esm/i18n/it.js +1 -0
  202. package/dist/esm/i18n/ja.js +1 -0
  203. package/dist/esm/i18n/ko.js +1 -0
  204. package/dist/esm/i18n/nb.js +1 -0
  205. package/dist/esm/i18n/nl.js +1 -0
  206. package/dist/esm/i18n/pl.js +1 -0
  207. package/dist/esm/i18n/pt_BR.js +1 -0
  208. package/dist/esm/i18n/ru.js +1 -0
  209. package/dist/esm/i18n/sv.js +1 -0
  210. package/dist/esm/i18n/th.js +1 -0
  211. package/dist/esm/i18n/tr.js +1 -0
  212. package/dist/esm/i18n/uk.js +1 -0
  213. package/dist/esm/i18n/vi.js +1 -0
  214. package/dist/esm/i18n/zh.js +1 -0
  215. package/dist/esm/i18n/zh_TW.js +1 -0
  216. package/dist/esm/index.js +2 -1
  217. package/dist/esm/util/i18n-util.js +30 -126
  218. package/dist/esm/util/ufoExperiences.js +0 -9
  219. package/dist/esm/version.json +1 -1
  220. package/dist/types/components/BaseUserPicker.d.ts +1 -0
  221. package/dist/types/i18n/cs.d.ts +1 -0
  222. package/dist/types/i18n/da.d.ts +1 -0
  223. package/dist/types/i18n/de.d.ts +1 -0
  224. package/dist/types/i18n/en.d.ts +28 -1
  225. package/dist/types/i18n/en_GB.d.ts +28 -1
  226. package/dist/types/i18n/en_ZZ.d.ts +1 -0
  227. package/dist/types/i18n/es.d.ts +1 -0
  228. package/dist/types/i18n/fi.d.ts +1 -0
  229. package/dist/types/i18n/fr.d.ts +1 -0
  230. package/dist/types/i18n/hu.d.ts +1 -0
  231. package/dist/types/i18n/it.d.ts +1 -0
  232. package/dist/types/i18n/ja.d.ts +1 -0
  233. package/dist/types/i18n/ko.d.ts +1 -0
  234. package/dist/types/i18n/nb.d.ts +1 -0
  235. package/dist/types/i18n/nl.d.ts +1 -0
  236. package/dist/types/i18n/pl.d.ts +1 -0
  237. package/dist/types/i18n/pt_BR.d.ts +1 -0
  238. package/dist/types/i18n/ru.d.ts +1 -0
  239. package/dist/types/i18n/sv.d.ts +1 -0
  240. package/dist/types/i18n/th.d.ts +1 -0
  241. package/dist/types/i18n/tr.d.ts +1 -0
  242. package/dist/types/i18n/uk.d.ts +1 -0
  243. package/dist/types/i18n/vi.d.ts +1 -0
  244. package/dist/types/i18n/zh.d.ts +1 -0
  245. package/dist/types/i18n/zh_TW.d.ts +1 -0
  246. package/package.json +3 -3
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  /** @jsx jsx */
4
3
  import React from 'react';
5
4
  import { css, jsx } from '@emotion/react';
@@ -11,13 +10,10 @@ const placeholderIconContainer = css({
11
10
  lineHeight: 0,
12
11
  gridArea: '1/1/2/2'
13
12
  });
14
-
15
13
  const showUserAvatar = (inputValue, value) => value && value.data && inputValue === value.label;
16
-
17
14
  export class SingleValueContainer extends React.Component {
18
15
  constructor(...args) {
19
16
  super(...args);
20
-
21
17
  _defineProperty(this, "renderAvatar", () => {
22
18
  const {
23
19
  hasValue,
@@ -28,18 +24,15 @@ export class SingleValueContainer extends React.Component {
28
24
  value
29
25
  }
30
26
  } = this.props;
31
-
32
27
  if (isFocused || !hasValue) {
33
28
  return jsx(SizeableAvatar, {
34
29
  appearance: appearance,
35
30
  src: showUserAvatar(inputValue, value) ? value.data.avatarUrl : undefined
36
31
  });
37
32
  }
38
-
39
33
  return null;
40
34
  });
41
35
  }
42
-
43
36
  render() {
44
37
  const {
45
38
  children,
@@ -49,5 +42,4 @@ export class SingleValueContainer extends React.Component {
49
42
  css: placeholderIconContainer
50
43
  }, this.renderAvatar()), children);
51
44
  }
52
-
53
45
  }
@@ -17,5 +17,4 @@ export class SizeableAvatar extends React.PureComponent {
17
17
  presence: presence
18
18
  });
19
19
  }
20
-
21
20
  }
@@ -1,7 +1,5 @@
1
1
  import React from 'react';
2
- const AsyncTeamOption = /*#__PURE__*/React.lazy(() => import(
3
- /* webpackChunkName: "@atlaskit-internal_@atlassian/user-picker/team-option" */
4
- './main').then(module => {
2
+ const AsyncTeamOption = /*#__PURE__*/React.lazy(() => import( /* webpackChunkName: "@atlaskit-internal_@atlassian/user-picker/team-option" */'./main').then(module => {
5
3
  return {
6
4
  default: module.TeamOption
7
5
  };
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
-
4
3
  /** @jsx jsx */
5
4
  import { B400, N800, N200 } from '@atlaskit/theme/colors';
6
5
  import { jsx } from '@emotion/react';
@@ -13,7 +12,6 @@ import { SizeableAvatar } from '../SizeableAvatar';
13
12
  export class TeamOption extends React.PureComponent {
14
13
  constructor(...args) {
15
14
  super(...args);
16
-
17
15
  _defineProperty(this, "getPrimaryText", () => {
18
16
  const {
19
17
  team: {
@@ -28,7 +26,6 @@ export class TeamOption extends React.PureComponent {
28
26
  highlights: highlight && highlight.name
29
27
  }, name))];
30
28
  });
31
-
32
29
  _defineProperty(this, "renderByline", () => {
33
30
  const {
34
31
  isSelected,
@@ -36,8 +33,9 @@ export class TeamOption extends React.PureComponent {
36
33
  memberCount,
37
34
  includesYou
38
35
  }
39
- } = this.props; // if Member count is missing, do not show the byline, regardless of the availability of includesYou
36
+ } = this.props;
40
37
 
38
+ // if Member count is missing, do not show the byline, regardless of the availability of includesYou
41
39
  if (memberCount === null || typeof memberCount === 'undefined') {
42
40
  return undefined;
43
41
  } else {
@@ -64,11 +62,9 @@ export class TeamOption extends React.PureComponent {
64
62
  }
65
63
  }
66
64
  });
67
-
68
65
  _defineProperty(this, "getBylineComponent", (isSelected, message) => jsx("span", {
69
66
  css: textWrapper(isSelected ? `var(--ds-text-selected, ${B400})` : `var(--ds-text-subtlest, ${N200})`)
70
67
  }, message));
71
-
72
68
  _defineProperty(this, "renderAvatar", () => {
73
69
  const {
74
70
  team: {
@@ -82,24 +78,19 @@ export class TeamOption extends React.PureComponent {
82
78
  name: name
83
79
  });
84
80
  });
85
-
86
81
  _defineProperty(this, "getLozengeProps", () => typeof this.props.team.lozenge === 'string' ? {
87
82
  text: this.props.team.lozenge
88
83
  } : this.props.team.lozenge);
89
-
90
84
  _defineProperty(this, "renderCustomByLine", () => {
91
85
  var _this$props$team;
92
-
93
86
  if (!((_this$props$team = this.props.team) !== null && _this$props$team !== void 0 && _this$props$team.byline)) {
94
87
  return undefined;
95
88
  }
96
-
97
89
  return jsx("span", {
98
90
  css: textWrapper(this.props.isSelected ? `var(--ds-text-selected, ${B400})` : `var(--ds-text-subtlest, ${N200})`)
99
91
  }, this.props.team.byline);
100
92
  });
101
93
  }
102
-
103
94
  render() {
104
95
  return jsx(AvatarItemOption, {
105
96
  avatar: this.renderAvatar(),
@@ -109,5 +100,4 @@ export class TeamOption extends React.PureComponent {
109
100
  secondaryText: this.renderCustomByLine() || this.renderByline()
110
101
  });
111
102
  }
112
-
113
103
  }
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  /** @jsx jsx */
4
3
  import { B400, N800, N200 } from '@atlaskit/theme/colors';
5
4
  import { jsx } from '@emotion/react';
@@ -11,7 +10,6 @@ import { hasValue } from './utils';
11
10
  export class UserOption extends React.PureComponent {
12
11
  constructor(...args) {
13
12
  super(...args);
14
-
15
13
  _defineProperty(this, "getPrimaryText", () => {
16
14
  const {
17
15
  user: {
@@ -26,7 +24,6 @@ export class UserOption extends React.PureComponent {
26
24
  }, jsx(HighlightText, {
27
25
  highlights: highlight && highlight.name
28
26
  }, name))];
29
-
30
27
  if (hasValue(publicName) && name.trim() !== publicName.trim()) {
31
28
  result.push(jsx(React.Fragment, {
32
29
  key: "publicName"
@@ -36,14 +33,11 @@ export class UserOption extends React.PureComponent {
36
33
  highlights: highlight && highlight.publicName
37
34
  }, publicName), ")")));
38
35
  }
39
-
40
36
  return result;
41
37
  });
42
-
43
38
  _defineProperty(this, "renderSecondaryText", () => this.props.user.byline ? jsx("span", {
44
39
  css: textWrapper(this.props.isSelected ? `var(--ds-text-selected, ${B400})` : `var(--ds-text-subtlest, ${N200})`)
45
40
  }, this.props.user.byline) : undefined);
46
-
47
41
  _defineProperty(this, "renderAvatar", () => {
48
42
  const {
49
43
  user: {
@@ -59,12 +53,10 @@ export class UserOption extends React.PureComponent {
59
53
  name: name
60
54
  });
61
55
  });
62
-
63
56
  _defineProperty(this, "getLozengeProps", () => typeof this.props.user.lozenge === 'string' ? {
64
57
  text: this.props.user.lozenge
65
58
  } : this.props.user.lozenge);
66
59
  }
67
-
68
60
  render() {
69
61
  return jsx(AvatarItemOption, {
70
62
  avatar: this.renderAvatar(),
@@ -74,5 +66,4 @@ export class UserOption extends React.PureComponent {
74
66
  secondaryText: this.renderSecondaryText()
75
67
  });
76
68
  }
77
-
78
69
  }
@@ -20,15 +20,14 @@ export class UserPickerWithoutAnalytics extends React.Component {
20
20
  const experienceForId = experience.getInstance(this.ufoId);
21
21
  experienceForId.start();
22
22
  }
23
-
24
23
  componentDidMount() {
25
- const experienceForId = experience.getInstance(this.ufoId); // Send UFO success if the experience is still in progress i.e. hasn't failed
24
+ const experienceForId = experience.getInstance(this.ufoId);
26
25
 
26
+ // Send UFO success if the experience is still in progress i.e. hasn't failed
27
27
  if ([UFOExperienceState.IN_PROGRESS.id, UFOExperienceState.STARTED.id].includes(experienceForId.state.id)) {
28
28
  experienceForId.success();
29
29
  }
30
30
  }
31
-
32
31
  render() {
33
32
  const {
34
33
  emailLabel,
@@ -54,10 +53,12 @@ export class UserPickerWithoutAnalytics extends React.Component {
54
53
  menuShouldBlockScroll,
55
54
  captureMenuScroll
56
55
  };
57
- const pickerProps = allowEmail ? { ...defaultPickerProps,
56
+ const pickerProps = allowEmail ? {
57
+ ...defaultPickerProps,
58
58
  ...creatableProps,
59
59
  emailLabel
60
- } : { ...defaultPickerProps
60
+ } : {
61
+ ...defaultPickerProps
61
62
  };
62
63
  return /*#__PURE__*/React.createElement(UfoErrorBoundary, {
63
64
  id: this.ufoId
@@ -71,12 +72,9 @@ export class UserPickerWithoutAnalytics extends React.Component {
71
72
  pickerProps: pickerProps
72
73
  })))));
73
74
  }
74
-
75
75
  }
76
-
77
76
  _defineProperty(UserPickerWithoutAnalytics, "defaultProps", {
78
77
  width: 350,
79
78
  isMulti: false
80
79
  });
81
-
82
80
  export const UserPicker = withAnalyticsEvents()(UserPickerWithoutAnalytics);
@@ -8,7 +8,6 @@ export function batchByKey(callback) {
8
8
  });
9
9
  calls[key] = [];
10
10
  }
11
-
12
11
  calls[key].push(args);
13
12
  };
14
13
  }
@@ -8,10 +8,10 @@ import { Input } from './Input';
8
8
  import { SingleValueContainer } from './SingleValueContainer';
9
9
  import { PopupInput } from './PopupInput';
10
10
  import { PopupControl } from './PopupControl';
11
+
11
12
  /**
12
13
  * Memoize getComponents to avoid rerenders.
13
14
  */
14
-
15
15
  export const getComponents = memoizeOne((multi, anchor) => {
16
16
  if (anchor) {
17
17
  return {
@@ -39,12 +39,11 @@ export const getPopupComponents = memoizeOne(hasPopupTitle => {
39
39
  ValueContainer: SingleValueContainer,
40
40
  Input: PopupInput
41
41
  };
42
-
43
42
  if (hasPopupTitle) {
44
- return { ...baseProps,
43
+ return {
44
+ ...baseProps,
45
45
  Control: PopupControl
46
46
  };
47
47
  }
48
-
49
48
  return baseProps;
50
49
  });
@@ -3,9 +3,7 @@ import { EmailType } from '../types';
3
3
  import { isValidEmail as defaultIsValidEmail } from './emailValidation';
4
4
  import { isEmail } from './utils';
5
5
  const validOption = ['VALID', 'POTENTIAL'];
6
-
7
6
  const isValidNewOption = (isValidEmail = defaultIsValidEmail) => inputValue => inputValue && validOption.includes(isValidEmail(inputValue));
8
-
9
7
  const getNewOptionData = inputValue => ({
10
8
  label: inputValue,
11
9
  value: inputValue,
@@ -15,23 +13,18 @@ const getNewOptionData = inputValue => ({
15
13
  type: EmailType
16
14
  }
17
15
  });
18
-
19
16
  const formatCreateLabel = inputText => {
20
17
  if (inputText) {
21
18
  return inputText.trim();
22
19
  }
23
-
24
20
  return '';
25
21
  };
26
-
27
22
  const isOptionDisabled = (isValidEmail = defaultIsValidEmail) => option => {
28
23
  if (isEmail(option.data)) {
29
24
  return isValidEmail(option.data.id) !== 'VALID';
30
25
  }
31
-
32
26
  return !!option.isDisabled;
33
27
  };
34
-
35
28
  function creatableProps(isValidEmail) {
36
29
  return {
37
30
  allowCreateWhileLoading: true,
@@ -41,7 +34,7 @@ function creatableProps(isValidEmail) {
41
34
  formatCreateLabel,
42
35
  isOptionDisabled: isOptionDisabled(isValidEmail)
43
36
  };
44
- } // ignoring the 'clear' memoizeOne function object property
45
-
37
+ }
46
38
 
39
+ // ignoring the 'clear' memoizeOne function object property
47
40
  export const getCreatableProps = memoizeOne(creatableProps);
@@ -3,15 +3,13 @@ import { EmailType } from '../types';
3
3
  import { isValidEmail as defaultIsValidEmail } from './emailValidation';
4
4
  import { isEmail } from './utils';
5
5
  const validOption = ['VALID', 'POTENTIAL'];
6
+ const isValidNewOption = inputValue => inputValue && inputValue.length > 0;
6
7
 
7
- const isValidNewOption = inputValue => inputValue && inputValue.length > 0; // Generates suggested option data based on user input and validity of the input (if it is an email or not);
8
-
9
-
8
+ // Generates suggested option data based on user input and validity of the input (if it is an email or not);
10
9
  const getNewOptionData = (isValidEmail = defaultIsValidEmail, emailDomain) => inputValue => {
11
10
  if (!inputValue) {
12
11
  return null;
13
12
  }
14
-
15
13
  const isEmail = inputValue && validOption.includes(isValidEmail(inputValue));
16
14
  const value = isEmail ? inputValue : `${inputValue.replace(/\s+/g, '.').toLocaleLowerCase()}@${emailDomain}`;
17
15
  return {
@@ -25,26 +23,23 @@ const getNewOptionData = (isValidEmail = defaultIsValidEmail, emailDomain) => in
25
23
  }
26
24
  };
27
25
  };
28
-
29
26
  const formatCreateLabel = inputText => {
30
27
  if (inputText) {
31
28
  return inputText.trim();
32
29
  }
33
-
34
30
  return '';
35
- }; // Option will not be selectable until the email value is valid and can actually be invited
36
-
31
+ };
37
32
 
33
+ // Option will not be selectable until the email value is valid and can actually be invited
38
34
  const isOptionDisabled = (isValidEmail = defaultIsValidEmail) => option => {
39
35
  if (isEmail(option.data)) {
40
36
  return isValidEmail(option.data.id) !== 'VALID';
41
37
  }
42
-
43
38
  return !!option.isDisabled;
44
- }; // Generates user picker props to always create an email item visible
45
- // to the user as a suggested option when they are typing in a value
46
-
39
+ };
47
40
 
41
+ // Generates user picker props to always create an email item visible
42
+ // to the user as a suggested option when they are typing in a value
48
43
  export const getCreatableSuggestedEmailProps = memoizeOne((emailDomain, isValidEmail) => ({
49
44
  allowCreateWhileLoading: true,
50
45
  createOptionPosition: 'last',
@@ -4,10 +4,8 @@ export const isValidEmail = inputText => {
4
4
  if (inputText.match(validRegex)) {
5
5
  return 'VALID';
6
6
  }
7
-
8
7
  if (inputText.match(potentialRegex)) {
9
8
  return 'POTENTIAL';
10
9
  }
11
-
12
10
  return 'INVALID';
13
11
  };
@@ -7,26 +7,28 @@ export const INDICATOR_WIDTH = 39;
7
7
  const TAG_MARGIN_WIDTH = 4;
8
8
  export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles) => {
9
9
  let styles = {
10
- menu: (css, state) => ({ ...css,
10
+ menu: (css, state) => ({
11
+ ...css,
11
12
  width,
12
13
  minWidth: state.selectProps.menuMinWidth
13
14
  }),
14
15
  control: (css, state) => {
15
16
  const isMulti = state.selectProps.isMulti;
16
- return { ...css,
17
+ return {
18
+ ...css,
17
19
  width,
18
20
  borderColor: state.isFocused ? `var(--ds-border-focused, ${css.borderColor})` : state.selectProps.subtle || state.selectProps.noBorder ? 'transparent' : `var(--ds-border-input, ${N40})`,
19
21
  backgroundColor: state.isFocused ? `var(--ds-background-input, ${css['backgroundColor']})` : state.selectProps.subtle ? 'transparent' : state.selectProps.textFieldBackgroundColor ? `var(--ds-background-input, ${N10})` : `var(--ds-background-input, ${N20})`,
20
22
  '&:hover .fabric-user-picker__clear-indicator': {
21
23
  opacity: 1
22
24
  },
23
- ':hover': { ...css[':hover'],
25
+ ':hover': {
26
+ ...css[':hover'],
24
27
  borderColor: state.isFocused ? css[':hover'] ? `var(--ds-border-focused, ${css[':hover'].borderColor})` : `var(--ds-border-focused, ${B100})` : state.selectProps.subtle ? 'transparent' : `var(--ds-border-input, ${N40})`,
25
28
  backgroundColor: state.selectProps.subtle && state.selectProps.hoveringClearIndicator ? `var(--ds-background-danger, ${R50})` : state.isFocused ? css[':hover'] ? `var(--ds-background-input, ${css[':hover'].backgroundColor})` : `var(--ds-background-input, ${N0})` : state.isDisabled ? `var(--ds-background-disabled, ${N10})` : `var(--ds-background-input-hovered, ${N30})`
26
29
  },
27
30
  padding: 0,
28
31
  minHeight: isCompact ? 'none' : 44,
29
-
30
32
  /* IE 11 needs to set height explicitly to be vertical align when being in not compact mode */
31
33
  height: isCompact || isMulti ? '100%' : 44,
32
34
  maxWidth: '100%'
@@ -38,7 +40,8 @@ export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles)
38
40
  paddingLeft,
39
41
  paddingRight,
40
42
  ...css
41
- }) => ({ ...css,
43
+ }) => ({
44
+ ...css,
42
45
  // By default show clear indicator, except for on devices where "hover" is supported.
43
46
  // This means mobile devices (which do not support hover) will be able to see the clear indicator.
44
47
  opacity: 1,
@@ -52,7 +55,8 @@ export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles)
52
55
  color: `var(--ds-icon-danger, ${R400})`
53
56
  }
54
57
  }),
55
- indicatorsContainer: css => ({ ...css,
58
+ indicatorsContainer: css => ({
59
+ ...css,
56
60
  paddingRight: 4
57
61
  }),
58
62
  valueContainer: ({
@@ -62,7 +66,8 @@ export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles)
62
66
  ...css
63
67
  }, state) => {
64
68
  const isMulti = state.selectProps.isMulti;
65
- return { ...css,
69
+ return {
70
+ ...css,
66
71
  gridTemplateColumns: 'auto 1fr',
67
72
  paddingTop: isCompact ? 0 : `${BORDER_PADDING}px`,
68
73
  paddingBottom: isCompact ? 0 : `${BORDER_PADDING}px`,
@@ -77,15 +82,18 @@ export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles)
77
82
  }
78
83
  };
79
84
  },
80
- multiValue: css => ({ ...css,
85
+ multiValue: css => ({
86
+ ...css,
81
87
  borderRadius: 24,
82
88
  cursor: 'default'
83
89
  }),
84
- multiValueLabel: css => ({ ...css,
90
+ multiValueLabel: css => ({
91
+ ...css,
85
92
  fontSize: '100%',
86
93
  display: 'flex'
87
94
  }),
88
- multiValueRemove: css => ({ ...css,
95
+ multiValueRemove: css => ({
96
+ ...css,
89
97
  borderRadius: 24,
90
98
  cursor: 'pointer'
91
99
  }),
@@ -96,11 +104,10 @@ export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles)
96
104
  if (css.position === 'absolute' && !css.left) {
97
105
  css.left = `${BORDER_PADDING}px`;
98
106
  }
99
-
100
- return { ...css,
107
+ return {
108
+ ...css,
101
109
  gridArea: '1/2/2/3',
102
110
  paddingLeft: state.selectProps.isMulti ? 0 : `${BORDER_PADDING}px`,
103
-
104
111
  /* Margin left right of 2px set by default */
105
112
  // margin: `0 ${BORDER_PADDING}px`,
106
113
  margin: 0,
@@ -109,16 +116,16 @@ export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles)
109
116
  textOverflow: 'ellipsis'
110
117
  };
111
118
  },
112
- option: css => ({ ...css,
119
+ option: css => ({
120
+ ...css,
113
121
  overflow: 'hidden'
114
122
  }),
115
- input: (css, state) => ({ ...css,
123
+ input: (css, state) => ({
124
+ ...css,
116
125
  gridArea: '1/2/2/3',
117
126
  gridTemplateColumns: isMulti && state.placeholder ? '0 123px' : css.gridTemplateColumns,
118
-
119
127
  /* Necessary to make input height and tag height the same. */
120
128
  margin: `${TAG_MARGIN_WIDTH}px 0`,
121
-
122
129
  /* Padding top and bottom of 2 is set by default. */
123
130
  paddingTop: 0,
124
131
  paddingBottom: 0,
@@ -126,21 +133,22 @@ export const getStyles = memoizeOne((width, isMulti, isCompact, overrideStyles)
126
133
  '& input::placeholder': {
127
134
  /* Chrome, Firefox, Opera, Safari 10.1+ */
128
135
  color: `var(--ds-text-subtlest, ${N100})`,
129
- opacity: 1
130
- /* Firefox */
131
-
136
+ opacity: 1 /* Firefox */
132
137
  },
138
+
133
139
  '& input:-ms-input-placeholder': {
134
140
  /* Internet Explorer 10-11 */
135
141
  color: `var(--ds-text-subtlest, ${N100})`
136
142
  }
137
143
  }),
138
- singleValue: css => ({ ...css,
144
+ singleValue: css => ({
145
+ ...css,
139
146
  margin: 0,
140
147
  gridArea: '1/2/2/3'
141
148
  })
142
149
  };
143
150
  return overrideStyles ? mergeStyles(styles, overrideStyles) : styles;
144
151
  });
145
- export const getPopupStyles = memoizeOne((width, flip, isMulti) => ({ ...getStyles(width, isMulti)
152
+ export const getPopupStyles = memoizeOne((width, flip, isMulti) => ({
153
+ ...getStyles(width, isMulti)
146
154
  }));
@@ -8,9 +8,7 @@ export const isGroup = option => option.type === GroupType;
8
8
  export const isEmail = option => option.type === EmailType;
9
9
  export const isCustom = option => option.type === CustomType;
10
10
  export const isDefaultValuePopulated = value => value && !Array.isArray(value) || Array.isArray(value) && value.length > 0;
11
-
12
11
  const isOptionData = option => option.name !== undefined;
13
-
14
12
  export const optionToSelectableOption = option => {
15
13
  if (isOptionData(option)) {
16
14
  return {
@@ -21,7 +19,8 @@ export const optionToSelectableOption = option => {
21
19
  };
22
20
  } else {
23
21
  return {
24
- data: { ...option,
22
+ data: {
23
+ ...option,
25
24
  name: option.id
26
25
  },
27
26
  isDisabled: option.isDisabled,
@@ -34,13 +33,11 @@ export const extractOptionValue = value => {
34
33
  if (!value) {
35
34
  return undefined;
36
35
  }
37
-
38
36
  if (Array.isArray(value)) {
39
37
  return value.map(({
40
38
  data: option
41
39
  }) => option);
42
40
  }
43
-
44
41
  return value.data;
45
42
  };
46
43
  export const isIterable = a => typeof a[Symbol.iterator] === 'function';
@@ -49,11 +46,9 @@ export const optionToSelectableOptions = memoizeOne(defaultValue => {
49
46
  if (!defaultValue) {
50
47
  return null;
51
48
  }
52
-
53
49
  if (Array.isArray(defaultValue)) {
54
50
  return defaultValue.map(optionToSelectableOption);
55
51
  }
56
-
57
52
  return optionToSelectableOption(defaultValue);
58
53
  });
59
54
  export const getAvatarSize = appearance => appearance === 'big' ? 'medium' : appearance === 'multi' ? 'xsmall' : 'small';
@@ -75,7 +70,6 @@ export const getAvatarUrl = optionData => {
75
70
  if (isUser(optionData) || isTeam(optionData) || isCustom(optionData)) {
76
71
  return optionData.avatarUrl;
77
72
  }
78
-
79
73
  return undefined;
80
74
  };
81
75
  export const isPopupUserPickerByComponent = SelectComponent => SelectComponent === PopupSelect;
@@ -26,6 +26,7 @@ export default {
26
26
  'fabric.elements.user-picker.slack.provider': 'Slack',
27
27
  'fabric.elements.user-picker.source.confluence': 'Confluence',
28
28
  'fabric.elements.user-picker.source.jira': 'Jira',
29
+ 'fabric.elements.user-picker.source.other-atlassian': 'Ostatní produkty Atlassian',
29
30
  'fabric.elements.user-picker.team.member.50plus': 'Tým • 50 a více členů',
30
31
  'fabric.elements.user-picker.team.member.50plus.including.you': 'Tým • 50 a více členů včetně vás',
31
32
  'fabric.elements.user-picker.team.member.count': '{count, plural, one {Tým • {count} člen} few {Tým • {count} členové} many {Tým • {count} člena} other {Tým • {count} členů}}',
@@ -26,6 +26,7 @@ export default {
26
26
  'fabric.elements.user-picker.slack.provider': 'Slack',
27
27
  'fabric.elements.user-picker.source.confluence': 'Confluence',
28
28
  'fabric.elements.user-picker.source.jira': 'Jira',
29
+ 'fabric.elements.user-picker.source.other-atlassian': 'Andre Atlassian-produkter',
29
30
  'fabric.elements.user-picker.team.member.50plus': 'Team • Over 50 medlemmer',
30
31
  'fabric.elements.user-picker.team.member.50plus.including.you': 'Team • Over 50 medlemmer, inklusive dig',
31
32
  'fabric.elements.user-picker.team.member.count': '{count, plural, one {Team • {count} medlem} other {Team • {count} medlemmer}}',
@@ -26,6 +26,7 @@ export default {
26
26
  'fabric.elements.user-picker.slack.provider': 'Slack',
27
27
  'fabric.elements.user-picker.source.confluence': 'Confluence',
28
28
  'fabric.elements.user-picker.source.jira': 'Jira',
29
+ 'fabric.elements.user-picker.source.other-atlassian': 'Andere Atlassian-Produkte',
29
30
  'fabric.elements.user-picker.team.member.50plus': 'Team • über 50 Mitglieder',
30
31
  'fabric.elements.user-picker.team.member.50plus.including.you': 'Team • über 50 Mitglieder, einschließlich Ihnen',
31
32
  'fabric.elements.user-picker.team.member.count': '{count, plural, one {Team • {count} Mitglied} other {Team • {count} Mitglieder}}',
@@ -1,7 +1,34 @@
1
- // English
1
+ /**
2
+ * NOTE:
3
+ *
4
+ * This file is automatically generated by Traduki 2.0.
5
+ * DO NOT CHANGE IT BY HAND or your changes will be lost.
6
+ */
7
+ //
2
8
  export default {
3
- 'fabric.elements.user-picker.placeholder': 'Find a person...',
4
- 'fabric.elements.user-picker.placeholder.add-more': 'add more people...',
9
+ 'fabric.elements.user-picker.email.add': 'Add user',
10
+ 'fabric.elements.user-picker.email.add.potential': 'Enter an email address',
11
+ 'fabric.elements.user-picker.email.select.to.add': 'Select an email address',
12
+ 'fabric.elements.user-picker.external.sourced.error': "We can't connect you right now.",
13
+ 'fabric.elements.user-picker.external.sourced.from': 'Found in:',
14
+ 'fabric.elements.user-picker.github.provider': 'GitHub',
15
+ 'fabric.elements.user-picker.google.provider': 'Google',
16
+ 'fabric.elements.user-picker.group.byline': 'Admin-managed group',
17
+ 'fabric.elements.user-picker.guest.lozenge.text': 'GUEST',
18
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.group': 'Guest groups can only access certain spaces and have limited access to user info.',
19
+ 'fabric.elements.user-picker.guest.lozenge.tooltip.user': 'Guests can only access certain spaces and have limited access to user info.',
20
+ 'fabric.elements.user-picker.member.lozenge.text': 'MEMBER',
21
+ 'fabric.elements.user-picker.microsoft.provider': 'Microsoft',
5
22
  'fabric.elements.user-picker.multi.remove-item': 'Remove',
6
- 'fabric.elements.user-picker.single.clear': 'Clear'
23
+ 'fabric.elements.user-picker.placeholder': 'Enter people or teams...',
24
+ 'fabric.elements.user-picker.placeholder.add-more': 'add more people...',
25
+ 'fabric.elements.user-picker.single.clear': 'Clear',
26
+ 'fabric.elements.user-picker.slack.provider': 'Slack',
27
+ 'fabric.elements.user-picker.source.confluence': 'Confluence',
28
+ 'fabric.elements.user-picker.source.jira': 'Jira',
29
+ 'fabric.elements.user-picker.source.other-atlassian': 'Other Atlassian products',
30
+ 'fabric.elements.user-picker.team.member.50plus': 'Team • 50+ members',
31
+ 'fabric.elements.user-picker.team.member.50plus.including.you': 'Team • 50+ members, including you',
32
+ 'fabric.elements.user-picker.team.member.count': 'Team • {count} {count, plural, one {member} other {members}}',
33
+ 'fabric.elements.user-picker.team.member.count.including.you': 'Team • {count} {count, plural, one {member} other {members}}, including you'
7
34
  };