@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.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/analytics.js +2 -53
- package/dist/cjs/clients/UserSourceProvider.js +11 -33
- package/dist/cjs/components/AddOptionAvatar.js +2 -9
- package/dist/cjs/components/AvatarItemOption.js +4 -29
- package/dist/cjs/components/BaseUserPicker.js +61 -155
- package/dist/cjs/components/ClearIndicator.js +4 -35
- package/dist/cjs/components/CustomOption/index.js +0 -7
- package/dist/cjs/components/CustomOption/main.js +4 -30
- package/dist/cjs/components/EmailOption/index.js +0 -7
- package/dist/cjs/components/EmailOption/main.js +2 -29
- package/dist/cjs/components/ExternalUserOption/ExternalAvatarItemOption.js +4 -15
- package/dist/cjs/components/ExternalUserOption/InfoIcon.js +4 -13
- package/dist/cjs/components/ExternalUserOption/SourcesTooltipContent.js +4 -20
- package/dist/cjs/components/ExternalUserOption/index.js +0 -7
- package/dist/cjs/components/ExternalUserOption/main.js +10 -48
- package/dist/cjs/components/ExternalUserSourcesContainer.js +5 -13
- package/dist/cjs/components/GroupOption/index.js +0 -7
- package/dist/cjs/components/GroupOption/main.js +4 -31
- package/dist/cjs/components/HighlightText.js +3 -27
- package/dist/cjs/components/Input.js +0 -23
- package/dist/cjs/components/MessagesIntlProvider.js +3 -20
- package/dist/cjs/components/MultiValue.js +21 -57
- package/dist/cjs/components/MultiValueContainer.js +8 -47
- package/dist/cjs/components/Option.js +5 -27
- package/dist/cjs/components/PopupControl.js +0 -22
- package/dist/cjs/components/PopupInput.js +0 -22
- package/dist/cjs/components/PopupUserPicker.js +10 -39
- package/dist/cjs/components/SingleValue.js +6 -17
- package/dist/cjs/components/SingleValueContainer.js +8 -37
- package/dist/cjs/components/SizeableAvatar.js +4 -20
- package/dist/cjs/components/TeamOption/index.js +0 -7
- package/dist/cjs/components/TeamOption/main.js +9 -37
- package/dist/cjs/components/UserOption.js +7 -34
- package/dist/cjs/components/UserPicker.js +14 -50
- package/dist/cjs/components/assets/github.js +0 -4
- package/dist/cjs/components/assets/google.js +0 -4
- package/dist/cjs/components/assets/microsoft.js +0 -4
- package/dist/cjs/components/assets/slack.js +0 -4
- package/dist/cjs/components/batch.js +0 -3
- package/dist/cjs/components/components.js +0 -17
- package/dist/cjs/components/creatable.js +2 -15
- package/dist/cjs/components/creatableEmailSuggestion.js +7 -18
- package/dist/cjs/components/emailValidation.js +0 -4
- package/dist/cjs/components/i18n.js +0 -2
- package/dist/cjs/components/popup.js +0 -3
- package/dist/cjs/components/styles.js +10 -26
- package/dist/cjs/components/utils.js +0 -53
- package/dist/cjs/i18n/cs.js +1 -1
- package/dist/cjs/i18n/da.js +1 -1
- package/dist/cjs/i18n/de.js +1 -1
- package/dist/cjs/i18n/en.js +31 -4
- package/dist/cjs/i18n/en_GB.js +31 -4
- package/dist/cjs/i18n/en_ZZ.js +1 -1
- package/dist/cjs/i18n/es.js +1 -1
- package/dist/cjs/i18n/et.js +0 -1
- package/dist/cjs/i18n/fi.js +1 -1
- package/dist/cjs/i18n/fr.js +1 -1
- package/dist/cjs/i18n/hu.js +1 -1
- package/dist/cjs/i18n/index.js +0 -31
- package/dist/cjs/i18n/it.js +1 -1
- package/dist/cjs/i18n/ja.js +1 -1
- package/dist/cjs/i18n/ko.js +1 -1
- package/dist/cjs/i18n/nb.js +1 -1
- package/dist/cjs/i18n/nl.js +1 -1
- package/dist/cjs/i18n/pl.js +1 -1
- package/dist/cjs/i18n/pt_BR.js +1 -1
- package/dist/cjs/i18n/pt_PT.js +0 -1
- package/dist/cjs/i18n/ru.js +1 -1
- package/dist/cjs/i18n/sk.js +0 -1
- package/dist/cjs/i18n/sv.js +1 -1
- package/dist/cjs/i18n/th.js +1 -1
- package/dist/cjs/i18n/tr.js +1 -1
- package/dist/cjs/i18n/uk.js +1 -1
- package/dist/cjs/i18n/vi.js +1 -1
- package/dist/cjs/i18n/zh.js +1 -1
- package/dist/cjs/i18n/zh_TW.js +1 -1
- package/dist/cjs/index.js +0 -5
- package/dist/cjs/util/i18n-util.js +0 -43
- package/dist/cjs/util/ufoExperiences.js +0 -17
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/analytics.js +18 -35
- package/dist/es2019/clients/UserSourceProvider.js +0 -6
- package/dist/es2019/components/AddOptionAvatar.js +0 -2
- package/dist/es2019/components/AvatarItemOption.js +1 -10
- package/dist/es2019/components/BaseUserPicker.js +14 -83
- package/dist/es2019/components/ClearIndicator.js +5 -11
- package/dist/es2019/components/CustomOption/index.js +1 -3
- package/dist/es2019/components/CustomOption/main.js +0 -10
- package/dist/es2019/components/EmailOption/index.js +1 -3
- package/dist/es2019/components/EmailOption/main.js +0 -9
- package/dist/es2019/components/ExternalUserOption/ExternalAvatarItemOption.js +1 -4
- package/dist/es2019/components/ExternalUserOption/index.js +1 -3
- package/dist/es2019/components/ExternalUserOption/main.js +0 -15
- package/dist/es2019/components/ExternalUserSourcesContainer.js +0 -2
- package/dist/es2019/components/GroupOption/index.js +1 -3
- package/dist/es2019/components/GroupOption/main.js +0 -7
- package/dist/es2019/components/HighlightText.js +0 -11
- package/dist/es2019/components/Input.js +0 -5
- package/dist/es2019/components/MessagesIntlProvider.js +2 -4
- package/dist/es2019/components/MultiValue.js +3 -15
- package/dist/es2019/components/MultiValueContainer.js +4 -24
- package/dist/es2019/components/Option.js +0 -9
- package/dist/es2019/components/PopupControl.js +0 -4
- package/dist/es2019/components/PopupInput.js +0 -6
- package/dist/es2019/components/PopupUserPicker.js +0 -8
- package/dist/es2019/components/SingleValue.js +0 -1
- package/dist/es2019/components/SingleValueContainer.js +0 -8
- package/dist/es2019/components/SizeableAvatar.js +0 -1
- package/dist/es2019/components/TeamOption/index.js +1 -3
- package/dist/es2019/components/TeamOption/main.js +2 -12
- package/dist/es2019/components/UserOption.js +0 -9
- package/dist/es2019/components/UserPicker.js +6 -8
- package/dist/es2019/components/batch.js +0 -1
- package/dist/es2019/components/components.js +3 -4
- package/dist/es2019/components/creatable.js +2 -9
- package/dist/es2019/components/creatableEmailSuggestion.js +7 -12
- package/dist/es2019/components/emailValidation.js +0 -2
- package/dist/es2019/components/styles.js +30 -22
- package/dist/es2019/components/utils.js +2 -8
- package/dist/es2019/i18n/cs.js +1 -0
- package/dist/es2019/i18n/da.js +1 -0
- package/dist/es2019/i18n/de.js +1 -0
- package/dist/es2019/i18n/en.js +31 -4
- package/dist/es2019/i18n/en_GB.js +31 -4
- package/dist/es2019/i18n/en_ZZ.js +1 -0
- package/dist/es2019/i18n/es.js +1 -0
- package/dist/es2019/i18n/fi.js +1 -0
- package/dist/es2019/i18n/fr.js +1 -0
- package/dist/es2019/i18n/hu.js +1 -0
- package/dist/es2019/i18n/it.js +1 -0
- package/dist/es2019/i18n/ja.js +1 -0
- package/dist/es2019/i18n/ko.js +1 -0
- package/dist/es2019/i18n/nb.js +1 -0
- package/dist/es2019/i18n/nl.js +1 -0
- package/dist/es2019/i18n/pl.js +1 -0
- package/dist/es2019/i18n/pt_BR.js +1 -0
- package/dist/es2019/i18n/ru.js +1 -0
- package/dist/es2019/i18n/sv.js +1 -0
- package/dist/es2019/i18n/th.js +1 -0
- package/dist/es2019/i18n/tr.js +1 -0
- package/dist/es2019/i18n/uk.js +1 -0
- package/dist/es2019/i18n/vi.js +1 -0
- package/dist/es2019/i18n/zh.js +1 -0
- package/dist/es2019/i18n/zh_TW.js +1 -0
- package/dist/es2019/index.js +2 -1
- package/dist/es2019/util/i18n-util.js +30 -120
- package/dist/es2019/util/ufoExperiences.js +0 -3
- package/dist/es2019/version.json +1 -1
- package/dist/esm/analytics.js +2 -30
- package/dist/esm/clients/UserSourceProvider.js +11 -21
- package/dist/esm/components/AddOptionAvatar.js +1 -3
- package/dist/esm/components/AvatarItemOption.js +5 -18
- package/dist/esm/components/BaseUserPicker.js +61 -166
- package/dist/esm/components/ClearIndicator.js +5 -23
- package/dist/esm/components/CustomOption/index.js +1 -3
- package/dist/esm/components/CustomOption/main.js +4 -22
- package/dist/esm/components/EmailOption/index.js +1 -3
- package/dist/esm/components/EmailOption/main.js +2 -20
- package/dist/esm/components/ExternalUserOption/ExternalAvatarItemOption.js +5 -11
- package/dist/esm/components/ExternalUserOption/InfoIcon.js +3 -5
- package/dist/esm/components/ExternalUserOption/SourcesTooltipContent.js +3 -3
- package/dist/esm/components/ExternalUserOption/index.js +1 -3
- package/dist/esm/components/ExternalUserOption/main.js +10 -35
- package/dist/esm/components/ExternalUserSourcesContainer.js +5 -8
- package/dist/esm/components/GroupOption/index.js +1 -3
- package/dist/esm/components/GroupOption/main.js +4 -19
- package/dist/esm/components/HighlightText.js +3 -21
- package/dist/esm/components/Input.js +0 -14
- package/dist/esm/components/MessagesIntlProvider.js +3 -10
- package/dist/esm/components/MultiValue.js +21 -39
- package/dist/esm/components/MultiValueContainer.js +8 -37
- package/dist/esm/components/Option.js +5 -15
- package/dist/esm/components/PopupControl.js +0 -11
- package/dist/esm/components/PopupInput.js +0 -14
- package/dist/esm/components/PopupUserPicker.js +10 -28
- package/dist/esm/components/SingleValue.js +6 -8
- package/dist/esm/components/SingleValueContainer.js +8 -25
- package/dist/esm/components/SizeableAvatar.js +4 -12
- package/dist/esm/components/TeamOption/index.js +1 -3
- package/dist/esm/components/TeamOption/main.js +9 -27
- package/dist/esm/components/UserOption.js +7 -24
- package/dist/esm/components/UserPicker.js +14 -26
- package/dist/esm/components/batch.js +0 -2
- package/dist/esm/components/components.js +1 -6
- package/dist/esm/components/creatable.js +2 -9
- package/dist/esm/components/creatableEmailSuggestion.js +7 -12
- package/dist/esm/components/emailValidation.js +0 -2
- package/dist/esm/components/styles.js +10 -21
- package/dist/esm/components/utils.js +0 -11
- package/dist/esm/i18n/cs.js +1 -0
- package/dist/esm/i18n/da.js +1 -0
- package/dist/esm/i18n/de.js +1 -0
- package/dist/esm/i18n/en.js +31 -4
- package/dist/esm/i18n/en_GB.js +31 -4
- package/dist/esm/i18n/en_ZZ.js +1 -0
- package/dist/esm/i18n/es.js +1 -0
- package/dist/esm/i18n/fi.js +1 -0
- package/dist/esm/i18n/fr.js +1 -0
- package/dist/esm/i18n/hu.js +1 -0
- package/dist/esm/i18n/it.js +1 -0
- package/dist/esm/i18n/ja.js +1 -0
- package/dist/esm/i18n/ko.js +1 -0
- package/dist/esm/i18n/nb.js +1 -0
- package/dist/esm/i18n/nl.js +1 -0
- package/dist/esm/i18n/pl.js +1 -0
- package/dist/esm/i18n/pt_BR.js +1 -0
- package/dist/esm/i18n/ru.js +1 -0
- package/dist/esm/i18n/sv.js +1 -0
- package/dist/esm/i18n/th.js +1 -0
- package/dist/esm/i18n/tr.js +1 -0
- package/dist/esm/i18n/uk.js +1 -0
- package/dist/esm/i18n/vi.js +1 -0
- package/dist/esm/i18n/zh.js +1 -0
- package/dist/esm/i18n/zh_TW.js +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/util/i18n-util.js +30 -126
- package/dist/esm/util/ufoExperiences.js +0 -9
- package/dist/esm/version.json +1 -1
- package/dist/types/components/BaseUserPicker.d.ts +1 -0
- package/dist/types/i18n/cs.d.ts +1 -0
- package/dist/types/i18n/da.d.ts +1 -0
- package/dist/types/i18n/de.d.ts +1 -0
- package/dist/types/i18n/en.d.ts +28 -1
- package/dist/types/i18n/en_GB.d.ts +28 -1
- package/dist/types/i18n/en_ZZ.d.ts +1 -0
- package/dist/types/i18n/es.d.ts +1 -0
- package/dist/types/i18n/fi.d.ts +1 -0
- package/dist/types/i18n/fr.d.ts +1 -0
- package/dist/types/i18n/hu.d.ts +1 -0
- package/dist/types/i18n/it.d.ts +1 -0
- package/dist/types/i18n/ja.d.ts +1 -0
- package/dist/types/i18n/ko.d.ts +1 -0
- package/dist/types/i18n/nb.d.ts +1 -0
- package/dist/types/i18n/nl.d.ts +1 -0
- package/dist/types/i18n/pl.d.ts +1 -0
- package/dist/types/i18n/pt_BR.d.ts +1 -0
- package/dist/types/i18n/ru.d.ts +1 -0
- package/dist/types/i18n/sv.d.ts +1 -0
- package/dist/types/i18n/th.d.ts +1 -0
- package/dist/types/i18n/tr.d.ts +1 -0
- package/dist/types/i18n/uk.d.ts +1 -0
- package/dist/types/i18n/vi.d.ts +1 -0
- package/dist/types/i18n/zh.d.ts +1 -0
- package/dist/types/i18n/zh_TW.d.ts +1 -0
- 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
|
}
|
|
@@ -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;
|
|
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);
|
|
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 ? {
|
|
56
|
+
const pickerProps = allowEmail ? {
|
|
57
|
+
...defaultPickerProps,
|
|
58
58
|
...creatableProps,
|
|
59
59
|
emailLabel
|
|
60
|
-
} : {
|
|
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,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 {
|
|
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
|
-
}
|
|
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
|
-
|
|
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
|
-
};
|
|
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
|
-
};
|
|
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',
|
|
@@ -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) => ({
|
|
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 {
|
|
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': {
|
|
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
|
-
}) => ({
|
|
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 => ({
|
|
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 {
|
|
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 => ({
|
|
85
|
+
multiValue: css => ({
|
|
86
|
+
...css,
|
|
81
87
|
borderRadius: 24,
|
|
82
88
|
cursor: 'default'
|
|
83
89
|
}),
|
|
84
|
-
multiValueLabel: css => ({
|
|
90
|
+
multiValueLabel: css => ({
|
|
91
|
+
...css,
|
|
85
92
|
fontSize: '100%',
|
|
86
93
|
display: 'flex'
|
|
87
94
|
}),
|
|
88
|
-
multiValueRemove: 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
|
-
|
|
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 => ({
|
|
119
|
+
option: css => ({
|
|
120
|
+
...css,
|
|
113
121
|
overflow: 'hidden'
|
|
114
122
|
}),
|
|
115
|
-
input: (css, state) => ({
|
|
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 => ({
|
|
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) => ({
|
|
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: {
|
|
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;
|
package/dist/es2019/i18n/cs.js
CHANGED
|
@@ -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ů}}',
|
package/dist/es2019/i18n/da.js
CHANGED
|
@@ -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}}',
|
package/dist/es2019/i18n/de.js
CHANGED
|
@@ -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}}',
|
package/dist/es2019/i18n/en.js
CHANGED
|
@@ -1,7 +1,34 @@
|
|
|
1
|
-
|
|
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.
|
|
4
|
-
'fabric.elements.user-picker.
|
|
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.
|
|
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
|
};
|